Xupnpd установка на роутер
Новый xupnpd2 на github.com. Узнать о проекте или скачать ZIP архив.
О программе
Эта программа является простым и переносимым UPnP медиа-сервером для осуществления IPTV трансляций в рамках домашней сети на DLNA совместимых устройствах без поддержки мультикастинга или плейлистов со списком Интернет-адресов источников контента.
xupnpd может быть установлен на домашний WiFi роутер, что даст возможность просмотра Интернет-телевиденья на множестве домашних устройств без использования компьютера и специализированных ТВ приставок Вашего домашнего Интернет провайдера (при условии отсутствия шифрования). Кроме того существует возможность просмотра спутникового телевиденья на множестве телевизоров имея всего один ресивер.
Программа не имеет сертификата соответствия требованиям DLNA но умеет анонсировать в локальную сеть M3U список юникаст или мультикаст ТВ-каналов используя UPnP/DLNA механизмы в объеме достаточном для просмотра IPTV местного провайдера или роликов с Vimeo на Sony PlayStation 3, планшетах и многих моделях телевизоров Smart TV.
В случае мультикаст каналов программа может осуществлять преобразование в юникаст поверх HTTP сама либо с использованием udpxy. При преобразовании не происходит транскодирования сигнала — только смена способа доставки до плеера. Существует возможность просмотра как SD так и HD каналов.
Все что нужно — роутер или компьютер под управлением OS Linux и DLNA совместимый плеер/телевизор.
Возможности
- Встроенный DLNA/UPnP медиа-сервер для анонса списка каналов или медиа-файлов в локальную сеть
- Поддержка HTTP источников (список URL с адресами потоков в Интернете)
- Встроенный мультикаст прокси для IPTV от домашнего Интернет-провайдера
- Классический медиа-сервер для предоставления общего доступа к видео-файлам в домашней сети
- Поддержка YouTube, Vimeo, Vkontakte, IVI, GameTrailers, AG и т.п.
- Просмотр видео высокого разрешения (HD)
- Интернет-радио
- Механизм расширений на языке Lua для поддержки новых источников видео
- Отсутствие транскодирования
- M3U плейлисты
- Автоматическое обновление списка роликов (фидов) или каналов по расписанию
- Группировка контента и древовидное отображение
- Списки контроля доступа и родительский контроль
- Web-интерфейс и возможность создания внешних программ для управления
- Возможность модификации путем Lua-скриптинга
- Open source
Требования
- Маршрутизатор* на Atheros или Broadcom чипсете (ar71xx, mipsel и т.п.), например: D-Link DIR-320, ASUS WL-500GP, TP-LINK WR841ND или Zyxel Keenetic
- Прошивка OpenWrt или DD-Wrt (либо другие кастомные прошивки на основе Linux)
- Опционально udpxy
* Вместо роутера можно использовать PC либо иное оборудование под управлением операционной системы на основе Linux или BSD.
Скачать
Готовые бинарные сборки и исходные тексты можно получить тут.
Картинки
Видео
Установка и настройка
- Загрузить архив на маршрутизатор (scp,sftp,ftp)
- Распаковать (например: ‘tar zxf xupnpd.tar.gz’)
- Запустить (‘xupnpd/xupnpd-mipsel’ или ‘xupnpd/xupnpd-ar71xx’)
- Перейти браузером по ссылке ‘http://192.168.1.1:4044’ (192.168.1.1 — адрес Вашего маршрутизатора)
- Загрузить Ваш IPTV плейлист в формате M3U
- Наслаждаемся IPTV в Вашем DLNA-совместимом плеере
Часто задаваемые вопросы
Пример плейлиста
- name — название плейлиста
- type — тип видео по умолчанию
- dlna_extras — DLNA профиль по умолчанию
- plugin — название обработчика (расширения) для всего плейлиста по умолчанию (для YouTube, Vimeo и т.п.)
- logo — URL логотипа (картинка в формате jpeg)
- group-title — название группы (элементы с одинаковым значением группируются в одной папке)
- type — тип видео
- dlna_extras — DLNA профиль
- plugin — название обработчика (расширения)
Атрибут ‘type’ может иметь следующие значения: avi, asf, wmv, mp4, mpeg, mpeg1, mpeg2, ts, mp2t, mp2p, mov, mkv, 3gp, flv, aac, ac3, mp3, ogg, wma
Атрибут ‘dlna_extras’ может иметь следующие значения: none, mpeg_ps_pal, mpeg_ps_pal_ac3, mpeg_ps_ntsc, mpeg_ps_ntsc_ac3, mpeg1, mpeg_ts_sd, mpeg_ts_hd, avchd, wmv_med_base, wmv_med_full, wmv_med_pro, wmv_high_full, wmv_high_pro, asf_mpeg4_sp, asf_mpeg4_asp_l4, asf_mpeg4_asp_l5, asf_vc1_l1, mp4_avc_sd_mp3, mp4_avc_sd_ac3, mp4_avc_hd_ac3, mp4_avc_sd_aac, mpeg_ts_hd_mp3, mpeg_ts_hd_ac3, mpeg_ts_mpeg4_asp_mp3, mpeg_ts_mpeg4_asp_ac3, avi, divx5, mp3, ac3, wma_base, wma_full, wma_pro
Одобрено Locky
16 декабря 2011 г.
Руководство: смотрим IPTV на PlayStation 3 и SmartTV по DLNA
- PlayStation 3 или телевизор с поддержкой DLNA
- Поддерживаемый маршрутизатор (Asus, ZyXEL Keenetic или другой с возможность установки дополнительного ПО) или ПК с Linux
- (желательно) Услуга IPTV с открытыми каналами у Вашего интернет-провайдера
IPTV называют передачу телевизионных каналов через IP сети. Обычно вещание осуществляется по UDP unicast в Интернет или multicast во внутренних сетях провайдеров. Для просмотра используется программный плеер для ПК (VLC или его модификация под торговой маркой конкретного ISP) или специальная приставка к ТВ, которая покупается или берётся в аренду у провайдера.
IPTV как правило обеспечивает лучшее качество изображения и звука по сравнению с аналоговым эфирным или кабельным ТВ. Однако оно имеет и свои недостатки:
- требует рабочее высокоскоростное подключение к сети
- качество может зависеть от загрузки сетевого канала
- требует для просмотра ПК или специальное оборудование, причём традиционно провайдеры на договор предоставляют только одну приставку, что ограничивает просмотр единственным телевизором в доме
Первые два недостатка обусловлены используемой технологией и не могут быть исправлены, а над последним мы поработаем в этом руководстве.
Суть наших последующих действий заключается в запуске на маршрутизаторе (точке доступа) специального DLNA-сервера, который даст доступ к IPTV каналам любому стандартному DLNA-клиенту: телевизору, телефону, планшету и.т.п., подключенному в вашей сети. Мы в качестве клиента будем использовать PlayStation 3 (подробнее о DLNA и PS3 читайте здесь). Таким образом нам не нужно будет покупать дополнительное оборудование или смотреть IPTV на ПК.
Недостатком данного метода является необходимость установки дополнительного ПО на маршрутизатор, что возможно не на всяком устройстве и требует определённых знаний от пользователя. При отсутствии необходимого оборудования или желания DLNA-сервер можно запустить и на обычном ПК, но в этом случае придётся держать его включенным во время просмотра ТВ что не очень удобно.
Очевидно что для работы DLNA-сервера нам понадобится маршрутизатор с возможностью установки дополнительно ПО. Данная задача может быть решена множеством способов, в этом руководстве я расскажу о необходимых действиях для точек доступа Asus с пользующейся заслуженной народной любовью прошивкой от Олега и Энтузиастов.
На момент написания этой статьи прошивка от Олега и Энтузиастов может быть установлена на следующие модели маршрутизаторов Asus: WL-500g Premium, WL-500g Premium v2, WL-500W, RT-N16, RT-N15U, RT-N12, RT-N12B1, RT-N10 и RT-N10U. Я будут мучить свой старенький, но уже ставший легендарным маршрутизатор Asus WL-500g Premium.
Герой статьи — Asus WL-500g |
Владельцы оборудования ZyXEL Keenetic могут получить информацию об установке xupnpd в соответствующей ветке на форуме Zyxmon.
Если у вас другой маршрутизатор, например бюджетный и поэтому очень популярный D-Link DIR-320, то отчаиваться рано. Его и множество других устройств поддерживают открытые прошивки вроде DD-WRT (список поддерживаемых устройств) или OpenWrt. Однако вам самим придётся разобраться с установкой, т.к. дальнейшие инструкции относятся к прошивке от Олега. Действуйте по аналогии. Кроме этого всегда есть возможность установки сервера на ПК, о ней читайте в разделе «Альтернативный вариант: установка DLNA-сервера на ПК».
Перед установкой DLNA-сервера сделаем небольшие настройки для корректной работы мультикаста в локальной сети на случай если мы захотим использовать плеер на ПК или приставку от провайдера параллельно с DLNA-клиентами.
В разделе IP Config — Route устанавливаем Enable multicast routing? в Yes, жмём Apply.
Включаем multicast routing |
В разделе IP Config — Miscellaneous устанавливаем Efficient Multicast Forwarding в Enabled, жмём Apply и Finish.
Включаем efficient multicast forwarding (igmpproxy) |
В разделе System Setup — Services проверяем активирован ли telnet доступ к маршрутизатору Enable telnet access: yes. При необходимости включаем, жмём Apply и Finish.
Включаем telnet доступ к маршрутизатору |
Теперь всё готово к установке DLNA-сервера. В качестве которого мы будем использовать xupnpd — простой, беспроблемный и нетребовательный к ресурсам. Софт просто замечательный во всех отношениях, специализирующийся как раз на «раздаче» IPTV. Ранее данный проект был известен под названием pshare.
Запускаем в командной строке telnet 192.168.1.1 , вводим имя пользователя admin и пароль от веб-интерфейса. Мы «внутри» маршрутизатора.
Если в вашей ОС Windows отсутствует утилита telnet, то скачайте программу PuTTY, запустите её, выберите протокол Telnet и введите адрес сервера 192.168.1.1
Для хранения дополнительного ПО нам понадобится USB-флешка, которая будет постоянно подключена к точке. Все данные на ней будут потеряны. Подойдёт любой объём, я использовал найденную в музее флешку на 128 Мб. Подключаем её в нижний USB порт, ждём 10 секунд и выполняем команду mount . В последней строке вывода должно быть что-нибудь вроде /dev/discs/disca/part1 on /tmp/mnt/disca_1. Если вместо /dev/discs/disca/part1 у вас что-то незначительно отличающееся (например discb), то в дальнейших командах заменяйте эту строку на свой вариант. Теперь форматируем флешку, создаём каталог /opt для хранения ПО, правильно монтируем, создаём и активируем файл подкачки на 64 Мб:
umount /dev/discs/disca/part1
mkfs.ext3 /dev/discs/disca/part1
mount /dev/discs/disca/part1 /tmp/mnt/disca_1/
mkdir /tmp/mnt/disca_1/opt
mount -obind /tmp/mnt/disca_1/opt/ /opt/
dd if=/dev/zero of=/opt/swapfile bs=1024 count=65536
mkswap /opt/swapfile
swapon /opt/swapfile
Устанавливаем менеджер пакетов ipkg, текстовый редактор nano (для людей не владеющих vi), скачиваем и распаковываем сервер xupnpd:
ipkg.sh update
ipkg.sh install ipkg-opt
ipkg update
ipkg install nano
wget http://tsdemuxer.googlecode.com/files/xupnpd-rc14.tar.gz
tar zxf xupnpd-rc14.tar.gz
rm xupnpd-rc14.tar.gz
mv ./xupnpd-rc/ /opt/xupnpd/
cd /opt/xupnpd/
Запускаем сервер:
./xupnpd-bcm947xx-ddwrt
На компьютере открываем в браузере адрес http://192.168.1.1:4044 и ожидаем вот такую страницу:
Веб-интерфейс сервера xupnpd |
Если вы её видите, то поздравляю — сервер установлен и запущен, большая часть работы сделана.
При желании можно провести тонкую донастройку сервера кликнув на кнопку Config:
Страница настроек сервера xupnpd |
Здесь в частности можно указать настройки для плагинов ВКонтакте, YouTube и.т.п. и интервал обновления списка видео из этих источников Feeds reload interval (в секундах). Для сохранения настроек нажимаем Save. По кнопке Profiles доступны профили различных DLNA устройств, возможно вы захотите включить или отключить какие-либо из профилей в зависимости от того, что будете использовать для просмотра.
Теперь включаем PlayStation 3 и проверяем работоспособность. В разделе XMB — Видео должен появиться пункт UPnP-IPTV. Выглядит это примерно так:
DLNA-сервер с IPTV на PlayStation 3 |
Для телевизоров с поддержкой DLNA принцип аналогичный, при необходимости проконсультируйтесь с руководством пользователя.
Осталось сохранить изменения на маршрутизаторе. Возвращаемся к telnet’у. Добавляем монтирование флешки, подключение файла подкачки и запуск сервера в автозагрузку и сохраняем настройки:
mkdir -p /usr/local/sbin
echo «#!/bin/sh» > /usr/local/sbin/post-mount
echo «mount -obind /tmp/mnt/disca_1/opt/ /opt/» >> /usr/local/sbin/post-mount
echo «swapon /opt/swapfile» >> /usr/local/sbin/post-mount
echo «/opt/xupnpd/xupnpd-bcm947xx-ddwrt» >> /usr/local/sbin/post-mount
chmod +x /usr/local/sbin/post-mount
flashfs save && flashfs commit && flashfs enable && reboot
После перезагрузки сервер должен запуститься автоматически. Наслаждайтесь.
Для просмотра IPTV каналов из сети провайдера понадобится m3u-плейлист с их списком, обычно он доступен на сайте провайдера в разделе настроек или по звонку в техническую поддержку. Типичный плейлист выглядит примерно так:
#EXTINF:-1,Россия 24
udp://@235.10.10.8:1234
#EXTINF:-1,ТВ Центр
udp://@235.10.10.18:1234
#EXTINF:-1,Россия К
udp://@235.10.10.9:1234
#EXTINF:-1,Домашний
udp://@235.10.10.6:1234
Каналы должны быть «открытыми» , т.е. незашифрованными. Легче всего это проверить попытавшись открыть адрес вида udp://@235.10.10.18:1234 на компьютере в плеер VLC. «Открытые» каналы будут работать, зашифрованные — нет. Посмотреть последние вы сможете только на оборудовании оператора или через его плеер. Стороннее оборудование и ПО с ними несовместимо, можете послать луч ненависти поборникам проприетарного ПО и DRM.
Теперь плейлист с вашими каналами надо закачать на сервер. На веб-интерфейсе xupnpd нажимаем кнопку Playlists, Upload *.m3u file, Обзор, выбираем файл, Send, Back, Reload. Готово. Проверяем на телевизоре или PlayStation 3.
Если у вас нет возможности или желания установить xupnpd на маршрутизатор, то можно попытаться сделать это на ПК под управлением ОС Linux. Я приведу пример на основе Ubuntu 11.10.
Открываем терминал. Устанавливаем необходимые инструменты, скачиваем исходный код xupnpd и компилируем:
sudo apt-get install build-essential subversion uuid-dev
svn co http://tsdemuxer.googlecode.com/svn/trunk/xupnpd
cd xupnpd/src/
make
Редактируем файл с настройками сервера
gedit xupnpd.lua
и прописываем:
- cfg.ssdp_interface=’eth0′ (сетевой интерфейс в сторону точки доступа или провайдера если кабель от него подключён непосредственно к ПК. Обычно eth0, проверить ifconfig )
- cfg.ssdp_loop=0
- cfg.daemon=true
- cfg.debug=0
- cfg.mcast_interface=’eth0′ (сетевой интерфейс в сторону точки доступа или внутренней сети если кабель от провайдера подключён непосредственно к ПК. Обычно eth0, проверить ifconfig )
- cfg.feeds_update_interval=1800
- cfg.uuid=nil
- cfg.pid_file=’./’..cfg.log_ident..’.pid’
Если у вас в сети используется маршрутизатор Asus с прошивкой от Олега или другой со встроенным igmpproxy:
- cfg.udpxy_url=’http://192.168.1.1:4022′ (убираем — перед строкой, порт 4022 прописываем в настройках маршрутизатора в разделе IP Config — Miscellaneous Multicast to HTTP Proxy Port)
Сохраняем файл, запускаем сервер:
./xupnpd
Проверяем. Если нужно добавляем плейлист с IPTV каналами вашего провайдера (см. предыдущий пункт) через веб-интерфейс по адресу вашего ПК ( ifconfig ) порт 4044. По localhost доступа нет! При желании добавляем в автозапуск: Приложения — Прочие — Автоматически запускаемые приложения.