FFMPEG:如何保持UDP流连接打开,即使源丢失一分钟

时间:2016-03-01 18:30:40

标签: ffmpeg udp video-streaming vlc dvb

我使用 ffmpeg HLS 解码 UDP 流(来自DVB信号的genrate),使用以下代码:

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

当我在VLC播放器中播放udp并输入流丢弃某些第二个VLC等待停止播放时以及当流再次开始播放时再次播放。

现在我想知道是否存在ffmpeg发现流停止并且不显示超时错误的方式...这意味着FFMPEG保持连接打开并且每次从源开始等待接收流。谢谢

1 个答案:

答案 0 :(得分:5)

对于UDP流,您可以设置超时,如:

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

对于RTP流,您可以设置超时,如:

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

对于RTSP流,您可以在SDP文件中指定超时