動画の圧縮(FFmpegのセットアップとエンコード手順)

この記事では、ffmpegのダウンロード、設置方法と、ffmpegを使った動画エンコードコマンド例を紹介しています。

eラーニング教材の動画は適切に圧縮すべき

eラーニング教材として、動画教材を使う場合、適切な画質に落としておくとサーバのストレージを節約できます。弊社のlearningBOXの場合、画面サイズ640*360、秒間30フレームに再エンコードした上で動画を配信しています(2017年11月27日時点での仕様)。そのため、これ以上の品質の動画をアップロードしてもストレージを余分に消費するだけで画質面のメリットはありません。

撮影データはかなり重い

その一方で、2017年現在、スマートフォンや、デジタルビデオカメラ、デジタルカメラなどで動画を撮影する場合は、ハイビジョンやフルハイビジョン、4kなどの画質を選択することが一般的です。これらの高画質の映像をそのままアップロードしてしまうと、ストレージを必要以上に消費してしまいますし、1本あたりの時間も短く制限されてしまいます。

FFmpegを使って効率的にエンコード

動画の圧縮はFFmpegが便利です。オープンソースのソフトウェアでWindowsやMac、Linuxなど様々な環境で動作します。Windowsの一般的なソフトウェアと違いGUIは使えませんが、コマンドを使うことで最適な画質に変換できます。

FFmpegをダウンロード

FFmpegは以下のURLでダウンロードできます。

ダウンロードURL: http://ffmpeg.zeranoe.com/builds/

セットアップ(Window10の場合)

FFmpegをダウンロードすると、ZIP形式で保存されます。このZIPファイルを開くと、bin, doc, presetsなどのフォルダが表示されますので、binフォルダを開いて下さい。binフォルダの中のffmpeg.exeがエンコードソフトなので、このファイルを”実行パスの通っているフォルダ”に移動して下さい。Windows10で確認したところ、C:\Windowsにパスが通っていたので、私はこのディレクトリに移動しました。

ファイルを移動する際に、以下のようなダイアログがでますので、管理者権限をつかって移動させて下さい。管理者権限を使用できない場合は、ffmpeg.exeをDocumentディレクトリなどログインユーザのアクセス権限のあるところに配置してください。(実行パスの通っていないディレクトリに配置した場合は、コマンド実行時にffmepg.exeまでのパスを指定する必要があります)

セットアップできたか確認

コマンドラインを開きます。(Windows10では、画面左下の「ここに入力して検索」にcmdと入力すると起動できます)コマンドラインにてffmepgと入力しEnterキーを押して、以下のように表示されればOKです。

エンコードを実行

エンコード元ファイルがmovie.mp4の場合、以下のコマンドを実行するとエンコードが実行され、エンコードされたファイルがmovie.encoded.mp4という名前で出力されます。

ffmpeg -i movie.mp4 -vcodec libx264 -vf scale=640:360 -crf 26 -r 30 -y -ac 1 movie.encoded.mp4
動画サンプル

容量2.96MB 時間: 2分7秒 平均ビットレート 187kbps
動画ファイル:ダウンロード
実写と音声が含まれていないのでかなり低容量に圧縮されました。