ffmpegフォークで、動画から静止画を連続キャプチャ (Ubuntu 15.04)

ソルジャーレギオンのデザインが知りたくなったので、「ガメラ2 レギオン襲来」を静止画キャプチャして観察することにしました。
最初は、VLCのキャプチャ機能で、シーンを前後しつつ撮っていたのですが、フレームを指定して移動する機能がVLCに見つからず、映りの良い静止画を撮るのが難しかったため、ffmpegで一括取得した静止画から良さそうなフレームを抜き出すことにしました。
ソース動画はBD由来、ただし北米版です。
作業環境はUbuntu15.04。

キャプチャした静止画像
(『ガメラ2 レギオン襲来』(1996)より)


簡易まとめ:
・ffmpegフォークのavconvを使う
・'-ss'オプションを先にしても高速化は望めない?
・'-qscale'は必須
・'-qscale'は0でも1でも結果は同じ

avconvを使う

Ubuntuは15.04の時点で、ffmpegフォークでコマンド互換のavconvを採用しています。
手間をかけて外部からffmpegを持ってくるよりも、avconvを使うべきです。

静止画取得のオプション指定

今回のコマンドは以下のようにしました。
 avconv -ss 2250 -t 22 -qscale 1 -f image2 %06d.jpg -i

'-ss'は抜き出し開始位置を指定します。
『'-ss'オプションを'-i'より先に指定すると、開始位置から動画を読むので高速化する』というTIPSがあるとされていますが、今回作業した環境ではその効果が見られませんでした。
(オプション位置を逆にした版を試していないので、もしかしたら効果があったのかもしれませんが。効果がなくても目的は果たせるので確認していません。)

'-t' は抜き出し終点とされていますが、これは抜き出し開始時点からの相対的な経過秒です。
絶対時間ではありません。

'-qscale'は静止画のクオリティを指定するオプションです。指定しないと明らかに品質が落ちます。
指定値の最高レベル1を指定しておきます。今回の環境では、指定値は0でも1でも結果は同じでした。

'-r' はfps固定で動画を抜き出すオプションです。今回は、gif動画を作るわけではないので、固定フレーム24fpsにする必要はありません。よって'-r'オプションは不要です。


備考

・同一ディレクトリ内に多量の画像を置くと、nautilusファイルマネージャの反応が明らかに悪くなるので、一度に静止画キャプチャする時間は短いほうが良い。
・大量のBD(フルHDサイズ)静止画をUbuntuデフォルトの画像ビューアで閲覧するのは辛いので、別途ビューアを用意するべき。 参考:『Ubuntu14.04で使える画像ビューア一覧

・今回の動画(平成ガメラ)はBD由来といっても、BD登場前の作品であり、動画はリマスターか何かなので画質には限界がある。
・しかも北米版(G1/G2は同一ディスク内に収録)なので、日本語版よりたぶん少し画質が落ちている。
・後半のソルジャーレギオンの戦闘シーン、紫のフラッシュが炊かれる2~3フレームの箇所が顔アップなので観察しやすそう。
・やっぱり平成ガメラは良い。

なお、スクリーンショットに使った画像の一部は、
「『ガメラ2 レギオン襲来』(1996) 監督:金子修介」
より。

主な参考URL
基本オプション:
http://qiita.com/matoken/items/664e7a7e8f31e8a46a60
qscale:
https://trac.ffmpeg.org/wiki/Encode/MPEG-4
画像ビューア:
Ubuntu14.04で使える画像ビューア一覧 

このブログの人気の投稿

GIMP2.8でイラストにペン入れを行う

squid3プロキシサーバの設定(Ubuntu13.10)

Ubuntu13.04で使える動画編集ソフト一覧