Показ дописів із міткою htpc. Показати всі дописи
Показ дописів із міткою htpc. Показати всі дописи

середа, 13 квітня 2011 р.

Субтитры в MediaPortal (продолжение)

Я уже описывал один вариант решения, но вчера, благодаря Женьке, нашёл ещё один, который мне нравится более всего. Основой послужила статья Adding subtitles in MediaPortal (or any video player) by piping CoreAVC through ffdshow.

Итак, моё решение в картинках:

1) В настройках портала указываем ffdshow для декодирования H.264:

Mediaportal Video Settings

2) На случай, если хотим использовать другой декодер для H.264 (который умеет использовать аппаратные ресурсы), в настройках самого ffdshow мы запрещаем декодирование H.264:

ffdshow H.264 disabled

а так же включаем Raw video:

ffdshow Raw video enabled

3) Включаем поддержку субтитров в ffdshow (заметьте, обработка SSA и прочих тоже включена!):

ffdshow subtitles settings

4) Настраиваем внешний вид субтитров (опять же, обратите внимание, что все опции замещения стилей включены!):

ffdshow subtitles font

5) Если хотите параллельно использовать MPC (Media Player Classic), то у него в настройках необходимо выключить внутренний фильтр субтитров (auto-load subtitles).

Итак, что это даёт? А то, что в портале уже необязательно включать опцию "Показывать субтитры (.srt или .sub)" (если да, то портал при показе фильма будет сразу же включать субтитры). А так запуск без субтитров, но всегда через контекстное меню их можно включить и выбрать нужный поток. Аналогично это работает и в MPC.

Ещё момент: в настройках Haali Media Splitter я всё же оставил параметр "Autoload VSFilter" включённым, но не уверен, что это нужно.

Правда есть одно но с таким решением — как получить субтитры при просмотре ТВ, если основным декодером для MPEG-2 используется Gabest? Не знаю, можно, как вариант, поступить аналогично: указать ffdshow в настройках портала, но в настройках ffdshow запретить MPEG-2 (пускай Gabest им и занимается)? Во всяком случае у меня пока необходимости в субтитрах при просмотре ТВ нет.

Почему не DirectVobSub? Я его попробовал, с ним субтитры показываются, но есть одно но. Почему-то настройки шрифта (в портале) не срабатывают, необходимо открывать VSFilter уже в процессе просмотра и там доводить до ума. Есть ли настройки шрифтов по-умолчанию в VSFilter? Не знаю, не нашёл. Опять же, с ним умеет дружить MPC при просмотре H.264 (точнее, он его отключает и сам рисует субтитры), но в портале ничего этого нет.

Так что моё текущее решение нравится более всего!

PS: кстати, небольшой FAQ по субтитрам.

середа, 6 квітня 2011 р.

Субтитры в MediaPortal

Всё хотел разобраться, почему субтитры у меня нормально не показываются ни в одном из порталов, да всё руки не доходили (да и необходимости вроде бы не было, мечта "смотреть в оригинале" не являлась целью).

А тут наткнулся на mkv-ку, при открытии которого портал мне радостно показал:
A decoder for the new track couldnot be found.
Track type: SRT/UTF-8


Оказалось, что всё просто и нужно лишь внимательно прочтитать текст в окне настроек субтитров портала.

Первое: включить загрузку VSFilter в настройках Haali Media Splitter:

Haali Media Splitter settings

Второе: установить DirectVobSub фильтр.

Но так как я использую везде ffdshow, а он прекрасно умеет субтитры, то достаточно лишь включить поддержку субтитров да настроить размер/параметры шрифта:

ffdshow subtitles settings

Есть ещё одно маленькое но. Если вы используете CoreAVC для x264 (или любой другой декодер), то ffdshow участвовать в обработке видео не будет. Решение тоже довольно простое. В Video Post Processing секции добавить ffdshow subtitles filter и включить/настроить поддержку субтитров именно здесь, а не в общем ffdshow:

Media Portal Post Processing filters

середа, 6 жовтня 2010 р.

Сказка про DiSEqC

В очередной раз я столкнулся с ситуацией, когда htpc перестал переключаться между спутниками. Dreambox может, а этот — нет! :(
Если выключаю дрим — htpc прекрасно переключает каналы. Думал, что виноваты DiSEqC-ы, перебрал просто их дикое количество. Ничего не помогало.
Так я и жил без дрима.
Как-то раз включил дрим - всё вроде бы работает, но при попытке проиграть запись на дриме тот сразу же уходил в перегрузку. Спустя неделю-две опять перестал переключать DiSEqC, но в тот же момент начал пищать дрим. Дрим умер?!?!

Я уже совсем опечалился, но всё же повёз дрим в ремонт. Но оказалось, что в очередной раз умер БП дрима. Купил новый и... о, чудо! Всё работает! Дрим работает, не пищит, и записи с htpc показывает. HTPC работает, спутники переключает и вообще всё хорошо!

Мораль — не всегда дело в DiSEqC!

PS: А после этого я в спальне доукомплектовал комп, спаял (спасибо Олегу!) ИК-приёмник и подключил его в COM1 (идея уже обкатана на HTPC), настроил WinLIRC и пульт (вот тут были проблемы: почему-то WinLIRC не мог нормально обучиться всем пультам, что я перепробовал; тогда я просто использовал пульт, на который уже был конфигурационный файл тут), немножко подхимичил, чтоб только одна копия WinLIRC запускалась, и чтоб можно было запустить MediaPortal с пульта (и, естественно, только одна копия) и.. voi-la, ещё одна мультимедийная станция готова! ТВ, записи, фильмы (в том числе и HD), фотки и т.д. ;)

PPS: Вот бы ещё усилитель выклюлся сам при выключении компа?

вівторок, 16 березня 2010 р.

Вкусно с Биллом

На канале К2 по выходным утром транслировалась передача "Вкусно с Биллом".
Похоже, что всё, больше не транслируется :(

понеділок, 8 березня 2010 р.

Первый автомобильный

Первый автомобильный появился на Sirius 4.8E, открыто ;)

Правда, Интер+ закодировался (зачем это ему? вроде ж международный).

----

Поборол, даже оба! Подробности на satsat.info ;) (просто лишние ключики надо было выбросить и все)

четвер, 28 січня 2010 р.

vsetv.com ;)

И всё же "я знаю кунг-фу!" ;)

Вначале надеялся, что Searches отрабатывают до парсинга, но оказалось — нет. Вначале разбирается шаблон, а затем уже отрабатывают Searches.

Отсюда родилась идея добавить небольшой код, который будет перемалывать входящий файл и приводить его в нужную структуру. Как я уже говорил, нынче vsetv.com отдаёт просто набор div-ов, и div-ы с описаниями могут или быть, или не быть, каждая запись никак не группируется (например родительский div, в котором есть и время + название, и опционально описание передачи).

Поэтому перед разбором шаблона этот код обрабатывает набор подстановок, которые приводят содержимое к одной и той же структуре — всегда подряд 3 div-а.

В результате имеем набор правил для обработки (точнее, ниже весь www_vsetv_com.xml):

<?xml version="1.0" encoding="utf-8"?>
<Grabber>
<Info availableDays="7" timezone="E. Europe Standard Time" version="2.0" />
<Channels>
<Channel id="ort@www.vsetv.com" siteId="21" />
</Channels>
<Listing type="Html">
<Site url="http://www.vsetv.com/schedule_channel_[ID]_day_[YYYY]-[MM]-[DD]_print_wd.html" post="" external="false" encoding="" />
<Html>
<Template name="default" start="&lt;div class=&quot;time&quot;" end="&lt;/div&gt;&lt;div class=&quot;clear">
<PreProcess>
<Subst match="&lt;/div&gt;&lt;div id=&quot;schedule_container&quot;[^&gt;]*&gt;" to="" />
<Subst match="(&lt;div .*?class=&quot;prdesc&quot;&gt;)(&lt;/div&gt;)" to="$1&lt;div class=&quot;desc&quot;&gt;$2$2" />
<Subst match="(?&lt;=.+)(?&lt;!&lt;/div&gt;&lt;/div&gt;)(&lt;div class=&quot;time&quot;)" to="&lt;div class=&quot;prdesc&quot;&gt;&lt;div class=&quot;desc&quot;&gt;&lt;/div&gt;&lt;/div&gt;$1" />
<Subst match="(?!&lt;!&lt;/div&gt;&lt;/div&gt;)$" to="&lt;div class=&quot;prdesc&quot;&gt;&lt;div class=&quot;desc&quot;&gt;&lt;/div&gt;&lt;/div&gt;" />
<Subst match="&lt;div class=&quot;desc&quot;&gt;(.+?)&lt;/div&gt;" to="$1" />
</PreProcess>
<SectionTemplate tags="D">
<TemplateText>
&lt;div&gt;&lt;#START&gt;&lt;/div&gt;
&lt;div&gt;&lt;#TITLE&gt;&lt;/div&gt;
&lt;div&gt;&lt;#DESCRIPTION&gt;&lt;/div&gt;
</TemplateText>
</SectionTemplate>
</Template>
</Html>
</Listing>
</Grabber>
<!--
vim: enc=utf-8
-->



Если кому интересно, вот патчик:

diff -Nru Release 1.0.2.orig\MediaPortal\Utils\Utils.csproj Release 1.0.2\MediaPortal\Utils\Utils.csproj
--- Release 1.0.2.orig\MediaPortal\Utils\Utils.csproj Sat May 09 00:27:10 2009
+++ Release 1.0.2\MediaPortal\Utils\Utils.csproj Wed Jan 27 23:28:39 2010
@@ -174,6 +174,7 @@
<Compile Include="Web\http\IHttpAuthentication.cs" />
<Compile Include="Web\http\SiteStatistics.cs" />
<Compile Include="Web\Parser\HtmlSectionMatch.cs" />
+ <Compile Include="Web\Parser\HtmlSectionSubst.cs" />
<Compile Include="Web\Parser\HtmlSectionTemplate.cs" />
<Compile Include="Web\Parser\HtmlParserTemplate.cs" />
<Compile Include="Web\Parser\HtmlParser.cs" />
diff -Nru Release 1.0.2.orig\MediaPortal\Utils\Web\Parser\HtmlParser.cs Release 1.0.2\MediaPortal\Utils\Web\Parser\HtmlParser.cs
--- Release 1.0.2.orig\MediaPortal\Utils\Web\Parser\HtmlParser.cs Sat May 09 00:27:10 2009
+++ Release 1.0.2\MediaPortal\Utils\Web\Parser\HtmlParser.cs Thu Jan 28 12:06:07 2010
@@ -99,11 +99,22 @@
}
//log error?
}
+
+ if (startIndex != 0 || endIndex != pageSource.Length)
+ pageSource = pageSource.Substring(startIndex, endIndex - startIndex);
+
+ foreach (HtmlSectionSubst subst in _template.SubstList) {
+ RegexOptions opts = RegexOptions.None;
+ if (subst.ignoreCase)
+ opts |= RegexOptions.IgnoreCase;
+ Regex re = new Regex(subst.match, opts);
+ pageSource = re.Replace(pageSource, subst.to);
+ }

int count = 0;
if (pageSource != null)
{
- count = _profiler.MatchCount(pageSource.Substring(startIndex, endIndex - startIndex));
+ count = _profiler.MatchCount(pageSource);
}

return count;
diff -Nru Release 1.0.2.orig\MediaPortal\Utils\Web\Parser\HtmlParserTemplate.cs Release 1.0.2\MediaPortal\Utils\Web\Parser\HtmlParserTemplate.cs
--- Release 1.0.2.orig\MediaPortal\Utils\Web\Parser\HtmlParserTemplate.cs Sat May 09 00:27:10 2009
+++ Release 1.0.2\MediaPortal\Utils\Web\Parser\HtmlParserTemplate.cs Thu Jan 28 00:11:51 2010
@@ -24,6 +24,7 @@
#endregion

using System;
+using System.Collections.Generic;
using System.Xml.Serialization;

namespace MediaPortal.Utils.Web
@@ -39,6 +40,7 @@
[XmlAttribute("name")] public string Name;
[XmlAttribute("start")] public string Start;
[XmlAttribute("end")] public string End;
+ [XmlArray("PreProcess")] [XmlArrayItem("Subst")] public List<HtmlSectionSubst> SubstList;
[XmlElement("SectionTemplate")] public HtmlSectionTemplate SectionTemplate;

#endregion
diff -Nru Release 1.0.2.orig\MediaPortal\Utils\Web\Parser\HtmlSectionSubst.cs Release 1.0.2\MediaPortal\Utils\Web\Parser\HtmlSectionSubst.cs
--- Release 1.0.2.orig\MediaPortal\Utils\Web\Parser\HtmlSectionSubst.cs Thu Jan 01 02:00:00 1970
+++ Release 1.0.2\MediaPortal\Utils\Web\Parser\HtmlSectionSubst.cs Wed Jan 27 23:46:01 2010
@@ -0,0 +1,45 @@
+п»ї#region Copyright (C) 2005-2009 Team MediaPortal
+
+/*
+ * Copyright (C) 2005-2009 Team MediaPortal
+ * http://www.team-mediaportal.com
+ *
+ * This Program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2, or (at your option)
+ * any later version.
+ *
+ * This Program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with GNU Make; see the file COPYING. If not, write to
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ */
+
+#endregion
+
+using System;
+using System.Xml.Serialization;
+
+namespace MediaPortal.Utils.Web
+{
+ /// <summary>
+ /// Xml Serializable Class for Section Subst data.
+ /// </summary>
+ [Serializable]
+ public class HtmlSectionSubst
+ {
+ #region Variables
+
+ [XmlAttribute("match")] public string match;
+ [XmlAttribute("to")] public string to;
+ [XmlAttribute("ignoreCase")] public bool ignoreCase;
+
+ #endregion
+ }
+}



Либо свяжитесь, вышлю Utils.dll для релиза 1.0.2.

середа, 27 січня 2010 р.

Samsung HD103SJ - вибрации

Решил я тут себе добавить свободы немножко (а то качать всякое уже некогда, а удалять всё подряд рука, как обычно, не поднимается).

Долго лазил по ixbt.com, читал-перечитывал — остановил выбор на Samsung HD103SJ. Ок, вроде по нему претензий нет (на SI жаловались на периодические вибрации).

Установил и... оп-па! Вибрирует, да ещё и как! Мало того, что просто вибрации сильные, так ещё и периодически усиливаются (период 1–2 секунды).

Сказать, что я был расстроен — ничего не сказать. Уже собирался напрягать людей насчёт замены.

Порылся в интернете и наткнулся на статью (жалко, картинки уже недоступны), решил попробовать.

Бинт Мартенса (цена вопроса 15грн или около того), немного возни (вначале одна из резинок порвалась, плюс немного проклеил стыки крышки и корпуса) и... тишина ;)

пʼятниця, 15 січня 2010 р.

Inter+

Пропала у меня программа передач канала Inter+. Долго и добросовестно отдавал мне её tv.ukr.net. Начал проверять остальные сайты — аналогично! (такое впечатление, что, что у кого-то на праздниках поломался парсер).

Есть только на vsetv.com, но у них контент практически не парсится

Что делать?

Как вариант — написать прокси, который будет приводить содержимое в чувство.




Черт! Я знаю кунг-фу!

Буквально с разбегу удалось разобраться, как получить программу по конкретным датам на родном сайте (вместо .../Monday.html и т.п.), и результат довольно быстро засунул в WebEPG.

Аналогично довольно быстро получилось и с RTG TV (раньше я его с vsetv.com вытаскивал, но как я уже говорил, этот сайт нынче невозможно простыми силами разобрать).

Вуа-ля! ;)




Не, нифига не кунг-фу :(
Как выяснилось, по конкретным датам получить программу-то можно, но только в виде для печати, который разобрать совершенно невозможно.

Затем мне удалось подправить исходники WebEPG и добиться поддержки дней недели в нижнем регистре (monday.html), но последующий анализ показал, что моя привязка к тегу <a>..</a> не подходит:


<a class=tvevening href=/ru/programs/vernisazh_illi_reznika/>18:15&nbsp;Концерт &quot;Песенный вернисаж Ильи Резника&"</a><br>
19:45 Ночь выборов<br>


Как видно, часть передач не обёрнута в <a>..</a> и соответственно просто теряются (WebEPG не поддерживает <br />).

Единственный выход я вижу — добиться результатов от vsetv.com

субота, 14 листопада 2009 р.

ThermalTake

htpc мой собран в корпусе ThermalTake Mozart (эх, Лёшенька!)
Не суперский, но работает. Правда работает шумновато.. :(

В корпусе стояло штатных один 80мм на вдув (обдувает сразу и HDD, и DVB-S, и видео-карту, над видео-картой отверстия) и два 60мм на выдув (в районе БП). Плюс на процессоре и плюс в БП очень большого размера.
Сразу скажу — все штатные гудят (не сразу, но спустя немного времени).
Вначале отключил один 60мм, потом заменил 80мм (на Nockturn или что-то в этом роде), а на днях ковырялся с корпусом и подумал — зачем мне в одном месте (правый верхний угол, если смотреть сверху) аж три кулера на выдув? Подумал, и отключил последний штатный.

В доме... тишина.... ;)

Температуры: HDD 36C, CPU 47-50C, видеокарту пока проверить не могу.

htpc - diseqc - oops ;(

На ровном месте, ни с того, ни с сего перестал переключаться diseqc на htpc. Причём diseqc рабочий — проверял с помощью dreambox.
Перепробовал уже кучу всего:

  • прежде всего купил пару новых diseqc (естественно не помогает)

  • купил twinham 1025 (кстати, уровень сигнала в нём ниже на 25-30%, tv server весьма падуч при работе с dvb-s, если не видит сигнала)

  • один из diseqc перепаян согласно идее — результат 0.0



Что делать? Есть пара идей:

  • Вот рекомендуют какой-то, но я его нигде в городе не видел

  • Женька вот ещё нашёл: I just got my NEW Spaun 4x1 DiSEqC in and it finally seems to work.. I guess I really do have 4 bad switches!! The Spaun wasn't cheap ($40), but then again, my 4 other switches also add up to $40...
    I've tried it a few times now, and I haven't had any switching "errors" yet. With the cheap switches I would normally encounter a switch error once every other time I try to switch.

    I also ordered a cheaper new type of Pansat switch which should be in this week. I'll let you guys know if that one works as well..



Как что-то получится — дам знать!

вівторок, 27 жовтня 2009 р.

Умная мысля...

а ещё "О, как я могу!" я тоже сказал... после того, как идея получилась ;)

Как-то родилась в голове мысль — а не смогу ли я на кухонном Dreambox смотреть ТВ-записи, лежащие на htpc? На дрим монтируется полностью \\htpc\records и подсовывается в виде /var/mnt/hdd (делалось это когда-то для того, чтоб дрим мог какую-либо ТВ-передачу записать, но без EPG возиться с таймерами никто не будет).

После некоторых ковыряний пришёл к банально простому решению — достаточно подправить опции automounter, чтоб дрим нормально отображал файлы с русскими именами и, самое главное, мог их воспроизводить, и ходить не в Recorded location, а сразу по файловой системе дрима в /automount/hdd. Вуа-ля!

"О, как я могу!" — сказал я, включая записанный Мотор-ТВ.

/var/etc/automount.conf выглядит вот так:

hdd -fstype=cifs,rw,soft,udp,nolock,rsize=8192,wsize=8192,\
user=tv,iocharset=utf8,codepage=cp1251 ://192.168.113.8/records

середа, 19 серпня 2009 р.

vsetv умер, да здравствует tv.ua

Побороть vsetv.com так и не получилось, но в результате упорных поисков нашёл http://www.tv.ua, который практически все каналы перекрыл. Пока смущает 1TVRus Europe - оно или нет? (Мне там нужна "Большая разница" и "Непутёвые заметки")
Сравниваю:
- tv.ua
- 1tvrus.com

Вроде одинаковы? Но на других сайтах это расписание совпадает с "Первый канал Украина". Короче, посмотрим.

Кстати, есть подозрение, что Экипаж опять на К1 транслируется, но что-то одни повторы :(

понеділок, 17 серпня 2009 р.

vsetv.com упс :(

Поменяли структуру html (вместо табличек - блоки div) и формат URL. Но это полбеды.
Но вот то, что у них теперь программа идёт сплошным потоком div-ов, без разделения строк - очень печально. Ибо WebEPG не может разобраться к примеру вот с таким:

<div class="time">05:30</div><div class="prname2">
<a href=series_1269.html>Т/с "След".</a>
</div>
<div id=desc2009330000060879 class="prdesc"></div>
<div class="time">06:10</div>


И вот этот prdesc портит всю малину.
Наверное прийдётся переползать на другой источник :(

вівторок, 28 липня 2009 р.

Спутниководам на заметку (очередное)

Menu-TV (Sirius 4.8E) и прочие опять переехали - стало 12731/V/15300.

Спасибо огромное куму - теперь домашние опять в кулинарном миру ;)

понеділок, 18 травня 2009 р.

Спутниковедам на заметку

Есть очень полезный ресурс в сети, благодаря которому я выяснил, что на Сириусе есть несколько новых и интересных открытых каналов (12727 V). Ольке к примеру нравятся English Club TV и Menu TV.

Как-то раз они бац.. и пропали :( Всё руки не доходили - а на этих выходных таки дошли куда надо. То есть вначале к dreambox-у (дабы убедиться что там на спутнике оно вообще есть), а затем к htpc-ке - чтобы в итоге выяснить, что не в ней самой что-то поломалось, а просто каналы переехали по частоте (и symbol rate).

Была мечта найти софтинку (в идеале, конечно, написать - но до идеалов нам как всегда далеко), которая бы анализировала lyngsat и выдавала список "что нового над планетой творится". Чувствую, я наверное себе в крончик поставлю что-нибудь из серии wget + diff + mail.

Да, в итоге у меня теперь эти каналы появились и на кухне тоже ;) (не все, правда, - часть там уже в mpeg4 идёт)

понеділок, 30 березня 2009 р.

И не гром, и не молнии!

Я уже как-то писал, что пульт ДУ от Dreambox помер. Новый покупать за $22 - жаба ква-ква, пытался купить этот через интернет - то вроде есть одна штука, то уже и нет. В Киеве отец на радио-рынке смотрел, Олег на нашем смотрел несколько раз. Ничего :(

А в прошлую субботу оказался на радио-базаре и совершенно случайно обнаружил. Только не Elmak, а какой-то другой фирмы. Но - Zip-300. По ноге (точнее, по цвету упаковки - зеленая) узнал! За 65грн. Случайно. С первого же посещения рынка.

Работает! Я могу по утрам новости за завтраком посмотреть наконец-то ;)

субота, 14 лютого 2009 р.

Дожили..


Обновляем firmware даже у HDD!

Скоро обновление системы будет включать не только software, но и firmware у всех компонентов.

Представляю:

$> apt-get dist-upgrade
Обновлять винты будем? (yes/no):

Гром и молнии!


А может по какой другой причине, короче полетело, посыпалось и поломалось всё! (не так, чтобы совсем всё - а всё из вычислительной техники дома.)

- у dreambox помер пульт ДУ, новый - $22 (ква-ква!) Единственную замену нашёл вот здесь, но ещё не связывался с ними

- в htpc умер 500ГБ винт, которму было всего лишь 8 месяцев. Восстановить данные со старого не получается совсем. Я весьма расстроен - кучу времени потратил на настройку htpc и никаких архивов не сделал

- в обычном компе винт щёлкает головами, похоже, тоже на ладан дышит (хотя где-то на ixbt вычитал, что такое может быть при пониженном 12В)

Вот сижу, htpc починяю, слёзы горькие утираю..

середа, 7 січня 2009 р.

Повелевай техникой! (продолжение)

А в начале было так.. Купил я себе железо под телевизор, которое бы мне и фильмы показывало (HD!), и спутник играло, да со спутника всё писало.

Скоро сказка сказывается, да не скоро дело делается. Купил я его в июле аж. Вначале думал - сейчас вот быстренько поставлю, сяду и буду радоваться жизни.
Сразу всё не получилось. Постоянно его ковырять тоже времени нет. Ночами после работы - здоровья нет. Короче, оно работало, да всё не так.

Нынче празднуем НГ. И выдались нам каникулы рабочие. И подумал я - а не взяться ли? Да, реально я мог выделить на htpc пару-тройку часов в день (у кого маленькие дети - поймут). Ковырял-ковырял, да выковырял!

Оно у меня наконец-то заработало, с чем себя и поздравляю!
Прежде всего огромное спасибо Женьке Борохову, который меня постоянно консультировал!
А дальше более технические подробности (вдруг кому-то понадобится):

- Спутниковая карточка TechnoTrend S-1401 упорно не хотела переключать diseqc под MediaPortal-ом (DVBDream нормально через BDA-интерфейс), я пробовал ковырять код MediaPortal-а - фигвам. Женька в самом начале подсказал решение (через ж, но что делать) - я тогда отказался от этой затеи, тем более что у меня оно тоже с diseqc не заработало. Не так давно DVBDream уже не мог переключать diseqc, после чего я купил новый, поставил - DVBDream работает, MediaPortal - нет. Каналья! Решил попробовать всё же через dvb-t. Хе, заработало! Но! Есть несколько тонкостей. Вешать транспондеры надо на целые частоты dvb-t диапазона (474000, 482000 и т.д.). А кнопка Load DVB-S Transponder List вешает на все частоты подряд (474000, 474167, 481833...) Руками это все делать очень неудобно. Я себе нарисовал скриптик (на Perl), который из вот этого (заметьте, в тексте встречаются команды lof, diseqc):


# freq, pol, s/r, diseqc, position, option, lof high, lof low, lof switch
# lof 10600000, 9750000, 11700000
#
# Hotbird 13E
# diseqc 1, 0, 0
# Cyfra +
10719000, V, 27500
# Jetix
10723000, H, 29900


Делает два файлика:



=========================================================================
# freq, pol, s/r, diseqc, position, option, lof high, lof low, lof switch
# lof 10600000, 9750000, 11700000
#
# Hotbird 13E
# diseqc 1, 0, 0
# Cyfra +
# 473833

# 474000
10719000, V, 27500, 1, 0, 0, 10600000, 9750000, 11700000
# 474167

#--------------------------------------------------------------------------------
# Jetix
# 481833

# 482000
10723000, H, 29900, 1, 0, 0, 10600000, 9750000, 11700000
# 482167

#--------------------------------------------------------------------------------

и


<country name="TT DVB-T" offset="167">
<carrier frequency="474000" bandwidth="7"></carrier>
<carrier frequency="482000" bandwidth="7"></carrier>
<carrier frequency="490000" bandwidth="7"></carrier>
<carrier frequency="498000" bandwidth="7"></carrier>

Кстати, tt tools тоже перепутали флаги position и option (вход AB это Position 1, Option 0, а не наоборот, как описано в той статье).
Да, всего каналов у меня теперь доступно конечно меньше... Но я бы не сказал, что от этого сильно страдаю. Я отфильтровал нужные мне транспондеры, меньше возни с EPG, плюс нет этого всего мусора с Hotbird.

Итак, у меня MediaPortal может видеть все три спутника.

- Пульт ДУ! О, это отдельная песня! Корпус я брал без пульта и iMon (ThermalTake Mozart) А вот в комплекте с телеком идёт пульт, у которого в левом верхнем углу есть переключатель (TV, DVD, Regza-Link) - и мне пришла "умная" мысль его применить к htpc. Олег мне спаял ИК-приёмничек на com-порт, мы это упаковали в корпус, и... А дальше идёт набор слов, которых лучше тут не произносить. Ибо MediaPortal вроде как умеет SerialUIR - но не завелось, на сайте среди плагинов есть WinLIRC плагин, но он только под старый MP (0.x), и т.д. В итоге я пульт завёл в WinLIRC, поставил IR Server Suite и нашёл плагин в MP для этого сервера. Худо-бедно заработало. А недавно обновил MP до релиза (1.0) и... плагин перестал работать. В итоге я просто взял WinLIRC плагин и на его основе нарисовал собственный, благо это не так страшно оказалось, как представлял. В итоге получилось ещё лучше, ибо у меня даже заработала кнопка "выброс" на пульте - выбрасывает лоток привода DVD (как отмечено в статье по ссылке выше - привод спрятан за шторкой и поэтому кнопка выброса лотка недоступна). Ура! Работает! ;)

- EPG. Тоже отдельная песня. Ибо есть xmltv плагин для TvServer, который умеет импортировать телепрограммы - осталось найти соответствующий источник. Хм. Избушка в итоге не работает (на неё ссылок больше всего), на http://www.teleguide.info/ нужных каналов мало, а более ничего не нашёл. Ок, копаем дальше. Есть WebEPG - утилита, которая умеет лазить по web-страничкам и выкусывать нужную информацию. Отлично! Но как обычно и тут вылезли грабли. Очень много сайтов с телепрограммами, которые очень тяжело парсить (vsetv.com, tv.tut.ua, tv.yandex.ru и т.д.) - вроде и написано просто, но WebEPG-ный парсер обламывается :( В итоге я остановился на следующей конфигурации - основной список берём с tv.bigmir.net, остаток с tv.ukr.net (там очень много таблиц, но WebEPG и берёт нормально), кое-какие российские с tv.mail.ru, ESPN European Classic с какого-то английского. Но пока ковырял WebEPG - нашёл несколько багов в нём, которые решил исправлять сам. Первое - sublinks-парсер не наследует кодировку от парсера основной страницы (пример - тут), второе - выходной tvguide.xml содержит локальное время без указания временной зоны, соответственно xmltv-импортер трактует это как UTC-время. Патчи отправил разработчикам, посмотрим, примут ли?
В итоге телепрограмма выглядит где-то так:





Кстати, вот пара полезных ссылок по WebEPG (в принципе легко находятся у них на сайте, но я всё же продублирую):


Ура! Основные задачи выполнены и можно наконец-то пользоваться htpc-ой в полном объеме. ТВ - показывает, передачи пишет, с интернета качает (srvany + uTorrent/WebUI - прекрасная связка), фотки показывает (хе, кто-то реально смотрит фотки на бытовом DVD-плеере? это же жуть!), HD-фильмы крутит (и не HD конечно тоже, но это же две большие разницы, как говорят в Одессе), файл-хранилищем выступает (dreambox на него тоже пишет потихоньку), даже терминал-сервером работает (с рабочего ноута захожу по RDP и перекодировку какую запускаю или ещё чего, dmaster там тоже пыхтит).

Что дальше? Ну конечно, всегда что-то осталось доделать:
- Travel (Sirius 5E, Arquiva) почему-то подвисает через пару секунд показа
- Усилитель с колоночками можно поставить
- В htpc уже 5 вентиляторов (1 - процессор, Zalman; в БП на вытяжку, рядом стоят два 60мм на вытяжку, и один на вход 100мм) плюс HDD - шум не сильный, но всё же есть. В итоге я отключил оба 60мм вытяжных (один кстати, уже начал жужжать! и это ThermalTake!?) Не сильно шумно - днём вообще не слышно, ночью вроде как есть немного. SpeedFan показывает следующее: System 49C, CPU 48C, HDD 38C.
- xmltv упорно не импортирует программы по каналу Channel 5 (Ukraine) - мож скобки мешают?


Повелевай техникой!

Рано или поздно это должно было случиться ;)

02.01.2009 - самое время отдыхать, кино смотреть. Данька нашёл таки кнопку на передней панели htpc и... кино ушло спать!

Заклеил обе кнопки изолентой, посмотрим! ;)