mieki256's diary



2009/01/22(木) [n年前の日記]

#2 [prog] FFmpegとMOV2AVIとMPlayerと

movの全フレームを連番画像(bmp or png)にしたい。昨日の実験では、RAD Video Tools を使って連番pngに出来たのだけど。RAD Video Tools はGUI操作なものだから、大量のmovデータに対して処理しようとすると面倒なことになる。できればコマンドラインから使えるツールが欲しい。ということでアレコレ検索。

FFmpegを試用。 :

FFmpegで、全フレームを連番画像として出力できることを知る。Windows版は、公式サイトではソースしか公開されていないらしいのだけど。 _お気に入りの動画を携帯で見よう というサイトさん(?)でバイナリにしてくれたものを置いているらしく、試用させてもらったり。

_ffmpegで動画から画像を切り出す - mitc - 日記_フリーランス アキのオープンソース活用術: FFMpegで動画を画像にする を参考に、
ffmpeg -i hoge.mov -f image2 -vcodec png hoge_%04d.png
で出力。

ところが。たしかに連番画像が得られたのだけど、画像を見たらブロックノイズだらけで、実に画質が汚い。RAD Video Tools で連番保存したものとは雲泥の差。

MOV2AVIを試用。 :

他にツールを探していたら、 _MOV2AVI なるツールと遭遇。 _コマンドラインオプションでヘルプを 出した際、コーデックの中に「bmp」があるらしい。すると、名前は MOV2AVI だけど、MOV2BMPの機能も持っている…?

導入して試用したところ、コーデックにbmpを選んでも、出力されるファイルは avi 1つのみ。連番画像で出力してくれるわけではないらしい。

試しに、
mov2avi hoge.mov -i
で、GUIの設定画面を出して、圧縮:なし、色深度:1670万色、サウンドなし、で出力。得られた avi を、FFmpeg で連番画像にしてみた。

これなら、RAD Video Tools が出力した画像とほぼ同じ画質。だが、一旦、数百MBのaviを中間ファイルとして作成するのが、ちょっとシンドイ感じはする。

MPlayerを試用。 :

オープンソース界隈では有名なプレイヤーソフト、MPlayer でも、オプションの渡し方次第で _連番画像が得られる らしい。試しに導入。

動かせるようにするまでが一苦労。どうやら、Windows環境の場合、環境変数 HOME を見て、それが定義されていれば、そのフォルダ中に設定フォルダや設定ファイルがあるものとして動作するらしい。自分の場合、HOME=C:\home\mieki256 で定義してあるので、C:\home\mieki256\mplayer\ というフォルダを作成、その中に設定ファイルをコピー・編集してやらないといけなかった。フォルダ名が、「.mplayer」じゃなくて、「mplayer」なのがポイント。UNIX文化圏では、設定フォルダや設定ファイルは、頭に「.」をつける流儀なのに、このアプリだけ流儀を無視してる。Windows用に移植する際に気を利かせたつもりなのかもしれないが、かえって余計なことをしてくれた感が。

mplayer -vo png:z=6 hoge.mov
で連番画像出力させてみたところ、どうも FFmpeg の出力と同じ画質の悪さのような。というか、動作中の、以下のメッセージを見る限り、
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
Selected video codec: [ffodivx] vfm: ffmpeg (FFmpeg MPEG-4)
デコーダ?は、FFmpeg のソレを使ってるようで。これじゃ導入した意味がない。

が。どうやら設定を指定できるらしいので、~/mplayer/config を弄って、 _MPlayer - VIDEO FILTERS を眺めながら多少弄ってみたり。
#vf=pp,eq
#vf=pp=hb/vb/lb
#vf=pp=hb/vb/dr/-al
#vf=pp=ac/dr,unsharp=l:0.25
#vf=pp=lb/hb/vb
#vf=eq,pp=lb/hb/vb
#vf=pp=md
#vf=pullup,pp=md
vf=pp=ac/dr
「#」がついてるあたりが試行錯誤の後。hb と vb は、縦横のデブロッキングをどうとかで。lb は、Linear blend deinterlacing、二重化してインターレース解除、だろうか。このあたりの指定を頑張ると、ブロックノイズが減ってくれたり、アニメ映像の輪郭線がぼけてくれたり、等の変化が。

おそらく FFmpeg でも同様に指定できる方法があるのではと想像するのだけど。少し探した程度では見つからず。

それにしても、FFmpeg、MPlayer で連番出力したものは、なんだか色が暗い。MOV2AVI で avi にしてから FFmpeg で連番保存すると色が暗くならないので、QuickTime 形式をデコード?してるところで、FFmpeg や MPlayer は何か違うことをしているのかもしれず。もしかすると、映像をRGB変換する際に、PC用として値を0〜255にしてしまっているのだろうか。判らんけど。

ココに至るまでに :

5〜6本ほど、フリーのソフトをインストール→連番画像で出力できないことが判る→アンインストール、を繰り返していたり。ちと疲れた。

以上です。

過去ログ表示

Prev - 2009/01 - Next
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project