5

ffmpeg を使用してビデオ UDP ストリームを 10mn チャンクで記録する方法を探しています。現在、以下を使用して 10mn のビデオを取得しています (h264 トランスコーディングを使用)。

"ffmpeg -i udp://239.0.77.15:5000 -map 0:0 -map 0:1 -s 640x360 -vcodec libx264 -g 100 -vb 500000 -r 25 -strict 実験的 -vf yadif -acodec aac -ab 96000 -ac 2 -t 600 -y /media/test.m4 "

私の問題は、コマンド ライン ffmpeg を使用すると、毎回 2 秒のビデオが失われる udp ストリームと再同期するのに時間がかかることです。正常ですか?

コマンドラインでそれを行う方法があるかどうか、または ffmpeg API を使用しようとする必要があるかどうか、考えはありますか?

前もって感謝します

4

2 に答える 2

12

わかりました。

最近、ffmpeg にセグメンターが追加されました。構文は次のとおりです。

-f segment: セグメンターを使用するように ffmpeg に指示します

-segment_time: 秒単位のチャンク サイズ

%03d (000,001,002,003...) のような自動インクリメント ファイル名を使用できます。

これは、UDP MPEGTS ストリームを H264+AAC にトランスコードし、ファイル チャンクに保存するための行です (60 秒):

ffmpeg -i udp://239.0.77.15:5000 -map 0:0 -map 0:1 -s 640x360 -vcodec libx264 -g 60 -vb 500000 -strict 実験的 -vf yadif -acodec aac -ab 96000 -ac 2 - y -f セグメント -segment_time 60 "xxx-%03d.ts"

于 2012-05-23T10:26:54.180 に答える