オンラインの仕事も増えて、動画を作って触ることが増えました。
iMovieなどの動画編集ソフトで動画編集もするのですが、編集した動画をエクスポートすると基本的にファイル容量が増えてしまいます。(元々が200MB程度だった動画が1GB近くなったりしていた。)
動画を仕事相手に共有する際の制約などから動画のファイルサイズを小さくしたかったのですが、やり方が分からずとても苦労していました。
実際に編集ずみの動画を画面に流して画面収録で取り直したり。。。
そこで、ffmpegというツールを知り、コマンドで簡単に動画サイズを縮小できたので、自分用にMEMOしておきます。
具体的には、
元ファイル:200MB → 動画編集ずみ: 900MB → ffmpeg:200MB
くらいになったので、個人的には大満足の結果になりました。
インストール方法
macの場合は Homebrew を使って簡単にインストールできます。
brew install ffmpeg
WindowsやLinuxのパッケージもあり、ここからダウンロードできます。
Download FFmpeg
動画のサイズを減らす
動画には詳しくないのですが、CRFというエンコーダーの数値があり、それを指定して動画変換することで動画サイズを圧縮できました。
コマンドとしては以下のようにオプションを指定します。
ffmpeg -i input.mp4 -crf 18 output.mp4
圧縮方法によってCRFのデフォルト値は異なり、CRFの値は小さくなるほど品質が良く、大きくなるほど品質が悪くなっていきます。
こちらのサイトによればそれぞれの圧縮方法に対してのCRFデフォルト値は以下のようになっており、±6の変更によってファイルのサイズは半分もしくは2倍になるとのこと。
- x264 : 23
- x265 : 28
- 1080p HD video : 31
上記のコマンドとして記載している18は品質をかなり良いものにしているのですが、iMovieなどの動画編集ソフトで付けられた無駄なファイルサイズを削減することが目的であり、動画品質はなるべく落としたくなかったので全く問題ありませんでした。
動画変換後も私が感じ取れる品質の変化はありませんでした。
参考:
FFmpegで動画変換!各OSごとのインストール方法と使い方まとめ|新卒エンジニアの開発日記
CRF Guide (Constant Rate Factor in x264, x265 and libvpx)