x264 vcodecでビデオのフレームレートをダウンサンプリングするときに、ffmpegが最初のフレームにキーフレームを挿入するように強制する方法


7

25fpsのmpeg4ビデオがあります。このビデオには、静的フレームが1つだけ含まれています。フレームレートを1fpsにダウンサンプリングし、ビデオをx246(mp4)に変換しようとしています。

次のffmpegコマンドを実行しました。

ffmpeg -i vid.avi -acodec aac -ar 32000 -ab 64k -ac 2 \
-vcodec libx264 -strict -2 -y -r 1 -force_key_frames 0 vid.mp4

FFmpegは、最初のキーフレームを挿入するまで、多くのフレームをドロップします。16秒または20秒後にのみ画像が表示されることがあります。

私はffmpegが最初からキーフレームを挿入しないことを収集します。

vid.aviの最初のフレームを取り、vid.mp4のキーフレームとして使用する方法を知っている人はいますか?


あなたはそれなしでそれを試しました-force_key_frames 0か?また、0を1に変更して、最初のフレームから開始することもできます-force_key_frames 1
Travis Crum

はい、-force_key_frames 0を使用せずに-force_key_frames 1を使用して試しましたが、それでも解決しませんでした。私はかなり立ち往生しています。
bodacydo

まさにこの方法が必要ですか?私は大まかな推測をして、次のことを仮定します。オーディオはビデオの焦点です。画像は大きな問題ではありません。Soooは動画からmp3を抽出できませんでした(もちろん品質は劣化しません)。次に、画像を取得します。必死になっている場合はスクリーンショットを取得し、抽出したmp3を使用してffmpegで新しい動画を作成し、 fpsは1に設定されていますか?
Travis Crum

1
robd

ここでの根本的な問題は別の問題だったと私はかなり確信しています。エンコーダは常にキーフレームで始まります。
Gyan

回答:


6

00:00:00.000タイムコードでキーフレームを強制するには、次のフラグを使用してみます。

-force_key_frames 00:00:00.000

これは正確に何をしますか?
Warrior Bob

元の要求で要求された00:00:00.000タイムコードにキーフレームを強制的に配置します。
Maxim

詳しく説明してください:これはx264だけに適用されますか、それともコーデックに適用されますか?時間とは何ですか-出力ファイルの時間?つまり、オーバーレイの場合、オーバーレイされたビデオの先頭にキーフレームを配置するにはどうすればよいですか?ありがとう
OndraŽižka19年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.