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 に答える