2016-03-01 8 views
4

я декодировать UDP поток (который genrate от сигнала DVB) с помощью FFmpeg к ЗОЖ с этим кодом:FFMPEG: Как сохранить соединение поток UDP открыт даже источник капнуть минуту

ffmpeg -i udp://239.1.2.1:60001?fifo_size=50000000 -acodec copy -vcodec copy -hls_time 2 -hls_wrap 5 -f hls /var/www/html/ts/1.m3u8 

Когда-нибудь DVB падение сигнала для некоторых вторых или минуты, и что приводит к кодированию FFmpeg остановки и показать ошибки:

udp://239.1.2.1:60001: Connection timed out 

Когда я проигрываю udp в проигрывателе VLC и уменьшаю поток входного сигнала для некоторого второго воспроизведения ожидания ожидания VLC, и когда снова начнется воспроизведение потока.

Теперь я хочу знать, существует ли способ, которым ffmpeg либо обнаружил, что поток остановлен, и не отображает ошибку тайм-аута ... это означает, что FFMPEG поддерживает соединение открытым и ожидает получения потока каждый раз, начиная с источника. Благодаря

+0

добавить '-timeout ' before '-i' – Mulvya

+0

Знаете ли вы, что произошло для выходного потока до таймаут-времени? –

+2

Как использовать ffmpeg doc timeout для ввода RTSP, вы имеете в виду, что он также используется для UDP? https://ffmpeg.org/ffmpeg-protocols.html#rtsp –

ответ

4

Для UDP потоки можно установить тайм-аут, как:

ffmpeg -timeout 2000 -i udp://239.1.2.1:60001?fifo_size=50000000 

Для РТП пары вы можете установить тайм-аут, как:

ffmpeg -timeout 2000 -i rtp://192.168.0.12:1234 

Для RTSP потоков можно указать время ожидания в файле SDP

+0

fifo_size не нужно в RTP? –

+1

, если вам нужна буферизация, добавьте fifo_size еще нет. –