На главную | В раздел

IPTV DLNA proxy Perl script

Тэги: iptv через dlna dlna multicast iptv dlna dlna iptv
Некоторые операторы связи в Новосибирске, предоставляют услугу телевидения в виде IPTV. Как правило для просмотра IPTV необходимо поставить специальную приставку(SetTopBox), либо установить приложение на компьютер.
Однако, есть и третий вариант: просмотр IPTV через DLNA совместимый телевизор SmartTV. Такой вариант удобнее, чем приставка тем, что нет необходимости жонглировать 2мя пультами управления.
Но, вот ведь незадача: DLNA не подразумевает multicast, а IPTV это всего-навсего DVB через multicast UDP.
Выход есть: достаточно превратить MULTIcast в UNIcast, причем не просто unicast, а HTTP, для чего можно использовать созданный мной сценарий на языке Perl.
Помимо всего прочего, необходимо добавить в HTTP ответ заголовки, специфичные для DLNA:
Content-Type: video/mpeg
ContentFeatures.DLNA.ORG: DLNA.ORG_PN=MPEG_PS_PAL;DLNA.ORG_OP=01;DLNA.ORG_FLAGS=01500000000000000000000000000000
TransferMode.DLNA.ORG: Streaming
Вопрос: можно ли смотреть HD-каналы(в высоком разрешении) - ДА
Вопрос: можно ли смотреть один и тот же канал на нескольких устроствах - ДА
Вопрос: можно ли смотреть несколько каналов одновременно - ДА
Вопрос: можно ли смотреть зашифорованные каналы - ДА, при условии, что воспроизводящее устройство знает как их расшифоровать
Сценарий очень прост, он лишь создает multicast сокет и циклически вычитывает из него данные, отдавая их через HTTP-сервер(к примеру, Apache) устройству, которое послало запрос.
Данные представляют из себя DVB поток, т.е. MPEG TS(DLNA-профиль DLNA.ORG_PN=MPEG_PS_PAL;DLNA.ORG_OP=01;DLNA.ORG_FLAGS=01500000000000000000000000000000)
При обрыве потока, сценарий автоматически пытается его восстановить, пересоздавая multicast socket(в этот момент на экране будут "квадратики", которые, кстати, менее заметны при просмотре HD-каналов).
Для того, чтобы получить multicast-поток необходимо задействовать сценарий вызвав URL http://my-DLNA-server:port/cgi-bin/DLNA_IPTV.pl?mcast_ip-port-mpg(mpg добавленно для совместимости с телевизорами Samsung и не влияет на работу сценария
Этот сценарий можно использовать с DLNA сервером, использующим Apache для передачи контента DLNA устройствам.
Скачать сценарий преобразования multicast IPTV трафика в unicast HTTP трафик доступный для проигрывания на DLNA-совместимых устройствах
Сценарий был проверен при подключении IPTV ТВист РосТелеком в Новосибирске. Использовалась платформа NetTop Asus Pegatron D525, ОС Debian Linux 2.6.32-5.
Этот сценарий был создан в рамках проекта моего собственного DLNA-совместимого Media Server.

© Константин С. Вишнивецкий, 2007-2017