無料なだけでなく、みんなが自由に使える オープンソースソフトを使い方の解説します。

2007年10月12日金曜日

FFMpegで動画を画像にする

オープンソースソフト FFMpegを使って動画を一コマごとの画像にする方法を説明します。

画像にすると印刷やホームページ用の1コマを見つけやすくもなります。

ただし、動画の再生時間にもよりますが、数ギガの容量が必要になることがあります。
また、この方法を使うには、MS-DOSの知識が必要です。
テキスト動画で動画をJPEG画像にするというやり方もあります。


JPEG画像にする
ffmpeg -i "c:\tmp\smile.flv" -f image2 -vcodec mjpeg "c:\tmp\image%05d.jpg"
というコマンドを実行します。

最初の-i "c:\tmp\smile.flv"では入力ファイルを指定しています。
-f image2 -vcodec mjpeg ではJPEG出力を指定しています。
最後の"c:\tmp\image%05d.jpg"で保存先を指定しています。
%05dは5桁の数字という意味です。

1秒あたり30コマの1分の動画ですと
c:\tmp\ というフォルダーに image00001.jpgからimage01800.jpg ができます。


JPEGの高画質画像にする
先ほどのJPEG画像にする方法に品質を決めるオプションを保存先の前に追加します。
ffmpeg -i "c:\tmp\smile.flv" -f image2 -vcodec mjpeg -qscale 1 -qmin 1 -qmax 1 "c:\tmp\image%05d.jpg"
これでだいたい品質90%ぐらいになると思います。(品質100%の方法は不明です)

PNG画像にする
PNGの場合は、出力形式をPNGと指定します。また保存先のファイル拡張子も.pngとします。
ffmpeg -i "c:\tmp\smile.flv" -f image2 -vcodec png "c:\tmp\image%05d.png"

PNGは画質は一番いいはずですが、若干変換に時間がかかります。また画像のファイルサイズはJPEGの高画質よりもさらに大きくなります。

コマ数を減らす
1秒あたり30コマの1分の動画で、1800枚も画像ができるのは多すぎると思ったら
別途1秒辺りに画像を何枚作成するか指定できます。
例えば1秒あたりに、1枚ですと 次のように指定します。
ffmpeg -i "c:\tmp\smile.flv" -f image2 -vcodec mjpeg -r 1 "c:\tmp\image%05d.jpg"
すると、60枚画像が作成されます。
少数点(0.1)を指定すると、さらに少ない数だけ作成します。

0 件のコメント:

質問 掲示板