Re: xupnpd ("улучшенный вариант pshare") - eXtensible UPnP agent
Я думаю и в другие файлы стоит добавить. Вот патч 050-keenetic-utf8.patch:
Собрал версию с этим патчем. В репозитарии (xxxx_4.ipk).
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Zyxmon forum » Маршрутизаторы ZyXEL Keenetic » xupnpd ("улучшенный вариант pshare") - eXtensible UPnP agent
Я думаю и в другие файлы стоит добавить. Вот патч 050-keenetic-utf8.patch:
Собрал версию с этим патчем. В репозитарии (xxxx_4.ipk).
Привет Zyxmon. Обещал отписаться по поводу DLNA и ТВ LG, так вот поставил xupnpd, но сеть все равно отваливается, правда время просмотра увеличилось до 30мин. Буду писать в службу поддержки LG.
Kolek
сеть все равно отваливается
Можно подробнее, у меня LG 42LE5500, работает с mediatomb по 15-18 часов в сутки почти пол-года, сеть ни разу не отвалилась.
То, о чем давно твердили большевики - свершилось !!!
Samsung 32C550 + xupnpd + udpxy - есть картинка IPTV !!!
Осталось переделать плейлист провайдера - и 100 каналов будут у меня !!! И все это по Wi-Fi
подтверджаю! работает телек Samsung LE32D550 + xupnpd + udpxy с плейлистом вида http://192.168.0.1:4022/udp/233.99.61.1:5000
Правило iptables -I INPUT -i lo -j ACCEPT нужно, без него каналы в xupnpd не открываются....
да, ещё в скрипте поменял правило iptables -I INPUT -i eth2.2 -d 239.0.0.0/8 -j ACCEPT на iptables -I INPUT -i eth2.2 -d 233.0.0.0/8 -j ACCEPT
но есть неприятная вещь - xupnpd отваливается через 5 минут просмотра канала, сначала пропадает звук, изображение останавливается и появлется надпись Устройство отключено: Устройство UPnP-IPTV
плейлисты через браузер ip роутера:4044 добаляются, но в названии не принимает дефис "-" в названии плейлиста
Zevs, ну и отлично. Я тут продолжаю дорабатывать скрипт для правильного запуска udpxy. Последний вариант
http://keenetic.zyxmon.org/files/K26udpxy
Номер порта вынесен в переменную, есть проверка, запущен ли udpxy.
По определенным причинам у себя проверить не могу. Проверьте у себя, если не сложно. Результаты, комментарии лучше в личку или на мыло (через форум).
Еще в самом начале этой темы я задавал вопрос: нужно ли правило "iptables -I INPUT -i lo -j ACCEPT"?
Вы какой плейлист подаете xupnpd - исправленный, или оригинальный, но используется cfg.udpxy_url?
нужно ли правило "iptables -I INPUT -i lo -j ACCEPT"?
Вы какой плейлист подаете xupnpd - исправленный, или оригинальный, но используется cfg.udpxy_url?
при удалении правила iptables -D поток не запускается, идёт "загрузка" и потом Xupnpd отваливается и снова появляется в dlna. плейлист подаю исправленный в виде http://192.168.0.1:4022/udp/ и в оригинальном udp://@. В секции cfg.udpxy_url исправил адрес 192.168.1.1 на адрес своего роутера 192.168.0.1. работают оба плейлиста, но только 5 минут... и xupnpd отваливается....
Отредактировано g0ga (2011-10-10 08:12:15)
g0ga, уж пишите тогда "iptables -I INPUT -i eth2.2 -d 224.0.0.0/4 -j ACCEPT"
Так, ответ о необходимости "iptables -I INPUT -i lo -j ACCEPT" - есть.
g0ga, попробуйте обратиться к автору через его блоги по поводу отваливания.
так может быть будет достаточно iptables -I INPUT -i eth2.2 -d 240.0.0.0/4 -j ACCEPT как в скрипте K26udpxy?
g0ga, там в файле очепятка. Лучше 224.0.0.0/4.
Еще посоветую (по поводу отваливания) - подергать параметры запуска udpxy (размер буфера). Проверить работу с другим dlna клиентом (не телевизором). Напимер с windows media player из под win7. Инструкция по настройке WMP в качестве dlna клиента есть на сайте microsoft.
У меня ничего не отваливается - показывает нормально. Пробовал даже HD-канал - работает (только Eurosport HD не хочет).
Не нашел , как в телеке переключить на другую аудио дорогу.
И еще - пробую на таблетке - не показывает (или какими-то рывками).
Можно где-то указать в настройках канала, какой поток отдается ? А то VLC пишет, что не может undefined поток расшифровать.
Я вообще ничего не настраивал - все "из коробки" работает. Только в плей-лист добавил свои каналы. Udpxy ставил давно - уже не помню, как там и что. Посмотрю сегодня параметры запуска
Отредактировано Zevs (2011-10-10 10:26:09)
да, пожалуйста, гляньте с какимим параметрами udpxy запускаете
Получил письмо от автора xupnpd
Есть два способа грузить плейлисты:
1) В xupnpd.lua перечислить все m3u файлы которые хочется загрузить (таблица playlist), там можно указать абсолютные пути;
2) При старте сканирует /media/DISK_A1/system/usr/share/xupnpd/playlists в поисках m3u файловЕсли запустить со следующими опциями возможно удастся увидеть ругательства.
cfg.daemon=false
cfg.embedded=falsecfg.debug=1
Программа должна будет написать какие плейлисты она насканила и загрузила.
Тут либо она ничего не насканила (возможно даже из-за того что что-то какие-то системные вызовы на целевой платформе работают не совсем так как везде.. были у меня проблемы со stat, например.. пришлось отказаться), либо что-то не понравилось в плейлисте.За патчи спасибо! Воткнул к себе mkv и utf8 (уже в svn'е)
Прошу прощения что так долго игнорировал посты в этой ветке.
При редактировании плейлистов через Web-интерфейс xupnpd.lua не изменяется. Кнопка Send просто кладет файл в playlists и заставляет xupnpd перегрузить плейлист. Кроме того, клиентам поддерживающим UPnP уведомления шлется уведомление о том, что что-то изменилось (клиент должен перечитать).
Программа грузит плейлисты по списку в xupnpd.lua и просто сканируя директорию playlists. Все чего не было в xupnpd.lua добавится. Если было, то дублирования не будет - используется пересечение того что в конфиге и того что в директории.
Конфиг хорош тем, что в нем можно указать алиас для плейлиста.
С аплоадом плейлистов (Error occurred) была проблема, сегодня закоммител фикс в свой репозитарий (http://tsdemuxer.googlecode.com/svn/trunk/xupnpd/src), должно работать. Проблема в том, что os.rename не допускает переноса файлов между томами (точками монтирования), заменил на os.execute('mv ....'), должно работать. Спасибо за наводку Zyxmon.
Насчет плейлистов 'udp://@'. Программа просто заменяет все вхождения 'udp://@' на cfg.udpxy_url + '/udp/'. Т.е. самому мультикастовые плейлисты можно не править. Соответственно либо udpxy надо запускать с '-р 4022', либо в xupnpd.lua меняем cfg.udpxy_url на то, что нравится.
Насчет отваливания мультикаста - возможно проблема в маршруте до IGMP роутера (читал у Олега и лично у меня было именно так). Эта такая штука которая следит за подписками в группе и периодически опрашивает подписчиков - жив или нет. Если ответа нет - трансляция прерывается. Получается что показывает несколько минут, а потом молча отваливается.
Мой провайдер назначил IGMP роутеру адрес 192.168.1.2, что должно находится в LANе, а не в WANе. Пришлось добавлять статический маршрут до 192.168.1.2 через WAN интерфейс и править правила пакетного фильтра. Кроме того, нужны маршруты до серверов ведущих вещание (не адреса мультикаст групп!) и firewall должен пропускать внезапно появившийся поток UDP пакетов от них внутрь. udpxy запускал с параметрами '-a br0 -m vlan1 -p 4022 -M 30' (http://clark15b.livejournal.com/110936.html).
PS3 HD показывает, дороги переключает.
На Андроиде UPnPlay + VPlayer - показывает и переключает дороги.
WDTV показывает, но из-за огромного кэша на раскачку уходит по минуте.
VLC (Linux), Windows Media Player - работают.
Огромное спасибо всем за участие! Очень приятно что кому-то это надо. Надеюсь что при такой поддержке со стороны сообщества в конце концов у всех все заработает. Я же готов фиксить и добавлять новые фишки.
воощем отбой.. отваливания xupnpd не наблюдаются
возможно были вчера проблемы у прова
всё работает! никаких изменений не делал, всё запускал скриптами от Zyxmon!
остаётся ещё понять как переключать звуковые дорожки?
Отредактировано g0ga (2011-10-10 20:07:11)
Я же готов фиксить и добавлять новые фишки.
1. Можно ли добавить возможность загружать плейлисты не только по списку в xupnpd.lua и просто сканируя директорию playlists, но и указывать адрес в сети с возможностью обновления (вручную или с определенным периодом) ?
Например, указать адрес: http://mozhay.tv/tv.php и чтобы xupnpd сам скачал его, а затем переодически обновлял перекачивая (задается в параметрах).
2. В плейлистах часто встречается такой параметр как group-title. Можно ли сделать чтобы на телевизоре отображались не сразу все каналы после выбора плейлиста, а группы (если они есть). Ну и затем уж в группах - каналы? (Пример с группами есть в плейлисте mozhay.m3u из исходников xupnpd)
Т.е. чтобы получалась такая иерархия (в playlist1 есть группы, а в playlist2 нет групп):
playlist1
group1
ch1
ch2
group2
ch3
ch4
playlist2
ch5
ch6
Заранее ОГРОМНОЕ СПАСИБО!
Сразу прошу не пинать. Я новичек и многое изучаю, стараюсь сам понять, но приходится и спросить.
Установил xupnpd + udpxy. На компьютере показывает, через icoBit, тоже показывает. Пакеты устанавливал из "коробки", ничего не менял. Плейлист подсунул от своего провайдера вида udp@xxx.xxx...., не менял. На измененный, xupnpd ругнулся, но я его поместил в папку плейлистов. В веб-интерфесе xupnpd, плейлисты видны, но на изменненом не показывает список каналов. На компьютере показывает через плеер с изменненым плейлистом и запущенным udpxy.
На телевизоре, открывается список каналов, при включении любого канала, появляется название и все, черный экран. Ошибок телевизор не выдает, что то, типо, "невозможно найти и прочитать файл". Каналы переключаются. В веб-интерфейсе xupnpd, показывает, что активная сессия с телевизором и название канала, в веб-интерфейсе udpxy показывает, что активен роутер, но не телек. Когда смотришь через комп или плеер в udpxy, показывает активным ИП того или другого. Может я чего то упустил, но ни как не получается подружить xupnpd + udpxy с Philips 8605. Может не хватает каких библиотек? Может нужно еще что то установить на роутер. Помогите.
Отредактировано SergB (2011-10-11 10:23:22)
1. Можно ли добавить возможность загружать плейлисты не только по списку в xupnpd.lua и просто сканируя директорию playlists, но и указывать адрес в сети с возможностью обновления (вручную или с определенным периодом) ?
Например, указать адрес: http://mozhay.tv/tv.php и чтобы xupnpd сам скачал его, а затем переодически обновлял перекачивая (задается в параметрах).
2. В плейлистах часто встречается такой параметр как group-title. Можно ли сделать чтобы на телевизоре отображались не сразу все каналы после выбора плейлиста, а группы (если они есть). Ну и затем уж в группах - каналы? (Пример с группами есть в плейлисте mozhay.m3u из исходников xupnpd)
Т.е. чтобы получалась такая иерархия (в playlist1 есть группы, а в playlist2 нет групп):
1. xupnpd уже умеет загружать плейлисты сканируя директорию playlists, прописывать в xupnpd.lua не обязательно.
Про загрузку плейлистов по расписанию думал сам с самого начала, надо придумать как красиво в интерфейсе оформить и можно будет сделать. Технически все механизмы для этого есть уже сейчас (планировщик и возможность слить файл из Инета).
2. group-title в плейлистах mozhay.tv это нестандартное расширение как и мой dlna_extras (наверное). Видимо VLC это понимает. Мне не очень нравится идея закладываться на такие штуки. Кроме того, это альтернатива уже существующему механизму с разными файлами плейлистов. Мне кажется проще написать обработчик который формировал бы несколько m3u по group-title при загрузке его от провайдера. По крайней мере ничего не сломается. В общем я подумаю. Может получится сделать как ты просишь малой кровью.
clark15b, а можно как то организовать переключение каналов по плейлисту кнопками перемотки (<< >>) или какими нито другими?
и какие теги поддерживаются в плейлистах? "logo" почему то не отображается, хотя возможно телек не понимает...
и звуковые дорожки не понятно как переключать на канале....
Отредактировано g0ga (2011-10-11 12:24:08)
А в плейлисте можно указать формат потока ? Какие могут быть варианты ?
А то моя таблетка пишет, что поток undefined Хотя какими-то рывками пытается декодировать
clark15b, а можно ли еще добавить возможность объединять несколько плейлистов в одну категорию?
Поясню, что я имею ввиду. Сейчас на экране телевизора вначале сразу отображается список плейлистов, а после выбора нужного плейлиста - его содержимое. А хотелось бы, чтобы вначале отображались некоторые категории, а затем при выборе категории - отображаются плейлисты, которые входят в эту категорию.
Для плейлистов, которые задаются в файле xupnpd.lua категорию можно задавать в месте с alias. Т.е. как-то так:
{ 'playlists/mozhay.m3u', 'Группа1/Подгруппа1/Mozhay.tv' }
А для плейлистов, которые явно не указаны в xupnpd.lua, а находятся путем сканирования директории playlists, группу можно задавать путем создания соответсвующей структуры директорий внутри playlists и расположением плейлиста в соответсвующей директории.
PS. Сейчас, насколько я понял, сканируется только корень директории playlists. Или я не прав?
Отредактировано BigHercules (2011-10-11 12:35:45)
clark15b, и еще...
Можно ли добавить удаленное управление xupnpd с телевизора? Ну как минимум реализовать "reload".
По типу того, как это сделано в "домашнем медиа сервере" (http://www.homemediaserver.ru)
Заранее спасибо!
SergB, значит стоит проверить с другим (софтовым) dlna клиентом. Возможно Ваш Philips не понимает xupnpd или потоки Вашего прова (например, у прова все каналы H.264, а филипсу подавай mpeg2). Где настройки у xupnpd написано в первом сообщении и в постах clark15b. Для телевизоров в настройках по умолчанию всё нужное включено.
С аплоадом плейлистов (Error occurred) была проблема, сегодня закоммител фикс в свой репозитарий (http://tsdemuxer.googlecode.com/svn/trunk/xupnpd/src), должно работать. ...
С этим фиксом работает. Проверил.
Закоммител в транк следующие изменения:
- Появилась ф-ция util.md5() для внутреннего использования в будущем;
- В плейлистах теперь допускаются записи вида 'file://' для указания пути к медиафайлу в локальной файловой системе (абсолютные пути будут содержать 3 слеша!);
- В плейлистах теперь допускается еще один атрибут 'event' (как 'logo','type','dlna_extras'). В момент начала проигрывания такого элемента на плеере ядру xupnpd отправляется уведомление указанное в 'event'. В данный момент можно использовать для перечитывания плейлистов. Для этого нужно положить куда-нибудь короткий видеофайл (или музыкальный) и создать сервисный плейлист:
#EXTM3U
#EXTINF:0 event=reload ,Reload
file://./localmedia/reload.mpeg
тыкаем в плеере на Reload, перегружаются плейлисты, а плееру выдается видео или звук уведомления;
- Исправил ошибку в разборе атрибутов элемента плейлиста содержащих кавычки;
- pid-файл теперь создается в /var/run при запуске в режиме демона;
- удаление pid-файла теперь осуществляется os.execute('rm -f'...) т.к. os.remove на моем роутере не работает;
- Функция группировки элементов разных плейлистов по атрибуту 'group-title'. Включается опцией 'cfg.group'. В общем списке кроме названий плейлистов появляются наименования категорий содержащие соответствующий контент. Важно! Если использовались списки доступа для каких-то плейлистов, то их содержимое появится в категориях несмотря на правила. Поэтому для такого контента использование group-title не рекомендуется (в группы попадают только те элементы которые имеют group-title).
На Ubuntu+VLC все работает. Вечером буду проверять дома на DIR-320.
Буду рад если попробует кто-то еще.
Волнуют следующие вопросы:
- не сломались ли атрибуты type и dlna_extras?
- работают ли категории и не ругаются ли на плееры на что-то?
- не появляются ли дубли в Windows Media Player?
- видно ли группы в Windows Media Player при выборе по Актерам?
Объясню в чем причина опасений по поводу последних двух пунктов. Вместо запроса Browse винда использует Search и просит найти все файлы определенного типа начиная с самого корня. Группировка в этом случае осуществляется по Актеру для видео и по Исполнителю для музыки. Т.к. теперь кроме основных плейлистов могут появится категории содержащае копии элементов, xupnpd может выдать при поиске обе копии. Я постарался избежать этого в коде (для категорий проставляю признак virtual и в запросе на поиск не выдаю содержимое таких элементов), но пока проверить не могу.
Насчет логотипов каналов. Показывают не все плееры. PS3 показывает точно, но только JPEG. Windows Media Player показывает все, но все равно лучше использовать JPEG (т.к. xupnpd говорит плеерам что картинка в формате JPEG).
На основе PunBB, при поддержке Informer Technologies, Inc.