ffmpeg を使用してビデオからフレームを抽出する方法

ffmpeg を使用してビデオからフレームを抽出する方法

ビデオを抽出したいのですが35このビデオの - 番目のフレームです。

できればpng画像にしたいです。

このような質問はたくさんあることは承知していますが、フレーム番号を使用した解決策を見つけることができませんでした。

答え1

使用selectフィルター:

ffmpeg -i <input> -vf "select=eq(n\,34)" -vframes 1 out.png

カウントは 0 から始まるので、35 番目 = n 値は 34 になります。

答え2

2つの簡単な方法:

使用FFmpeg実行可能ファイルにシークオプションを付けて実行します。最初に時間に変換する必要があります。たとえば、フレーム150が必要でビデオが29.97 FPSの場合、コマンドは になりますffmpeg -ss 00:00:05.01 -i myvideo.avi -frames:v 1 myimage.jpg。これは少し不正確かもしれません。正確なフレームでシークするには、FFmpegライブラリを使用する必要があります。C++

もう一つの「ハック」な方法はVLCメディアプレーヤー. メニューの表示 ->高度なコントロールビデオを一時停止し、「フレーム単位」ボタンを 34 回クリックします。

関連情報