H.264エンコードでのビットレートの目安

スポンサーリンク

MPEG2-TSからH.264/MPEG-4 AVCにエンコードする際、ビットレートはどれくらいに設定すべきなのでしょうか。TMPGEnc Video Mastering Works 5では初期値が4,000kbpsになっていて、あまり品質がよくありません。

だとすると、どの程度のビットレートなら十分なのか。フレームサイズや映像のスピードにもよるので一概には言えないと思うのですが、何か目安になるようなものが欲しいところです。

そこでネットを調べてみたところ、エンコード品質をあらわすBPP(Bits Per Pixel)という指標を知りました。
【参考記事】RealNetworks FAQ: 最適なビデオ品質が得られるエンコーディング設定を選ぶ方法はありますか?

目標とするBPPを決めれば、ビットレートは次式から求まります。
ビットレート[kbps] = BPP × フレームレート[fps] × 幅 × 高さ ÷ 1000

bpp1

そこで上記サイトに書かれているBPPになるようなビットレートを計算して表にしました。
参考までに1時間の録画データをエンコードした場合のファイルサイズも載せています(音声ビットレート128kbps)。
ファイルサイズ[MB]=(映像ビットレート[kbps]+音声ビットレート[kbps])×再生時間[秒]÷8÷1024
[2017/7/17追記] kbpsのkは1024ではなく1000なので、正確には以下の式となります。下にあるファイルサイズの表も修正しました。
また、他の条件でも計算できるようExcelファイルを公開しました。ダウンロードはこちらから。
ファイルサイズ[MB]=(映像ビットレート[kbps]+音声ビットレート[kbps])×再生時間[秒]×1000÷8÷1024^2

まずは1440×1080、30fpsの場合です。

次に1920×1080、30fpsの場合です。

その他のフレームサイズも同様の計算で求めることができます。

品質とファイルサイズのバランスを考えると1440×1080なら8Mbps、1920×1080なら10Mbpsあたりのビットレートが無難でしょうか。VBRの最大ビットレートはこの2倍くらいにします。他ソフトでも規定値はこのくらいが多いようですし、ひとつの目安にはなりそうです。


コメント

  1. Ujiki.oO より:

    はじめまして、こんにちは。 Ujiki.oO と言います。
    YouTube の 4k動画を「どう扱うか?」で検索し、この貴ページに辿り着きました。
    情報に感謝します。
     1つ疑問があります。「ファイルサイズ[MB]」を求める計算式なのですが、単位としてMBになりますでしょうか? 弊愚ブログで計算する機能を付加しました時に、気付きました。 http://create2014.blog.so-net.ne.jp/MultiplatformMP4Player#BitsPerPixel
     後先になりますが、画像と計算式を利用させていただけないでしょうか? 宜しくお願い申し上げます。

    7ヶ国語プロフ: http://blog.fs4y.com

    • lizard.k より:

      Ujiki.oOさん、こんにちは。

      計算式について、ご指摘ありがとうございます。だいぶ前に書いた記事なので記憶が曖昧なのですが、÷8でなく×8ですかね(汗)
      ホームページも拝見しました。計算機能もあって便利ですね。引用元も書いていただいていますし、BPPの表や計算式をご利用頂くのは構いません。

      • Ujiki.oO より:

        lizard.k さん、おはようございます。ご承認についてご理解に感謝します。
        さて、計算式なのですが、当方のHPの「履歴」の最下段に、「Debug 201706270040」なるチェックボックスを追加しました。 チェックすると、 lizard.k さんのオリジナル計算式が働きます。 わたしは単純に「尚も 1024で割る」にしました。 わたしの手元に YouTube 4k と称す動画を4k専用ダウンローダー「4K Video Downloader」で入手した動画ファイルがあります。 Freemake Video Convertor に表示されるパラメーターは「映像ビットレート[kbps] : 3953 」、「音声ビットレート[kbps] : 125 」、「再生時間(秒) : 4分 」、「ファイル容量: 116 MB (122,626,647 バイト) 」です。 計算式に与えますと、解は 115815 となりました。 どこかに例えば Freemake Video Convertor にミスがあるのかも知れません。 わたし自身にミスがあるかも知れません。 「??」です。(微笑)

        • lizard.k より:

          Ujiki.oOさん、コメントありがとうございます。

          当方の計算式に当てはめても(÷8で合ってましたね ^^;) (3953+125)×240÷8÷1024=119(MB) となると思うのですが。。。
          ただし、kbpsのkは1024ではなく1000のことなので、正しくは 1000倍して1024で割る必要があるから (3953+125)×240×1000÷8÷1024^2=116(MB) なのでしょうね。
          後日、表も含めて修正しておきます。ご指摘ありがとうございました。

          • Ujiki.oO より:

            lizard.k さん、ご丁寧な対応に感謝します。
            わたしのミスでした。 JavaScript で 数字が代入された「文字列」を「+」で加算したのではなくて、「文字列の連結」を行っていました。 なんだか、初歩中の初歩の不理解でした。 お騒がせしてしまって、大変申し訳ありません。 貴記事に誤りはありませんっ! 貴重な時間を浪費させてしまいました。 ご勘弁願います。