動画の処理・変換に便利なFFmpegを使ってみた(Macで)

posts_photo

FFmpeg
今回は動画や音声の変換に便利なFFmpegを使ってみました。
コマンドラインから扱うので普段コード書かない人にはとっつきづらいですが、映像データからコマ画像を簡単に書き出せたりといろいろ便利です。
今のところ開発も頻繁なフリーソフトウェアなので今後の改良も楽しみです。

FFmpegをインストール

ターミナルを起動してhomebrewでインストールします。
英語ですがこちらの公式ドキュメントの「ffmpeg through Homebrew」に書いてあるように、コマンドを打っていけばインストール出来ると思います。
wiki:CompilationGuide/MacOSX

ただ、自分がやったときはなぜか上手くいかなくていろいろ悩んだ結果FFmpegでなくhomebrewの方を再インストールしたらようやく上手くいきました。

brew install ffmpeg

無事インストールが出来たら、バージョンチェックをして問題なくインストール出来てるか確認しとくと安心です。

ffmpeg -version

さっそくFFmpegを使ってみる

一番シンプルな使い道は動画の変換でしょうか?
movからmp4に変換するときのコマンドは下記になります。
「-i 入力動画のパス 出力動画のパス」といった具合です。

ffmpeg -i test.mov out.mp4

変換形式は細かく指定できます。使える形式やオプションはかなり多いので、必要なものを都度ググって使うのがいいと思います。
ただ動画の変換速度ではメディアエンコーダーとかとそんなに変わらない印象です。

さて、ほかには指定した範囲の切り取りなんかも出来ます。
例えば10秒から20秒間分の映像を別に書き出すとか。PremiereとかAEとか動画編集ソフトあれば普通に出来ますが、切り取りだけだったらコマンドの方が早いかもしれないですね。
「-ss 切り出し開始秒数 -i 入力動画 -t 切り取り秒数 出力動画」

ffmpeg -ss 10 -i test.mp4 -t 20 out.mp4

あとは動画をタイル状にしたスプライトシートっぽいものを書き出すのにも便利だと思います。
「-i 入力動画 画質指定 値 ビデオ加工開始 1つのコマサイズ,数フレームごとに出力,タイル数 音声なし 出力ファイル」

ffmpeg -i test.mp4 -qscale:v 4 -vf scale=320:240,framestep=10,tile=10x10 -an tile.jpg

動画からgifアニメも作れます。

ffmpeg -i test.mp4 -y out.gif

他にも映像にフィルタをかけたりテキストを入れたりと、出来ることは沢山あるFFmpeg。今後も開発が進みそうな気がするので、覚えておくと便利な気がします。

まあ個人的には動画編集ソフトでも出来ることが多いので、タイル出力やgifが必要なときに使うかなぁと思います。


Linuxコマンドライン入門 1日目 (ネット時代の、これから始めるプログラミング(NextPublishing)) Kindle版
-Amazonでみる