06 марта 2015

Раздача IPTV через DLNA

Cмотреть IPTV на телевизоре можно и без специальной приставки или виджета SmartTV, а через обычный роутер. Достаточно, что бы ваш телевизор поддерживал протокол DLNA.

Поможет нам в этом легковесный медиа-сервер xupnpd, который умеет транслировать потоковое видео в локальную сеть. Его можно поставить на большое количество роутеров, но мы будем ставить на сервер с FreeBSD.
Из основных особенностей стоит отметить.
  1. Имеет встроенный мультикаст-прокси, таким образом клиенты, которые не поддерживают мультикастовые рассылки будут получать IPTV трафик через HTTP.
  2. В качестве источника видео может выступать http-ресурс. 
  3. Возможность предоставлять доступ к локальным видео-файлам.
  4. Расширение функциональности путем написания скриптов на языке Lua. 
  5. Не умеет транскодировать!
  6. Поддерживает M3U плейлисты. 
  7. Web-интерфейс для управления.
К сожалению в портах его пока нет, поэтому ставить будем из исходников. 
Получаем их по svn
# svn co http://tsdemuxer.googlecode.com/svn/trunk/xupnpd 
# cd xupnpd/src/ 
Хочу обратить внимание, что в Freebsd 10 gcc уже не используется по умолчанию.  Поэтому нужно открыть Makefile и вручную в секции x86_bsd заменить gcc на clang
x86_bsd:
 make -C $(LUA) CC=clang a
 clang -O2 -c -o md5.o md5c.c
 clang $(CFLAGS) -DINET -DWITH_LIBUUID -o xupnpd $(SRC)  md5.o -llua -lm
 strip xupnpd
Можно начинать сборку
# gmake x86_bsd
После компиляции и линковки вы получите исполняемый файл xupnpd.

Перед запуском открываете файл настроек xupnpd.lua и правите интерфейс, на котором будет раздача.
cfg.ssdp_interface='vr0'
И интерфейс через который будете получать мультикаст трафик.
cfg.mcast_interface='eth1'
Можно запускать
# ./xupnpd
Заходите браузером на адрес вашего интерфейса, например 192.168.25.1:4044 и увидите такую web-морду.

Здесь вы можете загрузить M3U плейлист с каналами от вашего провайдера.

Что бы расшарить видеофайлы, нужно в конфиге xupnpd.lua добавить нужную папку
playlist= {
  { '/share', 'Share Directory' }
}
Для запуска в режиме демона
cfg.daemon=true
Приятного просмотра!

4 комментария:

  1. Сайт просто находка для меня, столько полезной инфы,
    спасибо что вы есть!

    ОтветитьУдалить
    Ответы
    1. Рады стараться! Спасибо, что зашли и нашли что то интересное!

      Удалить
  2. помогите пожалуйста чайнику с скриптом автозагрузки

    ОтветитьУдалить