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

2007年10月19日金曜日

FFMpegで連続画像から動画を作成する

オープンソースソフト FFMpegを使って複数の画像から動画を作成する方法を説明します。

スライドショーなどを作成することが可能です。
ただMS-DOSを使いますので多少難しいです。
他には、テキスト動画で連番画像から動画を作成するの方法などがあります。

注意事項ですが、画像のサイズはすべておなじで、またファイル名は1から始まる規則的な数字連番でないといけません。
(image0001.jpgや001.pngなど)


Avi動画にする
ffmpeg -i "c:\tmp\image%05d.jpg" -vcodec mjpeg -sameq out.avi
というコマンドを実行します。

最初の-i "c:\tmp\image%05d.jpg"では入力画像ファイルを指定しています。
ここで重要なのが%05という部分です。これは5桁で数字は調整されているという意味です。
(image00001.jpgやimage00100.jpg)

そして次の-vcodec mjpegですがこれは、Motion JPEGという映像コーデックを使うという意味です。素材がJPEG画像の場合、mjpegを使うと変換速度が速くなります。
そして次の-sameq は素材と同じ画質という意味です。
そして最後のout.aviが保存先となります。

またこの設定ですと、動画のサイズは画像と同じで、フレームレートは25fpsになります。

サイズを変更する
サイズを指定するためのオプション(-s)を追加します。
ffmpeg -i "c:\tmp\image%05d.jpg" -vcodec mjpeg -sameq -s 640x480 out.avi
-s 640x480を出力先の前に追加することで、動画の画面サイズを640x480に変更できます。

フレームレート(fps)を変更する
フレームレート25はスライドショーとしては早すぎるので、1秒に1枚表示するようにするには、フレームレートを1にするように指定します。
ffmpeg -r 1 -i "c:\tmp\image%05d.jpg" -vcodec mjpeg -sameq out.avi
これは-r 1というオプションを入力の前に追加します。このオプションは1秒間に何枚画像を表示するかです。4秒に表示したい場合は、-r 0.25とします。

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)を指定すると、さらに少ない数だけ作成します。

2007年10月9日火曜日

PSP画面ズームで最高画質の動画を作る

世の中には、私みたいに、PSPへTV比率(4:3)の動画を再生時には、ズームでしか見ない人がいると思います。
そういう人の場合最初からズーム時のサイズで動画を作った方が高画質です。
ここではオープンソースソフト FFMpegで作成する方法を説明します。


ちなみに、akJ Betasの
ドロップFFMpeg を使うと簡単な操作でできます。

ffmpegを使った経験がなければ、難しいのですが
Googleで検索すれば、だんだんわかってきます。

通常の変換との違いは、動画の上下の不必要の部分を切抜きするだけです。

ただし、動画のサイズによって切抜きする量が異なります。
動画的に画面サイズは16で割れる数値が好ましいので中途半端な値になります。


ニコニコ動画でよく使われる画面サイズ512x384の動画の場合は、PSP画面サイズ(16:9)にするには、まずは512x288に切り抜く必要があります。
これは上下48づつ切り抜きますので
-croptop 48 -cropbottom 48 を-s の前に追加します。

元の動画がAvi動画でよくある画面サイズ640x480の場合は、PSP画面サイズ(16:9)にするには640x360に切り抜く必要があります。
これは上下60づつ切り抜きますので
-croptop 60 -cropbottom 60 を-s の前に追加します。

元の動画がYoutubeでよくある画面サイズ320x240の場合は、PSP画面サイズ(16:9)にするには320x180に切り抜く必要があります。
これは上下30づつ切り抜きますので
-croptop 30 -cropbottom 30 を-s の前に追加します。


ニコニコ動画の場合はコマンドはこうなります。
ffmpeg.exe -y -i "C:\smile.flv" -f psp -flags +bitexact -b 768k -ar 48000 -vcodec h264 -acodec aac -level 21 -r 29.97 -bufsize 224k -ac 2 -coder 1 -ab 128k -maxrate 768k -croptop 48 -cropbottom 48 -s 480x270 "C:\smile.mp4"

意外とこれだけでも結構いい画質になります。

質問 掲示板