Macで動画のビットレートを確認する3つの方法

はじめまして。
マウスよりもトラックボール、タッチパッドよりもトラックポイント派の廣田です。
M570はいいぞ。

さて、私も他のメンバーと同じくVideoSpaceの開発に携わっているのですが、動画を扱うサービスということもあって動画のコーデックやビットレートを確認することが多くあります。この記事では、QuickTime Player、VLC、ffmpegを使って動画の情報を調べる方法を紹介します。
なお、タイトルには「Macで」と入っていますが、VLCやffmpegは様々なOS向けに提供されているのでWindowsやLinuxでもほぼ同じ手順が使えると思います。

QuickTime Player

まずはmacOS標準で用意されているQuickTime Playerを使う方法です。LaunchpadからQuickTime Playerを起動し、「ファイル」→「ファイルを開く…」から目的の動画を開きます。

quicktime01

動画が表示されたら、「ウィンドウ」→「ムービーインスペクタを表示」をクリックします。

quicktime02

すると、新しいウィンドウが開き、動画のコーデック(H.264)や解像度(1920×1080)、ビットレート(17.52Mbps)が表示されます。

quicktime03

軽く情報を見たいという場合には、このムービーインスペクタを開けば十分だと思います。しかし、ここに表示されるビットレートは動画全体の平均値なので、可変ビットレート(VBR)でエンコードされていると瞬間的には表示されている値より高い(低い)ビットレートが使われていることがあります。
そのため、より細かい情報が見たいとき、「動きの激しいシーンでビットレートが跳ね上がるのを見てニヤニヤしたい、エンコーダーの気持ちになりたい」というときは次に紹介するVLCを使います。

VLC

VLCは、VideoLANによって開発されているオープンソースのメディアプレーヤーです。様々なコーデックを内蔵していて、大抵の動画を再生することができます。公式サイトで各OS向けのバイナリが公開されているので、ダウンロードしてインストールしておくと便利です。

VLCを使う場合も手順はほぼ同じです。
VLCを起動し、「ファイル」→「ファイルを開く…」から動画を開きます。

vlc01

動画が表示されたら、「ウィンドウ」→「メディア情報…」をクリックします。QuickTimeもVLCも「⌘I」がショートカットキーになっているので、「ビットレートが見たい時は⌘I」と覚えてしまってもいいかもしれません。

vlc02

VLCのメディア情報ウィンドウはQuickTime Playerのインスペクタよりも情報が多く、3枚のタブを切り替えて使うようになっています。(一般タブはファイル名などのメタデータなので省略します)
コーデックの詳細タブでは、コーデックや解像度に加えて出力色空間(YUV 4:2:0)を確認することができます。PCやスマートフォンで処理する動画はほとんどYUV 4:2:0ですが、動画まわりの処理がうまく動かないときは念のため確認すると良いと思います。

vlc03

統計タブでは、再生している動画のビットレートを確認することができます。動画を再生していると、入力ビットレートやストリームビットレートの数値がリアルタイムに変化します。静止画なので伝わりにくいですが、タイトルロゴなど動きのないシーンではビットレートが下がり、桜吹雪のような細かい動きの多いシーン(俗に言うエンコ殺し)では上がる様子を見ることができます。たのしい。
可変ビットレートで動画のエンコードを行う際に目標ビットレートと上限ビットレートを設定する場合があるので、大きく逸脱していないか確認する際に便利です。

vlc04

ffmpeg

さて、上記2つの方法はどちらもGUIのアプリケーションで、その度にポチポチとアイコンやメニューをクリックしなければなりません。はっきり言って面倒です。「ビットレートどれくらいかな?」と思った瞬間にキーボードから手を離したくないし、デスクトップに出しっぱなしのターミナルで済ませたい。そんなときはffmpegを使いましょう。

ffmpegはオープンソースのメディアエンコーダーで、様々な形式の動画や音声をエンコードすることができるソフトです。また、メディアのストリームを保持してコンテナだけ変更したり(中身はそのままで入れ物だけ変えるイメージです)、スクリーンショットの切り出しを行うこともできます。なにより、コマンドラインで使えるのでマルチメディア系の処理を自動化する際にとても便利です。
Macの場合は、公式のガイドに従ってHomebrewからインストールするのが手軽で良さそうです。

ffmpegでは、「-i」オプションで入力ファイルのみを指定し出力ファイルを指定しないことで動画情報の表示だけを行わせることができます。出力ファイルがない旨のエラー(At least one output file must be specified)が出ますが気にしない方向です。
「ffmpeg -i 動画ファイル名」を実行したときの出力例を以下に示します。

ffmpeg

白で囲った部分がファイル全体の情報、赤で囲った部分が動画、青で囲った部分が音声の情報です。
順番に見ていくと、

  • iPhone 5(iOS 7.0.2)で撮影
  • 動画はH.264(High Profile),YUV 4:2:0,1920×1080,17548kbps,24fps
  • 音声はAAC-LC 44.1kHz,モノラル,62kbps

ということがわかります。いわゆるiPhone撮って出しのファイルですね。これを見て、フルHDで17Mbpsの動画をそのまま配信するとサーバとクライアント双方の負荷が大きすぎるから解像度を下げよう、破綻しない程度にビットレートを下げよう、という議論を行うことができます。

おわりに

いかがでしたでしょうか。適当に撮って適当に見るのであればビットレートを気にすることはあまりないと思いますが、サービスとして動画を扱う場合にはリソースとのバランスを考えながらパラメータの調整を行う必要が出てきます。今回はそのための調査で使えるツールを紹介しました。

最後になりましたが、VideoSpaceではこのあたりの細かいことを気にせず気軽に撮ってアップロードすれば皆がちゃんと見られるようにサービスを作っています。ぜひ一度お試しいただければ幸いです。

SNSでもご購読できます。