ffmpeg で -re と -ss を一緒に使用する

ffmpeg で -re と -ss を一緒に使用する

私は ffmpeg を使用して、ビデオ ファイルを RTMP サーバーにライブ ストリーミングしています。-reライブ ソースに適切なレートでビデオがストリーミングされるように、オプションを使用しています。時々、数分後にビデオをストリーミングしたいことがあります。ただし、-ss 00:03:00たとえば を追加すると、最初の数フレームはストリーミングされませんが、ffmpeg は-re高速でそれらを処理します。つまり、ストリームが表示されるまでに (この場合) 3 分待たなければならず、その時点で 3 分後にストリームが開始されます。

これは技術的には私が求めていたものですが、文脈上は役に立ちません。 の特定の時間に ffmpeg を開始するように指示し、 を使用するときに便利に動作するように直接そこに行く方法はありますか-re?

ffmpeg-user メーリング リストには、明らかな解決策がないまま、これを行う方法を知りたいという人の例が少なくとも 2 つあります。

答え1

入力ファイルの前に -ss 00:03:00 を指定してみてください。

スクリーンキャプチャ/ライブストリーミングではこれを試していませんが、標準の ffmpeg トランスコーディング構文ではこれが機能することがわかっています。

たとえば、次のコマンドはファイルを入力し、ファイル全体を h264 にトランスコードし、3 分目以降の出力のみを保存します。

ffmpeg -i [INPUT] -ss 00:03:00 -c:v h264 [output]

一方、次のコマンドは、3 分マークでファイルを入力し、その時点からトランスコードして、出力を保存します。出力ファイルは上記の出力と同一になるはずですが、最初の 3 分間はデコードされないため、処理時間は大幅に短くなります。

ffmpeg -ss 00:03:00 -i [INPUT] -c:v h264 [output]

繰り返しますが、ライブストリーミングでそれが機能するかどうかはわかりません。お役に立てば幸いです。

関連情報