LINUX.ORG.RU
ФорумAdmin

VLC Streamig

 , ,


1

4

Как ретранслировать http в udp unicast?

Пробую через ffmpeg:

ffmpeg.exe -re -i http://10.0.10.179:8089/ -vcodec copy -acodec copy -f mpegts "udp://127.0.0.1:1234?pkt_size=1316"
И все гладко работает, ничего не рассыпается, но решение не подходит так как если прервать поток, то софт который принимает поток по UDP без перезагрузки уже ничего не будет показывать а при недоступности http источника ffmpeg падает и не может не прерывать поток.

В vlc есть ключ --sout-keep который при недоступности http источника просто гонит пустой поток, а когда источник становится доступен, то все возобновляется. Но вся проблема в том что vlc бьет поток, картинка рассыпается, заикается и стример сыпет в консоль packet has been sent too late. Строка запуска vlc:

vlc -v -I dummy --color --http-reconnect --repeat  http://10.0.10.179:8089/ --sout "#standard{access=udp,mux=ts,dst=127.0.0.1:1234}" --sout-keep

Куда копать? Ломаю голову уже неделю

то софт который принимает поток по UDP без перезагрузки уже ничего не будет показывать

Это не так. Продвинутое приложение для воспроизведения IPTV over MPEGTS/UDP синхронизируется. Интересно, как будет играть ffplay, если его натравить на такой вывод. Я думаю, оно потащит нормально. Да, картинка замрёт, но когда источник вернётся, всё снова заиграет. Если не заиграет, копаться нужно в приложении-приёмнике. Он должен синхронизироваться с получаемым потоком - проверять содержимое PAT, PMT и т. д.

«Гнать пустой поток» необязательно. Система имеет все условия для того, чтобы пережить временное полное физическое отключение от источника медиапотока.

Krieger_Od ★★
()
Ответ на: комментарий от Krieger_Od

на уровне проца должно всё это пропускаться

Вы, видимо про какую-то экзотную конфигу речь ведёте? Ну, тогда поотключайте «TV» set-ы. Они, знаете ли с постройки не «color», уж точно потоки тащат. Настройте (установите ddclient). Если и это не хелпнет, то установите ,но, уже платную DemoRecorder.

anonymous
()
Ответ на: комментарий от Krieger_Od

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

Строка запуска vlc для меня была бы идеальна, если бы видео не квадратило и не заикалось периодически.

FFmpeg стимит нормально, видео идеально, но не подходит к сожалению и иногда вылетает.

Может vlc как то можно заставить выводить поток так как выводит ffmpeg?

Madnezz
() автор топика
Ответ на: комментарий от Madnezz

FFmpeg ... иногда вылетает.

Небось старьё запускаете.

А вообще, в такой печальной ситуации с жёстко заданным проигрывателем - вам нужно серверное (прокси-)приложение с переключением на fallback-канал (с «пустотой», как вы хотите) при обнаружении временного отсутствия основного сигнала. Я такие приложения писал.

Krieger_Od ★★
()
Ответ на: комментарий от Krieger_Od

Вот лог ffmpeg

frame=68310 fps= 25 q=-1.0 size=  539589kB time=00:45:32.36 bitrate=1617.8kbits/s    
frame=68322 fps= 25 q=-1.0 size=  539711kB time=00:45:32.89 bitrate=1617.8kbits/s    
frame=68335 fps= 25 q=-1.0 size=  539794kB time=00:45:33.38 bitrate=1617.8kbits/s    
frame=68347 fps= 25 q=-1.0 size=  539882kB time=00:45:33.88 bitrate=1617.7kbits/s    
frame=68360 fps= 25 q=-1.0 size=  539979kB time=00:45:34.40 bitrate=1617.7kbits/s    
frame=68373 fps= 25 q=-1.0 size=  540106kB time=00:45:34.90 bitrate=1617.8kbits/s    
frame=68386 fps= 25 q=-1.0 size=  540200kB time=00:45:35.40 bitrate=1617.8kbits/s    
No more output streams to write to, finishing.
frame=68388 fps= 25 q=-1.0 Lsize=  540216kB time=00:45:35.53 bitrate=1617.8kbits/s    
video:450390kB audio:42726kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 9.551326%
Input file #0 (http://10.0.10.179:8089/):
  Input stream #0:0 (video): 68388 packets read (461199698 bytes); 
  Input stream #0:1 (audio): 104679 packets read (43751549 bytes); 
  Total: 173067 packets (504951247 bytes) demuxed
Output file #0 (udp://127.0.0.1:1234?pkt_size=1316):
  Output stream #0:0 (video): 68388 packets muxed (461199698 bytes); 
  Output stream #0:1 (audio): 104679 packets muxed (43751549 bytes); 
  Total: 173067 packets (504951247 bytes) muxed
0 frames successfully decoded, 0 decoding errors
[AVIOContext @ 0000000004d10e40] Statistics: 0 seeks, 458566 writeouts
[AVIOContext @ 0000000004702be0] Statistics: 507994189 bytes read, 0 seeks

И причем падает рандомно, может через пару секунд упасть, а может и часами работать.

Небось старьё запускаете.

Последний с офф сайта, мб дело в том что он под винду?

Я такие приложения писал.

Подкинуть сможете для теста? Или это коммерческое приложение?

Madnezz
() автор топика
Ответ на: комментарий от Madnezz

Вот лог ffmpeg
И причем падает рандомно

Лог неполон и ни о чём мне не говорит.

Последний с офф сайта, мб дело в том что он под винду?

Нет, вряд ли дело в этом.

Подкинуть сможете для теста? Или это коммерческое приложение?

Нет. Да.

Krieger_Od ★★
()

ffmpeg падает и не может не прерывать поток

Попробуй использовать возможности ffserver, вместо ffmpeg. Там больше возможностей для конфигурирования видеопотока, возможно найдешь решение своей задачи. Удачи!

yar1k
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.