Ustream 配信ビットレートの選び方


話題があちゃこちゃしてわやわや書いております。自分の中では一貫しているのですが、それを伝えるのは難しい。ということで、今度はライブ配信メディアである Ustream のビットレート(bitrate)について考えてみたいと思うんです。

Xsplitのチャンネル設定

なぜビットレート?

たぶんこれを読んでくださる方ってのは、Ustreamとか、ニコ生を配信している人が多いと思うんだけど、配信の品質を考える上でこのビットレートはとても大切。しかも分かりにくい。そこで、基本的なことをざっくりと理解してもらって、ビットレートの選び方を知ってほしいなと思うのですよ……などと言いながら実態は今調べて書いてたりするんですけどね。

さて、まずビットレートってなんでしょう?ライブメディア配信ってのは、ざっくり言えば、映像・音声を圧縮して Ustream サーバーに送りつけて、それをサーバーから放送してもらうってことです。そのサーバーに送りつけるデータ、それはつまり配信されるデータと同じなんですが、そのデータの単位時間当たりのビット数がビットレートです。たとえば、無線LANなんかで、100 Mbps(メガビット/秒) 対応なんて書いてあったりしますよね。厳密に言うと違うものだけど、ざっくりならだいたい同じと考えてOK。つまり、100 Mbpsの回線での理論的な上限のビットレートは 100 Mbps ということです。実際は通信っていろいろなことをしているから、せいぜい半分くらいなわけですけどね。

映像ビットレート

で、映像から見ていきましょう。Ustream の場合、H.264(MPEG-4)で映像を圧縮します。たとえば、映像の1画素が24ビット(8ビット×3色 RGBフルカラー)の色だとします。映像サイズが 640×480、1秒あたりのフレーム数(fps)を30 とすると、ビットレートは次式で与えられます。bps は bits per second、つまり1秒あたりのビット数の省略です。fps はもちろん1秒あたりのフレーム数(映像の枚数)です。

24×640×480×30 bps=221184000 bps≒221 Mbps

たとえば、映像のビットレートを1Mbpsに落とすということは、1/221 に圧縮して送出するということです。ちょっと驚くほどの圧縮率と思うかもしれませんが、H.264のレベル3 ※1,2(720×480,30fps)での最大動画ビットレート (VCL) は BP(ベースラインプロファイル) で10,000 Kbps=10 Mbpsとなっています。BP はあまり画質の良くない圧縮率の高いものですが、どんな映像でも約1/20以下になるわけです。実際には、10 Mbps なんて光回線でも常時送出するのは厳しいわけですから、2 Mbps くらいまで下げたくなるでしょう。もちろん、あまり動きのない映像ならばさらに圧縮が可能になります。1 Mbpsでもそこそこの画質でしょう。

たとえば、「秋葉原駅ライブカメラ HD配信」は MonsterX Live を使って 720p(1280×720、30 fps) の映像を 1500 kbps=1.5 Mbps で出しています。

秋葉原駅ライブカメラのビットレートを測る

音声ビットレート

次は音声ですね。まず基準として、CD音質のビットレートを計算しましょう。CDは、44.1KHzサンプリング、ステレオ、チャンネルのビット数が16です。つまりビットレートはこんな式です。

44100×2×16 bps=1411200 bps≒1.4 Mbps

音声は映像に比べて圧縮率は高くありません。Ustreamでは AAC※3、MP3 などが使われます。たとえば Windows の iTunes は音楽CDの取り込みに 128Kbps を使っています。だいたい 1/10 くらいですね。すこし劣化しますが、イヤホンで聞くとそれほどわからないでしょう。音の良いイヤホンと音の悪いイヤホンの違いのほうがはるかに大きいです。音声のほうは、あまり選択肢がないですね。多くの Ustream 番組では、64Kbps、96Kbpsあたり、高音質の音楽配信で128Kbps、160Kbpsあたりが使われているという感じでしょうか。

iTunesのCD取り込みビットレート

iPhoneでの視聴

番組をiPhoneの3G回線でも見てもらいたいかどうか、というのがビットレートを考える上で重要なポイントです。iPhoneで見る場合アプリの処理にも時間がかかりますし、回線も良い条件では1 Mbps以上出ることがありますが、安定して出せるのはその半分 500 kbps あたりでしょう。他の blog 等の解説を見ると 384 kbps あたりを上限としている記述が多々見られますが、理にかなった値です。映像と音声のビットレートを加算して 384 kbps ですから、音声重視なら 96 kbps くらいを割り当てて、残りの 約300 kbps を映像で使うという感じですかね。実際に、Ustream Producer のプリセットを見てみると、こんな感じになっています。

画面サイズ 4:3 のプリセット

プリセット 映像 音声 合計
高さ fps bitrate
(kbps)
チャンネル fs
(KHz)
bitrate
(kbps)
bitrate
(kbps)
HD帯域 960 720 30 1100 Stereo 44.1 96 1196
高帯域 640 480 30 800 Stereo 44.1 96 896
中帯域 512 384 30 500 Stereo 44.1 96 596
モバイル
低帯域
320 240 25 200 Mono 22.05 32 232

画面サイズ 16:9 のプリセット

プリセット 映像 音声 合計
高さ fps bitrate
(kbps)
チャンネル fs
(KHz)
bitrate bitrate
(kbps)
HD帯域 1280 720 30 1100 Stereo 44.1 96 1196
高帯域 640 360 30 800 Stereo 44.1 96 896
中帯域 480 270 30 500 Stereo 44.1 96 596
モバイル
低帯域
320 180 25 200 Mono 22.05 32 232

このプリセット一覧を眺めてみると、画面サイズを小さくしてビットレートを下げているのが分かります。モバイル低帯域の合計232 kbps は回線速度がかなり遅くても映せる限界値でしょう。ただ、フレーム数が25と多いままなのが気になりますね。

映像をカスタム設定する

FME(フラッシュメディアエンコーダー、Flash Media Encoder)を使ったり、Ustream Producer や XSplit Broadcaster を有料版にすればこれらの設定をカスタマイズすることが可能になります。どんなふうに考えればいいでしょうか?

まず、映像からいきましょう。映像の圧縮というのは流している映像の時間的な変化に依存します。極端にいえば、静止画しか出さないのであればビットレートはぐっと下げられます。一方で、音楽ライブや、映像がめまぐるしく動くスポーツ、ゲームの配信などではビットレートは下げられません。しかしよく考えてみると、30fps というフレームレートは昔のアナログ地上波テレビとほぼ同じ値です。実際の配信ではもっと下げられます。映像の変化があまりなければ 10 fps、映像が少し動く場合で 15 fps、激しく動く場合で 25 fps あたりが手ごろです。フレームレートをすこし下げても、意外に誰も気がつかないくらいですよ。ポイントをまとめてみましょう。

  • 映像の動きが大きいときは、フレームレートを25fps程度まで下げて、画面サイズを小さめにする(プリセットのままでもOK)
  • iPhoneを視聴対象にしたい時は、プリセットのモバイルを選ぶとよい
  • 映像の動きが小さいときは、フレームレートを10~15fpsまで落とすことが可能なので、その分画像の解像度を高くしてもよい(カスタム設定が必要)

なお、FME や Xsplit を使うと、アーカイブが存在してもiPhoneのUstreamアプリには表示されません。アーカイブを残して、iPhoneで見てもらうためには何かワザがあるのかもしれませんね。

まず、自分の番組が実際にどの程度のビットレートなのか確かめてみるといいでしょう。Bitrate Viewer ※4 というソフトを使うと、どんなふうにビットレートが変化しているかを見ることができますよ。

音声をカスタム設定する

音声の基本は44.1Kステレオ、96kbpsです。音楽を流したりしても十分な音質です。でも、音楽をかけないのならこんなには必要ありません。22.05Kステレオ、64kbpsでも十分です。これでも、FMラジオよりもすこし悪い程度です。逆に、音を重視したいときは前述した画面サイズを小さくしたり、フレームレートを思い切って下げて、44.1Kステレオ、128kbps くらい確保したらどうでしょうか。

Ustream-distribution-image

まとめ

見てきたように、Ustream Producer のプリセットはフレームレートをあまり下げないでビットレートを選ぶ設定でした。これは一般的ではあるのでしょうけれど、しかし「映像つきラジオ」のような番組が多い Ustrteam の現状を考えると、音と画面サイズを維持しながらフレームレートを下げてビットレートを下げ、多くの視聴者が安定して見られるようにするという道もあるでしょう。

配信用パソコンの性能にもよりますが、パソコンでの視聴を前提にした配信であれば高解像度の配信もまた楽しいものです。しかし、できるだけ多くの人が見られるように配慮された配信が、けっきょくは視聴者の心を掴んでく前提になるのではないかと思います。すばらしい番組が増えてくるといいですよね。

何か間違いや追加の情報があれば、ぜひコメントして教えてください。

[注]

  • ※1 Ustream のH.264対応
    https://ustream.zendesk.com/entries/22096842
    Ustream の公式のヘルプである「さらに高画質に配信をするために」を見ると、「H.264/AAC、baseline Profile Level 3.0の設定を推奨いたします」と書かれています。
  • ※2 H.264 (Wikipedia)
    http://ja.wikipedia.org/wiki/H.264
  • ※3 AAC(Advanced Audio Coding)
    http://ja.wikipedia.org/wiki/AAC
  • ※4 Bitrate Viewer
    http://www.winhoros.de/docs/bitrate-viewer/

[参考]

  • http://freesoft.tvbok.com/movie_encode/mencoder/h264-main-high.html
  • http://dd360.blog23.fc2.com/blog-entry-508.html
  • http://www.ehow.com/how_12068483_improve-ustream-live-videos.html
  • http://pandastudio.tv/?p=4716
  • http://vistainfinity.blog.fc2.com/blog-entry-51.html
印刷
You can skip to the end and leave a response. Pinging is currently not allowed.
Subscribe to RSS Feed Twitter は Ume108 だよ