4

我使用ffmpeg使用以下代码将UDP流(从 DVB 信号生成)解码为HLS

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保持连接打开并等待每次从源开始时接收流。谢谢

4

1 回答 1

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 文件中指定超时

于 2016-03-02T09:19:00.243 回答