I did it! И я всё-таки предполагал верно, что с помощью UPNP/DNLA-сервера на роутере можно смотреть raw udp IPTV на тупых плейерах и телевизорах, которые отродясь об IPTV не слышали. Итак, вот он, герой - xupnpd. Это upnp-сервер, который позволяет представить на экране телевизора плейлист каналов IPTV.
Для волшебства необходимо:
1. Установить из репозитория Entware xupnpd:
Code:
$ opkg install xupnpd
2. Включить в web-интерфейсе роутера udpxy, для чего установить отличный от нуля HTTP Proxy Port:
Code:
IP Config > Miscellaneous > Multicast to HTTP Proxy Port: 12345
и перегрузить роутер.
3. Прописать upd>http прокси в настройки xupnpd. Для чего в файле /opt/share/xupnpd/xupnpd.lua строчку:
Code:
cfg.udpxy_url='http://192.168.1.1:12345'
, где 192.168.1.1 - адрес вашего роутера, а 12345 - порт, выбранный в предыдущем шаге.
4. Запустить xupnpd:
5. В web-интерфейсе xupnpd загрузить плейлист IP-TV вашего провайдера, для чего в браузере открыть страничку 192.168.1.1:4044 и выбрать последовательность действий
Code:
Playlists > Выбрать файл > Send
подразумевается, что *.m3u-плейлист у вас есть под рукой.
После чего сформированный плейлист построчно будет доступен на экране телевизора при выборе соответствующего upnp источника.
Мой провайдер иногда обновляет плейлист, поэтому скрипт автозапуска xupnpd у меня выглядит так:
Code:
$ cat /opt/etc/init.d/S55xupnpd
#!/bin/sh
find /opt/share/xupnpd/playlists/citycomm_utf8.m3u -maxdepth 0 -mtime -8 -exec \
wget -O {} http://tv.citycomm.ru/files/iptvplayer/citycomm_utf8.m3u \;
ENABLED=yes
PROCS=xupnpd
ARGS=
PREARGS=
DESC=$PROCS
PATH=/opt/sbin:/opt/bin:/opt/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
. /opt/etc/init.d/rc.func
другими словами, если плейлист старше недели, выкачивается его новая версия.
Функциональность xupnpd легко расширяется скриптами lua. Например, с его помощью можно "расшаривать" по upnp медиа-контент с жёсткого диска или смотреть на телевизоре top-ролики Youtube'а или плей-листы Youtube'а, сформированные ранее в вашем аккаунте. Очень удобно, ползая по Youtube'у добавлять ролики себе в плей-лист для того, чтобы позже посмотреть их на большом экране.
Таким образом удалось заставить играть IPTV на плейере WD TV Live без модификации прошивки последнего. В своё время я собирал ради этой фичи обновлённый mediatomb, но корректной работы от него так и не добился. Для WD TV Live единственным недостатком приведённого здесь решения является долгое переключение между каналами. Если удастся свести эту паузу к терпимому минимуму, то я, вероятно, продам имеющиеся спутниковые тюнеры.
Низкий поклон автору программы - Антону Бурдинюку.
PS. Для владельцев прошивки ветки 1.9.2.7-d ещё некоторое (короткое) время будет доступен предшественник xupnpd - pshare. Новые версии программ будут собираться исключительно для нового репозитория OpenWRT.