пятница, 16 марта 2012 г.

HTPC на все случаи жизни в пределах 20000 руб? Легко.

Dune HD MAX — замечательный медиа-плеер. И подойдет наверняка процентам 80 любителей кино. Однако у него есть существенные минусы: медленный интерфейс, полное отсутствие поддержки SSA, никаких даже намеков на «продвинутые» профили H.264. Это так, навскидку.
Поэтому лично я решил собрать универсальный HTPC, призванный решить все эти проблемы.
Начитавшись страшилок в интернете про то, что нормальный HTPC стоит приличных денег, я уже было расстроился. Однако порывшись в вопросе глубже, узнал, что не так все страшно.
Итак. С чего начнем? Пожалуй с корпуса. Ведь если ваш плеер будет стоять в стойке или тумбе, то внешний вид важен.
При выборе кейса важно обратить внимание, чтобы он был без встроенного БП: они, как правило, очень некачественные и сгорают при первой же серьезной нагрузке. Также нужно определиться, нужен ли вам пульт. Если да, то ваш выбор — корпуса с готовыми решениями iMon VFD от Antec или Silverstone. Поверьте, это самое лучшее сочетание «время-деньги-качество». Все остальное — на ваш вкус.
Далее — выбор материнки. Он зависит от форм-фактора вашего корпуса. Как правило, это mini-ITX или mATX. Советую присмотреться к материнкам от Intel на сокете 1155. Объясню почему. У Intel есть серия процессоров Core, маркированных буквой Т. Это — процессоры с пониженной частотой и чуть ли не вдвое меньшим потреблением (35 Ватт).
Оперативной памяти хватит 2 ГБ. Тут уже индивидуальные предпочтения.
Так же, как и с жестким диском.

Что же в итоге мы получили на выходе (на моем примере):
ТипНаименованиеЦена, руб
CaseAntec Fusion Remote Silver6000
PSUFSP 350PNF950
MBIntel DH67GDB32900
CPUIntel Core i3 2120T4400
RAMKingston HyperX Genesis 2G450
HDDWD 5000AZDX2800
Итого:17500
Покупать или нет привод Blu-ray — это уже дело хозяйское. В любом случае дороже 3000 руб это вам встать не должно.

Теперь нужно подумать над программной оболочкой. Если есть деньги и хочется Windows — тогда Windows 7 и в качестве медиа-центра XBMC или MediaPortal. Если же больше не хочется тратить ни копейки, тогда ваш выбор — дистрибутив Linux с медиацентром XBMC или MythTV.

Вот и все. Дальше уже мелочи: как организовать медиатеку, какой внешний вид медиацентра выбрать и т.д.

Главное, что у вас есть полноценный функциональный медиа-плеер, способный справиться абсолютно с ЛЮБОЙ задачей. Даже в Skyrim побегать.

четверг, 16 февраля 2012 г.

Настраиваем просмотр IP-TV через роутер на FreeBSD 8.2. Способ 2.

Проблемы igmpproxy заставили дальше копаться в интернету в поисках альтернативного решения.
И я его нашел.
Иван Рожук опубликовал скрипт mcastbr2.sh для проброса multicast через шлюз на базе FreeBSD штатными средствами netgraph, без использования неработающих у многих igmpproxy и mrouted.
Включаем PROMISC режим на интерфейсах:

#ifconfig em0 promisc
#ifconfig re0 promisc

Скачиваем скрипт, даем ему права на запуск:

#wget http://www.netlab.linkpc.net/download/software/FreeBSD/mcastbridge/mcastbr2.sh
#chmod +x mcastbr2.sh

И запускаем:

#mcastbr2.sh start em0 re0

Элегантно. Есть свои тонкости, но это, пожалуй, самое легкое и стабильное решение.

Настраиваем просмотр IP-TV через роутер на FreeBSD 8.2. Способ 1.

К написанию этого материала меня подтолкнул мой собственный печальный опыт настройки роутера для просмотра IPTV.
И если речь идет о незашифрованных каналах, то решение простое — udpxy, то в случае зашифрованного ТВ (платные услуги) этот метод уже не работает.
Копать пришлось в сторону настройки роутинга мультикаста. В принципе в 8 версии FreeBSD есть поддержка мультикаста, нужно лишь собрать ядро с опцией MROUTING. После этого нужно решить, какому пакету доверить работу с маршрутами мультикаста.
Кто-то умудряется настроить mrouted. Но это архаизм, поэтому мы будем пользоваться igmpproxy. Благо она сейчас уже достаточно стабильна.
Итак, ставим igmpproxy из портов:

#cd /usr/ports/net/igmpproxy
#make install clean
#rehash

После установки, нужно будет поправить конфигурационный файл. Причем в два этапа.
Для начала нужно указать нашему роутеру, какие интерфейсы будут использоваться при мультикасте, а какие нужно игнорировать. Сначала просмотрим список всех интерфейсов:

#ifconfig -a

В моем случае мне нужны лишь интерфейсы em0 (внешний) и re0 (внутренний) и не нужны plip0, lo0, ipfw0, pflog0.
Так и пропишем в конфиге /usr/local/etc/igmpproxy.conf:

#cat /usr/local/etc/igmpproxy.conf
quickleave

#Это внешний интерфейс
phyint em0 upstream ratelimit 0 threshold 1

## Это внутренний интерфейс
phyint re0 downstream ratelimit 0 threshold 1

## Отключенные интерфейсы
phyint plip0 disabled
phyint lo0 disabled
phyint ipfw0 disabled
phyint pflog0 disabled

 Если файрвол у вас настроен на режим «блокировать все, что не разрешено», то нужно прописать в нем правило, разрешающее входящий и исходящий трафик igmp. На примере pf:

pass in proto igmp all allow-opts
pass out proto igmp all allow-opts

Теперь попробуем запустить вручную igmpproxy c выводом информации для отладки:

#igmpproxy -vd /usr/local/etc/igmpproxy.conf

После этого на компьютере, находящемся во внутренней локальной сети, запустим IPTV и будем смотреть на вывод igmpproxy. Должны появиться строки типа:

the source address X.X.X.X for group Y.Y.Y.Y, is not in any valid net for upstream VIF

адрес X.X.X.X — это адрес компьютера из сети вещания. И эту сеть нужно прописать к альтернативную в настройках igmpproxy:

#cat /usr/local/etc/igmpproxy.conf
quickleave

phyint em0 upstream  ratelimit 0  threshold 1
altnet X.0.0.0/8 ## наша сеть вещания

phyint re0 downstream  ratelimit 0  threshold 1

phyint plip0 disabled
phyint lo0 disabled
phyint ipfw0 disabled
phyint pflog0 disabled

После этого можно перезапустить igmpproxy и ваше ТВ должно нормально функционировать.


И все бы хорошо, да есть одна проблема. /usr/local/etc/rc.d/igmpproxy stop вешает роутер наглухо. Вплоть до саморебута. Пока борюсь с ней. Если кто знает ответ — буду благодарен.