1

Тема: xupnpd ("улучшенный вариант pshare") - eXtensible UPnP agent

Как мне написал автор pshare (соседняя тема) Антон Бурдынюк

pshare больше не поддерживаю. На телеках не работает.

Вместо него теперь xupnpd. UPnP реализован в большем объеме, есть встроенный HTTP прокси для добавления дополнительных DLNA заголов в поток которые нужны телевизорам.
Сейчас народ активно тестирует, телеки показывают.
Поэтому настоятельно рекомендую обратить внимание на xupnpd и не заморачиваться с pshare.

Поэтому и собран xupnpd.
Страница проекта http://xupnpd.org/
На русском - http://clark15b.livejournal.com/179943.html
Ссылки на обсуждение (на русском)
http://clark15b.livejournal.com/117362.html
http://ru-playstation.livejournal.com/168039.html

Версия выложена в репозитарий, ставим с помощью "opkg install xupnpd".
Скрипт запуска K27xupnpd (для автозапуска переименовываем). В скрипт добавлены правила iptables (ниже) с этим продолжаем разбираться. Т.к. у меня сейчас udpxy не на кинеткие и кинетик в режиме точки доступа - я в этом не помогу.

Настройки (xupnpd.lua) в директории /media/DISK_A1/system/usr/share/xupnpd
При работе совместно с udpxy скорее всего (как и для pshare) нужно разрешить сетевой обмен "внутри кинетика"

iptables -I INPUT -i lo -j ACCEPT

Просьба это проверить.

По сравнению с xupnpd.lua из svn сделаны следующие изменения
интерфейc установлен br0
отключен multicast loop (нам он и не нужен).
включен режим демона (для тестирования имеет смысл отключить, но может сразу все работает?)
pid файл создается в папке /media/DISK_A1/system/var

По сравнению с аналогичным конфигом из архива на странице проекта - не включен режим embeded (после отладки лучше включить).
Режим embeded в версии из репозитария уже включен.

Исходники минимально пропатчены (для размещения файлов по умолчанию в /media/DISK_A1/system/usr/share/xupnpd).

Разбираемся, отписываемся.
Бинарник по крайней мере запускается, web интерфейс работает. При отключении режима демона логи выдает.

2

Re: xupnpd ("улучшенный вариант pshare") - eXtensible UPnP agent

Zyxmon, Спасибо

Завтра вечером протестирую и отпишусь !

3

Re: xupnpd ("улучшенный вариант pshare") - eXtensible UPnP agent

спасибо!!!
в выходные буду тестить)

4

Re: xupnpd ("улучшенный вариант pshare") - eXtensible UPnP agent

Забыл написать "секретное" название бинарника - xupnpd  big_smile!
Можно еще попытаться запустить бинарник из архива на странице проекта (mipsel вариант) - это я не пробовал. В этом случае стоит распаковать все в отдельную папку, liblua не нужна.

5

Re: xupnpd ("улучшенный вариант pshare") - eXtensible UPnP agent

полуофф: ткните как установить ipk на keenetic...

6

Re: xupnpd ("улучшенный вариант pshare") - eXtensible UPnP agent

g0ga :

полуофф: ткните как установить ipk на keenetic...

Ну Вы, блин, даете. (С) народный.
В конце соседней темы по sane описаны два варианта.
1. Скачать на кинетик, указать путь к скачанному файлу в команде opkg
2. Указать URL в параметрах opkg.

7

Re: xupnpd ("улучшенный вариант pshare") - eXtensible UPnP agent

Интересная возможность xupnpd (c блога)

Для раздачи локального контента в таблицу playlist (xupnpd.lua) надо добавить директории содержимое которых надо раздавать.
Например, "{ './localmedia', 'Local Media Files' }" приведет к появлению еще одной папки 'Local Media Files' содержащий все внутренние файлы. Тип и профиль DLNA определяется по расширению (по умолчанию 'mpeg'), поддиректории игнорируются (обязательно перечислять в таблице).

После добавления новых файлов необходимо перечитать плейлисты.
Для этого либо посылаем SIGUSR1 процессу xupnpd либо дергаем броузером http://192.168.1.1:4044/reload (где 192.168.1.1 адрес хоста с xupnpd).

8

Re: xupnpd ("улучшенный вариант pshare") - eXtensible UPnP agent

Установил оба пакета http://forum.zyxmon.org/post1948.html#p1948, выключил транзит через lo

iptables -D INPUT -i lo -j ACCEPT

IP TV у меня нет, поэтому проверил только IP Radio и UPnP-DLNA на медиаплеере WDTV Live.
IP Radio.
Сделал плей-лист ipradio.m3u (ip-radio.m3u не подхватился)

#EXTM3U
#EXTINF:0 type=mp3 dlna_extras=mp3 ,HitFM.mp3
http://online-hitfm.tavrmedia.ua:8000/HitFM

подсунул, работает.
UPnP-DLNA.
В xupnpd.lua в конец секции playlist добавил

{ '/media/DISK_A1/_Videos/Favorites', 'Favorites' }

и перезапустил xupnpd, нашлись все фильмы в расшаренной папке, с именами файлов кирилицей и содержащих пробелы нет проблем, проигрывает. Удобно, что можно затачивать mime-type под свой клиент редактированием файла xupnpd_mime.lua.

P.S. для mkv дописал в файл xupnpd_mime.lua две строки (после ['mov']  =  ...) и проверил на LG TV, работает:

upnp_proto=
{
    ...
    ['mov']   = 'http-get:*:video/quicktime:',
    ['mkv']   = 'http-get:*:video/x-matroska:',
    ...

mime=
{
    ...
    ['mov']   = { upnp_type.video, upnp_class.video, 'video/quicktime', upnp_proto.mov,   dlna_org_extras.none },
    ['mkv']   = { upnp_type.video, upnp_class.video, 'video/x-matroska', upnp_proto.mkv,   dlna_org_extras.none },
    ...

Отредактировано vovic67 (2011-10-07 21:49:32)

9

Re: xupnpd ("улучшенный вариант pshare") - eXtensible UPnP agent

Проверил. Работает. Проверял покачто с внешним IPTV (там в комплекте идёт плейлист mozhay. Оно уже в http формате ссылки. Завтра сутра буду пробовать уже с внутренним IPTV в связке с udpxy. А так пока доволен - работает.

10

Re: xupnpd ("улучшенный вариант pshare") - eXtensible UPnP agent

vovic67 :

выключил транзит через lo

Нужно для совместной работы с udpxy, почти наверняка при использовании cfg.udpxy_url. В описанной ситуации - лишнее это. При использовании multicast playlists (udp://@...), насколько понимаю, нужно запускать udpxy с параметром -р 4022.
Плейлисты через web интерфейс грузяться? Попадают в xupnpd/playlists?

PS Сам хотел вчера вечером провести подобный тест, теперь не буду.

11

Re: xupnpd ("улучшенный вариант pshare") - eXtensible UPnP agent

Zyxmon :

Плейлисты через web интерфейс грузяться? Попадают в xupnpd/playlists?

Продолжаю тестить. Нет, не грузятся. вылазиет Error occurred в веб интерфейсе.

Проверил работу совместно с udpxy - Работает. Уважаемый Zyxmon, помогите создать скрипт автозапуска udpxy. Тот что вы привели в теме по udpxy у меня не работает. И я другие команды впихиваю в IPtabls, и помоему, немножко по другому запускаю сам udpxy, чтобы он стартанул...

12

Re: xupnpd ("улучшенный вариант pshare") - eXtensible UPnP agent

Zyxmon

Плейлисты через web интерфейс грузяться? Попадают в xupnpd/playlists?

Наличие плей-листов в web-интерфейс (вкладка Playlists) определяется только присутствием файлов с расширением m3u в ...usr/share/xupnpd/playlists и, соответственно, на клиенте видны папки с именами плей-листов. Через web-интерфейс (кнопка Send) плей-листы у меня не грузятся, выдается сообщение об ошибке и в секцию playlist xupnpd.lua ничего не записывается.

13

Re: xupnpd ("улучшенный вариант pshare") - eXtensible UPnP agent

Nigel, скоро обновлю udpxy. Вышло обновление

Patch-1 20 (06-Oct-2011)
    (*) FIXED: any error in accept() makes udpxy quit (disregarding exceptions such as EINTR and ECONNABORTED)

Добавлю скрипт запуска.
Проверьте, нужно ли вышеприведенное правило iptables при работе udpxy, для этого его удалите

iptables -D INPUT -i lo -j ACCEPT

Столько раз, сколько добавляли.
Вместе с обновленным udpxy в репозитарий добавлю и xupnpd. Тут отпишу.

14

Re: xupnpd ("улучшенный вариант pshare") - eXtensible UPnP agent

Вроде не нужно. при попытке удаления написало что его нету.
Я запускаю updxy с другими правилами iptables. (сори я не сильно в них разбираюсь, знаю что с ними работает).
Я уже показывал вам, вот тут, этого достаточно чтоб у меня завелось udpxy нормально. http://forum.zyxmon.org/post1890.html#p1890

Сори за оффтоп...

15

Re: xupnpd ("улучшенный вариант pshare") - eXtensible UPnP agent

vovic67, у Вас очепятка. -I и -A - добавляют правило (INSERT, APPEND), -D - удаляет правило (-D - delete).
Nigel, Вы так ВСЁ разрешили, неправильно это.

All
Насчет добавления плейлистов через web - разберемся, может автора xupnpd привлечем. Это может быть связано с тем, что я разнес бинарник с остальными файлами.

16

Re: xupnpd ("улучшенный вариант pshare") - eXtensible UPnP agent

Zyxmon

-I и -A - добавляют правило (INSERT, APPEND), -D - удаляет правило (-D - delete)

Спасибо, мне надо было явно написать, что у меня это правило присутствует и разрешено в firewall.d и, чтобы вернуть систему  к виду "по умолчанию" и для "чистоты" тестирования, я его выключил.

Отредактировано vovic67 (2011-10-08 09:49:00)

17

Re: xupnpd ("улучшенный вариант pshare") - eXtensible UPnP agent

xupnpd в репозитарии, по сравнению с версией для тестирования добавлен скрипт запуска K27xupnpd и включен в конфигурации режим embeded.

18

Re: xupnpd ("улучшенный вариант pshare") - eXtensible UPnP agent

По поводу плейлистов. vovic67, если есть время, посмотрите /ui/xupnpd_ui.lua
Если я правильно понимаю, сначала плейлист загружается в /tmp
tfname='/tmp/'..fname
Потом переименовывается
os.rename(tfname,'playlists/'..fname)
Тут, наверное, и получаем облом.
Нужно попробовать подправить - tfname. Создавать временный файл на usb в /media/DISK_A1/system/tmp.

Я бы и сам, но голова сегодня с утра "дурная".

19

Re: xupnpd ("улучшенный вариант pshare") - eXtensible UPnP agent

Исправил ui/xupnpd_ui.lua
плейлисты у меня загружаются. Обновил пакет с этим фиксом.

20

Re: xupnpd ("улучшенный вариант pshare") - eXtensible UPnP agent

Теперь нет ошибки. Но не понятно куда загружаются плей-листы и что должна делать кнопка "Send" в web-интерфейсе, никакие новые записи в секции playlist файла xupnpd.lua не появляются. А любой, вновь созданный, плей-лист всегда подхватывается одной кнопкой "Reload" в web-интерфейсе.

ИМХО. И не хватает поддержки кирилицы в названии плей-листа и некоторых символов, напр.: "-".

Отредактировано vovic67 (2011-10-08 12:25:08)

21

Re: xupnpd ("улучшенный вариант pshare") - eXtensible UPnP agent

Плейлисты попадают в /media/DISK_A1/system/usr/share/xupnpd/playlists.
Если перестартовать xupnpd, то в web интерфейсе отображаются (наверное все плейлисты из этой папки), подхватываются или нет - не проверял.
В xupnpd.lua не появляются. Если не подхватываются, то нужно добавлять ручками.

Это вопросы, скорее, к автору xupnpd, Антону. Надеюсь он прочтет это и ответит.

22

Re: xupnpd ("улучшенный вариант pshare") - eXtensible UPnP agent

vovic67 :

P.S. для mkv дописал в файл xupnpd_mime.lua две строки (после ['mov']

Если не лень, выкладывайте изменения в виде patch файла, добавлю в сборку.

23

Re: xupnpd ("улучшенный вариант pshare") - eXtensible UPnP agent

040-keenetic-mkv-support.patch

diff -u orig/xupnpd_mime.lua mod/xupnpd_mime.lua
--- orig/xupnpd_mime.lua    2011-09-08 18:17:25.000000000 +0400
+++ mod/xupnpd_mime.lua    2011-10-08 22:49:26.000000000 +0400
@@ -25,6 +25,7 @@
     ['mp2t']  = 'http-get:*:video/mp2t:',
     ['mp2p']  = 'http-get:*:video/mp2p:',
     ['mov']   = 'http-get:*:video/quicktime:',
+    ['mkv']   = 'http-get:*:video/x-matroska:',
     ['aac']   = 'http-get:*:audio/x-aac:',
     ['ac3']   = 'http-get:*:audio/x-ac3:',
     ['mp3']   = 'http-get:*:audio/mpeg:',
@@ -85,6 +86,7 @@
     ['mp2t']  = { upnp_type.video, upnp_class.video, 'video/mp2t',      upnp_proto.mp2t,  dlna_org_extras.mpeg_ts_hd },
     ['mp2p']  = { upnp_type.video, upnp_class.video, 'video/mp2p',      upnp_proto.mp2p,  dlna_org_extras.mpeg_ps_pal },
     ['mov']   = { upnp_type.video, upnp_class.video, 'video/quicktime', upnp_proto.mov,   dlna_org_extras.none },
+    ['mkv']   = { upnp_type.video, upnp_class.video, 'video/x-matroska', upnp_proto.mkv,   dlna_org_extras.none },
     ['aac']   = { upnp_type.audio, upnp_class.audio, 'audio/x-aac',     upnp_proto.aac,   dlna_org_extras.none },
     ['ac3']   = { upnp_type.audio, upnp_class.audio, 'audio/x-ac3',     upnp_proto.ac3,   dlna_org_extras.ac3 },
     ['mp3']   = { upnp_type.audio, upnp_class.audio, 'audio/mpeg',      upnp_proto.mp3,   dlna_org_extras.mp3 },

http://rghost.net/24761871

Отредактировано vovic67 (2011-10-08 21:59:45)

24

Re: xupnpd ("улучшенный вариант pshare") - eXtensible UPnP agent

vovic67, есть же более удобное место для выкладывания маленьких файлов.

All Собран xupnpd с патчем от vovic67 для поддержки mkv файлов. Для тех, кто ставил пакет раньше, достаточно как всегда сделать:

opkg update
opkg upgrade

25

Re: xupnpd ("улучшенный вариант pshare") - eXtensible UPnP agent

У меня в firefox некорректно в статусе отображались русские названия активных потоков (проверял на mozhay.m3u). Пришлось добавить

<meta http-equiv="Content-type" content="text/html; charset=utf-8"/>

в файл ui_playlist.html

Я думаю и в другие файлы стоит добавить. Вот патч 050-keenetic-utf8.patch:

diff -Nur a/ui/ui_main.html b/ui/ui_main.html
--- a/ui/ui_main.html    2011-10-09 15:31:28.000000000 +0400
+++ b/ui/ui_main.html    2011-10-09 15:36:15.000000000 +0400
@@ -1,6 +1,7 @@
 <html>
 <head>
 <title>${fname}</title>
+<meta http-equiv="Content-type" content="text/html; charset=utf-8"/>
 <link rel="stylesheet" href="/ui?action=style">
 </head>
 
diff -Nur a/ui/ui_playlist.html b/ui/ui_playlist.html
--- a/ui/ui_playlist.html    2011-10-09 15:31:28.000000000 +0400
+++ b/ui/ui_playlist.html    2011-10-09 15:36:35.000000000 +0400
@@ -1,6 +1,7 @@
 <html>
 <head>
 <title>${fname} - playlists</title>
+<meta http-equiv="Content-type" content="text/html; charset=utf-8"/>
 <link rel="stylesheet" href="/ui?action=style">
 </head>
 
diff -Nur a/ui/ui_status.html b/ui/ui_status.html
--- a/ui/ui_status.html    2011-10-09 15:31:28.000000000 +0400
+++ b/ui/ui_status.html    2011-10-09 15:36:46.000000000 +0400
@@ -1,6 +1,7 @@
 <html>
 <head>
 <title>${fname} - status</title>
+<meta http-equiv="Content-type" content="text/html; charset=utf-8"/>
 <link rel="stylesheet" href="/ui?action=style">
 </head>
 
diff -Nur a/www/index.html b/www/index.html
--- a/www/index.html    2011-10-09 15:31:28.000000000 +0400
+++ b/www/index.html    2011-10-09 15:37:13.000000000 +0400
@@ -1,5 +1,8 @@
 <html>
-<head><title>${fname}</title></head>
+<head>
+<title>${fname}</title>
+<meta http-equiv="Content-type" content="text/html; charset=utf-8"/>
+</head>
 <body>
 Device name: ${fname}<br>
 UUID: ${uuid}<br>

http://rghost.ru/24834211