本日はFFMPEGを用いて、動画のコーデックやビットレートを確認する方法について紹介します。
FFMPEGの実行バイナリファイルの入手方法については、以下の記事をご参照ください。また、今回の記事で使用する「ffprobe.exe」も以下の記事の方法で入手が可能です。
コーデックとは、データの圧縮と復元を行うハードウェアやソフトウェアを示すワードですが、厳密ではないかもしれませんが、ざっくり言うと「圧縮方式」のことです。
一般的に、無圧縮の動画というのは非常にデータサイズが大きく、例えばYoutubeで見る動画や、スマホで撮影した動画は、大半のケースで何らかの圧縮方式で動画が圧縮されています。
圧縮方式は日々進歩を続けており、近年広く使われているのは「H.264」という圧縮方式です。その後、2013年にはこの後継の「H.265」が、2020年にはさらに後継の「H.266/Versatile Video Coding」がMPEGという標準化グループで標準化されていますし、最近はGoogle等が積極的に普及を進めている「AV1」などの新たな圧縮方式もあります。
ポイントは、動画の圧縮方式というものはさまざまあり、例えばパソコンやスマホで動画を再生したときに、我々はその動画が何の方式かを意識してはいませんが、とにかく何らかの方式で圧縮されているということです。
新しい圧縮方式は、一般に高性能です。高性能とは、少ないデータサイズで、綺麗な動画を保存できるということです。
では、新しい圧縮方式を常に使えばいいか? というと、状況はそう簡単ではありません。圧縮された動画を視聴するためには、保存されている圧縮された動画を元に戻す「デコード」という処理が不可欠で、すなわちデコードの仕方を知らないと動画を見ることができません。
よって、最新過ぎる規格は、それをデコードするための環境がPCやスマホに用意されていないことが多く、その観点で少し古いのですが「H.264」や「H.265」あたりが現在広く使われています。
ビットレートとはBit Per Secondの略で、bpsとも表記しますが1秒間のデータ量のことです。
動画のビットレートには映像ビットレートと音声ビットレートの2種類があり、映像ビットレートと音声ビットレートを合わせた値が動画ファイルの総ビットレートとなりますが、一般に映像のデータ量が大きいので、データサイズの面で支配的なのは映像ビットレートです。
コーデックとビットレートは何が違うのでしょうか?
実は、圧縮方式が決定されても、それで一対一で最終的に圧縮されたデータサイズが決まるわけではありません。
例えば圧縮方式に「H.264」を選択した場合においても、データサイズが少なく画質が汚いH.264の動画も作れますし、データサイズが大きく画質が綺麗なH.264の動画も作れます。
この度合いを決めるのがビットレートです。
「圧縮方式(コーデック):H.264+ビットレート低め」で圧縮を施した場合、画質は汚いもののデータサイズが小さめなH.264動画になります。
コーデックの良し悪しとは、このデータサイズとビットレートのトレードオフ性に優れるものが良いコーデックとされます。
すなわち、ある一定の品質の動画を生成しようとしたときに、H.264だと20Mbps必要だが、H.265だと10Mbpsで済み、H.266だと5Mbpsで実現できるとすると、これはH.266が優れたコーデックと言えます(処理時間等の問題は度外視します)。
よって、コーデックとビットレートは全く別の指標です。まずはコーデックを選択し、その上で要求される品質を基にビットレートを決定して、動画を圧縮します。
ここから本題ですが、FFMPEGで入力動画のコーデックとビットレートを確認してみたいと思います。
エラーが出ますが、一番簡単な方法としては以下のコマンドで確認ができます。
「At least one output file must be specified」という、少なくとも1個は出力を指定するようにというエラーが出るので、想定された使い方ではありませんが、これでコーデックとビットレートを確認できます。
上記の例ではコーデックが「H.264」で、ビットレートが「12581 kb/s」であることがわかります。kはキロを表し、1000倍を示すので1秒あたり12581×1000ビットということになります。
FFPROBEは、ffmpeg で表示される以上のことを調べる際に使うもので、FFMPEGに同梱で実行バイナリファイルが提供されています。
FFPROBEを使って確認する場合は、以下のコマンドで確認ができます。
個人的には、FFMPEG.EXEは手元にあるけれども、FFPROBE.EXEはダウンロードしてこないといけない場合は、方法1を使う方が簡単だと思います。
FFMPEGを用いてコーデックとビットレートを確認する方法について紹介しました。
FFMPEGを用いて動画の圧縮等をしたい場合に、元のコーデックやビットレートがどれくらいなのかを知ることは非常に重要ですので、知りたい場合には紹介した方法で確認してみてください。
FFMPEGで実際にビットレートやコーデックを変更し、データサイズを減らす方法については以下の記事にまとめましたので、参考にしてみてください。