
xupnpd - eXtensible UPnP agent
-
- Сообщения: 286
- Зарегистрирован: 28 окт 2015, 04:43
-
- Сообщения: 1
- Зарегистрирован: 21 май 2018, 10:04
Всем привет! Вот такой вопрос. Плейлист от ЭдемТВ на тел.Филиппс 2012г.4000серии с помощью xupnpd, hls plugin играет первый chunk и перескакивает на другой канал(причем хотя бы начало показывать когда прописал в плейлисте dlna_extras=none). На компе vlc все нормально. HLS plugin отключаю в плейлисте, включаю hlspxd, тогда тв не видит файла, vls норм. Роутер Кинетик Ультра черный. Какие нюансы могут быть?
-
- Сообщения: 12
- Зарегистрирован: 03 июл 2018, 13:46
maza11 писал(а):Источник цитаты
друзья, прошу помочь
ест mrfvthf 960P
выдающая поток
rtsp://192.168.0.45:554/user=admin_pass ... eal_stream
надо через DLNA запустить это на телек, какой плагин нужен и как это сделать
Запоздало, конечно, но поделюсь своим решением. Мало ли кто нагуглит и будет хелп.
Конечно, лучше всего было бы, если бы сам телик понимал rtsp. xupnpd ему просто передает
ссыль, режим проксирования отключен. Телик сам идет и забирает поток rtsp.
Чуть более худшим решением было бы,если бы xupnpd умел проксировать через себя rtsp, преобразовывая его в http.
Пока это в состоянии TODO в исходниках.
На моем samsung E серии 2012 года не работает не то что rtsp, но даже не сработала
передача ссылки на http без проксирования. Телик попросту туда не пошел (проверено в tcpdump),
показывая ошибку.
Реально работает только режим proxy в xupnpd на источник http.
Значит необходимо завернуть rtsp в http, дальше все просто. Сама камера это опять же не умеет.
Но я нашел довольно простой выход.
1.Устанавливаем ffmpeg
2.Поднимаем любой http сервер с поддержкой cgi. Я выбрал lighttpd. Важно настроить его так, чтобы ответ от cgi не кэшировался полностью сервером, а выплевывался по мере поступления. Иначе он будет глотать в себя безконечный стрим.
Добавляем в /etc/lighttpd/lighttpd.conf
Код: Выделить всё
server.modules += ( "mod_cgi" )
server.document-root = "/home/www"
server.stream-response-body = 2
server.port = 81
$HTTP["url"] =~ "^/cgi-bin/" {
cgi.assign = ( "" => "" )
}
mkdir -p /home/www/cgi-bin
Перезапускаем lighttpd, чтобы конфиг схватился
3.Кладем в /home/www/cgi-bin/cam.ts
Код: Выделить всё
#!/bin/sh echo Content-Type: video/mp4
echo Connection: close
echo
exec ffmpeg -probesize 32 -i "rtsp://cam-hall.lan/user=cam&password=&channel=1&stream=0" -codec copy -f mpegts pipe:1
chmod +x /home/www/cgi-bin/cam.ts
4.Пробуем проиграть контент через vlc
vlc http://host:81/cgi-bin/cam.ts
должно играться
5.Подсовываем xupnpd в плейлист ссылку на http://host:81/cgi-bin/cam.ts
Последний раз редактировалось bolvan 04 июл 2018, 13:13, всего редактировалось 2 раза.
-
- Сообщения: 286
- Зарегистрирован: 28 окт 2015, 04:43
ContentDirectory мне не удалось "сломать", возможно у E-к есть некие особенности работы с протоколом о которых я не в курсе, а вот через SetAVTransport ссылки на мою E-ку 2012-го вполне спускаются. По крайней мере спускаются udp и http стримы на видео с резолвингом и аудио-стримы без резолвинга (т.е. ip-адреса) и думаю вполне должны спускаться rtsp и rtp стримы т.к спускаемый параметр протокола в protocolinfo в доках значится как "rtsp-rtp-udp".На моем samsung E серии 2012 года не работает не то что rtsp, но даже не сработала
передача ссылки на http без проксирования. Телик попросту туда не пошел (проверено в tcpdump),
показывая ошибку.
Как по мне, но ffmpeg на роутере - не самая лучшая идея, имхо. Слишком он прожорливый до cpu :/1.Устанавливаем ffmpeg
p.s. Если будут ещё какие наработки по upnp или удастся заставить тв ходить напрямую по ссылкам без прокси через xupnpd - пишите.
Keenetic Omni II [v2.13.C.0.0-1]; Zyxel Keenetic [V1.00(BFW.4.4)D0]
-
- Сообщения: 12
- Зарегистрирован: 03 июл 2018, 13:46
ZigZag писал(а):Источник цитаты Как по мне, но ffmpeg на роутере - не самая лучшая идея, имхо. Слишком он прожорливый до cpu :/
Задача ffmpeg лишь преобразование протокола rtsp в mpegts => stdout, задача http сервера преобразование stdout => http
Там нигде нет перекодирования.
У меня роутер сделан на базе industrial PC celeron J1900 с 4 eth портами. Ffmpeg кушает около 1% одного ядра на камере 720p
-
- Сообщения: 12
- Зарегистрирован: 03 июл 2018, 13:46
ZigZag писал(а):Источник цитаты через SetAVTransport ссылки на мою E-ку 2012-го вполне спускаются
Скрипты Lua для xupnpd сделаны под ContentDirectory. Придется переписывать.
Или уже есть готовое ?
-
- Сообщения: 286
- Зарегистрирован: 28 окт 2015, 04:43
Речь была про бытовой роутер средней руки. Такой, который есть у большинства юзеров.bolvan писал(а): У меня роутер сделан на базе industrial PC celeron J1900 с 4 eth портами. Ffmpeg кушает около 1% одного ядра на камере 720p
Нет. Готового нет. Ручная отправка ссылок на ТВ. Хотя мне ваша идея нравится но с lua у меня очень туго, можно сказать почти никак.bolvan писал(а):Скрипты Lua для xupnpd сделаны под ContentDirectory. Придется переписывать.
Или уже есть готовое ?
Keenetic Omni II [v2.13.C.0.0-1]; Zyxel Keenetic [V1.00(BFW.4.4)D0]
-
- Сообщения: 12
- Зарегистрирован: 03 июл 2018, 13:46
ZigZag писал(а):Речь была про бытовой роутер средней руки. Такой, который есть у большинства юзеров.bolvan писал(а): У меня роутер сделан на базе industrial PC celeron J1900 с 4 eth портами. Ffmpeg кушает около 1% одного ядра на камере 720p
netgear wndr 3800. Mips 600 Mhz 128 mb ram
cpu 5%, mem 5 Mb
еще ~2% сожрет lighttpd
на таком ящике 10-15 потоков можно гонять одновременно
update. ffmpeg в начале пытается декодировать стрим, видимо чтобы понять его характеристики
На netgear это выливается в ~10-20 секунд начального протормаживания на 100% cpu.
потом он переходит на copy , и usage падает до указанных значений
Последний раз редактировалось bolvan 04 июл 2018, 11:18, всего редактировалось 1 раз.
-
- Сообщения: 12
- Зарегистрирован: 03 июл 2018, 13:46
update2.
время начального торможения всегда разное. от долей секунды до 20 сек
потому что он видимо в цикле крутит попытку раскодировать какой-то кусок, и периодически обламывается
из-за нехватки cpu
может помочь снижение битрейта на камере.
но в целом да, это проблема. к сожалению, как отказаться от автоопределения
параметров стрима и задать их вручную я не нашел способов
время начального торможения всегда разное. от долей секунды до 20 сек
потому что он видимо в цикле крутит попытку раскодировать какой-то кусок, и периодически обламывается
из-за нехватки cpu
Код: Выделить всё
[rtsp @ 0x77b45900] max delay reached. need to consume packet
[rtsp @ 0x77b45900] RTP: missed 36 packets
[h264 @ 0x77e27890] error while decoding MB 18 14, bytestream -9
может помочь снижение битрейта на камере.
но в целом да, это проблема. к сожалению, как отказаться от автоопределения
параметров стрима и задать их вручную я не нашел способов
-
- Сообщения: 286
- Зарегистрирован: 28 окт 2015, 04:43
И снова вы приводите в пример "мажорное" железо. Понизьте планку вдвое-втрое и попробуйте там завести ffmpeg даже без транскода.netgear wndr 3800. Mips 600 Mhz 128 mb ram
cpu 5%, mem 5 Mb
еще ~2% сожрет lighttpd
на таком ящике 10-15 потоков можно гонять одновременно
Keenetic Omni II [v2.13.C.0.0-1]; Zyxel Keenetic [V1.00(BFW.4.4)D0]
Вернуться в «Entware/Qnapware/Optware/Zyxware - обсуждаем репозитории пакетов»
Кто сейчас на конференции
Всего 4 посетителя :: 0 зарегистрированных, 0 скрытых и 4 гостя (основано на активности пользователей за последние 5 минут)
Больше всего посетителей (162) здесь было 16 ноя 2019, 18:33
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 4 гостя