ビデオファイル(mpegなど)を画像のコレクションに変換するにはどうすればよいですか?ビデオファイル(mpegなど)を画像のコレクションに変換するにはどうすればよいですか?
理想的な答えは、使用可能なライブラリを使用しているC++とJavaの両方をカバーします。また、いくつかの一般的なビデオ形式のビデオファイルから個々のフレームを手動で取り除く方法もあります。
ビデオファイル(mpegなど)を画像のコレクションに変換するにはどうすればよいですか?ビデオファイル(mpegなど)を画像のコレクションに変換するにはどうすればよいですか?
理想的な答えは、使用可能なライブラリを使用しているC++とJavaの両方をカバーします。また、いくつかの一般的なビデオ形式のビデオファイルから個々のフレームを手動で取り除く方法もあります。
あなたが別の出力形式を好む場合は、単に.png
を変更
ffmpeg -i "$input_file" -f image2 "outdir/%05d.png"
を使用し、可逆すべてのフレームを抽出するために、既定ではffmpeg
は拡張子からファイルの種類を推測します。
オプション-f image2
は、一連の画像に書き込むようにffmpeg
に指示します。 "outdir/%05d.png"
はファイル名パターンを与えます。この場合は "5-digit frame number.png
"です。
n秒フレームを抽出する場合は、"$input_file"
の後にオプション-r n
を追加します。 (私はNが浮動小数点ことができると思います。)あなたのビデオは、モーションJPEG(MJPEG)である場合には
、代わりに使用します。これは、ビデオストリームから直接フレームをアンパック
ffmpeg -i "$input_file" -vcodec copy -f image2 "outdir/%05d.jpg"
、それはより速く、明らかにより少ないディスクスペースを使用する。
詳細については、マニュアルページまたはthe documentation(image2
を検索)を参照してください。
これは良い答えです。 –
ffmpegと-vcodec png
を使用してこれを行うことができます。例えば、これは、5桁の数字とフレームにmy_video.aviを変換します:
のffmpeg -i my_video.avi -vcodec PNGフレーム%の05d.png
あなたはまた、所望の指定する必要がありますすることができますフレームレートと解像度。 ffmpeg -codecs
を実行すると、使用可能なすべての形式が表示されます。
ありがとう!私はそれがとても簡単だとうれしいです。 –
これを試したことがありますか? jpg、gif、bmpをサポートしていますか? –
私はそれを試しました。 'ffmpeg -codecs'を実行すると、サポートされているものを見ることができます。 Gifとbmpはそこにあるようです。 jpgについてはわからない –
ffmpegのlibavcodec
ライブラリの中におそらくapiexample.c
を使用すると、フレームバッファを使ってmpegストリームで簡単にエンコードする方法を確認できます。
また、Gstreamerを使用することもできます。このフレームワークは、ほんのちょっとしたフレームワークです。
Javaの場合、Java Media Frameworkを試してください。
Don Rebaの現在の回答は良いです。誰かがより完全なものを提供しない限り、私はそれを受け入れます。明らかに、詳細を見るためにffmpegのソースコードを見ることはできますが、参考になるのは原始ソースコードよりも読みやすいということです。また、Javaでこれを行うライブラリがありますか? –