我使用 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保持连接打开并且每次从源开始等待接收流。谢谢
答案 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文件中指定超时