本日はFFMPEGを用いて、動画のビットレートを変更することで、動画のデータサイズを減らしてみましょう。
動画のデータサイズを変更する方法としては、動画の縦横のサイズやフレームレートを変更しない場合、
- 圧縮方式を変更する
- ビットレートを変更する
の2通りの方法がありますが、今回は後者のビットレートの変更により、データサイズを削減してみたいと思います。
FFMPEGの実行バイナリファイルの入手方法については、以下の記事をご参照ください。
ビットレート
ビットレートとはBit Per Secondの略で、bpsとも表記しますが1秒間のデータ量のことです。
動画のビットレートには映像ビットレートと音声ビットレートの2種類があり、映像ビットレートと音声ビットレートを合わせた値が動画ファイルの総ビットレートとなりますが、一般に映像のデータ量が大きいので、データサイズの面で支配的なのは映像ビットレートです。
各圧縮方式では、一般に「映像の綺麗さ」と「データサイズをどこまで小さくできるか」がトレードオフの関係にあり、これを決めるのがビットレートです。
すなわちビットレートが高ければ、綺麗なものの比較的データサイズが大きい動画となり、ビットレートが低ければ画質は低いものの比較的データサイズが小さい動画となります。
今回は、このビットレートを変更して、動画のデータサイズをコントロールしてみましょう。
FFMPEGで動画のビットレートを変更する
ここから本題ですが、FFMPEGで動画のビットレートを変更してみたいと思います。
手順1:現在の動画のビットレートを確認する
一番簡単な方法としては以下のコマンドで確認ができます。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
ffmpeg -i input.mp4

上の例ではビットレートが「12581 kb/s」であることがわかります。kはキロを表し、1000倍を示すので1秒あたり12581×1000ビットということになります。
手順2:動画のビットレートを変更する
では、動画のビットレートを変更してみましょう。
手順1で、現在の動画のビットレートが「12581 kb/s」であることがわかりましたので、これより小さい値を指定するとデータサイズが小さくなります。
「-vb 所望のビットレート」を指定することで、所望のビットレートの動画を出力することができます。
今回は5パターンのビットレートの動画を出力して比較してみます。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
ffmpeg -i ./input.mp4 -vb 10000k output_10000k.mp4
ffmpeg -i ./input.mp4 -vb 5000k output_5000k.mp4
ffmpeg -i ./input.mp4 -vb 3000k output_3000k.mp4
ffmpeg -i ./input.mp4 -vb 1000k output_1000k.mp4
ffmpeg -i ./input.mp4 -vb 100k output_100k.mp4
上記で出力した結果、以下のデータサイズとなりました。
- オリジナル動画:14000kb
- 変換動画(ビットレート:10000kb/s):9886kb
- 変換動画(ビットレート:5000kb/s):4739kb
- 変換動画(ビットレート:3000kb/s):2744kb
- 変換動画(ビットレート:1000kb/s):868kb
- 変換動画(ビットレート:100kb/s):92kb
正常にデータサイズを削減できていそうなことがわかります。
ただ、あまりにビットレートが小さすぎると、画質が非常に悪くなります。今回のケースでは最低1000kb/sくらいは必要で、ただこの場合はかなり画質が悪くなります。
どの程度のビットレートを指定すればよいかというのは入力動画の解像度やフレームレートにもよりますし、動画の中で動きが多いか否かという動画の特徴にも左右されるので一概には言えないので、何パターンか出力して確認してみるのが良さそうです。
まとめ
今回はFFMPEGを用いてビットレートを変更する方法について学びました。
パソコンのストレージの節約などの観点で、動画を圧縮したい場合などがあれば試してみてください。