top of page

ライブ配信の品質を高め、フレーム落ちを防ぐ方法!

執筆者の写真: SplitmediaLabs Limited
SplitmediaLabs Limited
2021年5月13日
読了時間: 6分

Corsair、Asus、Gigabyteの部品を備えた、RGBライトで照らされたコンピューター内部。色鮮やかなファンとケーブルが活気あるテクノロジーの雰囲気を作っている。

配信を始めた人が直面する大きな課題の一つは、配信品質を際限なく追求してしまうことだと思います。配信品質には、コンテンツの品質、制作の品質、配信フィードそのものの品質など、いくつかの意味があります。最初の2つはとても重要ですが、映像がピクセル化していたり数秒ごとに遅延したりする配信に、視聴者は長くとどまりません。そこで今日は、配信品質、つまりライブ配信の品質を高めるために配信を正しくエンコードする方法について説明します。


エンコーダー


エンコーダーとは何ですか?エンコーダーは基本的に、配信ソフトで組み立てたもの(ゲームプレイ、顔カメラ、音声)を圧縮してインターネットへ送信します。この圧縮処理が、XSplit Broadcasterにかかる作業の大部分であり、ライブ配信の品質を高める大きな要因です。CPUでX264を使って行う場合はソフトウェアエンコード、GPUでNVENC、VCE、またはQuicksyncを使って行う場合はハードウェアエンコードと呼ばれます。

長い間、このエンコード処理ではX264が圧倒的に優れていました。しかし現在は、新しいNVIDIA RTXシリーズ(一部のGTXシリーズを含む)GPUでNVENCが確立され、X264と互角に競えるようになっています。そのため、下のPC構築ガイドでは、高価なCPUではなくエンコード用GPUを購入するよう勧めました。もっとも、暗号通貨マイニングがすべてを台無しにするまでは、という話ですが。




解像度とフレームレート


では、エンコーダーに大きな負荷をかけるものは何でしょうか。答えは解像度とフレームレートです。解像度が高く、フレームレートが速いほど、エンコーダーはより大きな画像をより多く処理する必要があり、ライブ配信の品質を高めるうえで差が出ます。

X.264では、解像度とフレームレートが高い場合に画質を維持するため、プリセットを遅くする必要があります。XSplit Broadcasterには次のプリセットがあります。very fast、faster、fast、medium、slowを選ぶには、次のメニューを開きます。


Broadcast > 配信出力の横にある歯車をクリック > Video Encodingセクションの歯車をクリック > Encoder Preset


これらのプリセットを使うとCPU使用率が指数関数的に上昇し、2台のPCを使う配信環境でない限り、またはゲームプレイを配信していない限り、ゲームの動作に大きな影響が出ます。

一方、ハードウェアエンコーダーにはエンコード専用のチップが搭載されていることが多く、ゲームのフレームレートなどへの影響を抑えられます。CPUでエンコードする必要がある場合は、できるだけ多くのコア(最大32コア)を備えたCPUを使い、1080p・60fps配信でslowプリセットを実現することが推奨されます。

同等の選択肢は、RTXシリーズGPUに搭載された最新のNVENCエンコーダーを持つNVIDIA GPUです。これはX264のmediumプリセットに匹敵し、場合によっては上回ります。旧世代のNVENC、VCE、Quicksyncも配信に使えますが、現行のNVENCやX264の性能にはまだ及びません。




モーションとビットレート


どのエンコーダーを選んでも、ライブ配信の品質向上に最も大きな影響を与えるのはビットレートです。ビットレートは、映像と音声の出力品質に割り当てるインターネットのアップロード予算です。高いほど有利です。幸い、音声にはそれほど高いビットレートは必要ないため、予算の大部分を映像に回せます。ここでモーションが関係してきます。

画面上の動きが多いほど、1秒あたりのフレーム数による動きでも、格闘ゲームのスーパー技や一人称シューティングゲームの素早い動きでも、映像のビットレート予算は薄く分散します。そのため動きの多いゲームでは、配信解像度やFPSを下げることが一般に推奨されます。

ビットレートは、利用できるインターネット帯域幅と配信プラットフォームという2つの要因で決まります。Twitch、Twitter、Facebookなどの配信プラットフォームは、通常約6000 Kbpsを上限として利用可能な帯域幅を制限しています。なぜでしょうか。使用する帯域幅が大きいほど、プラットフォームの費用も高くなるからです。

利用できる帯域幅はインターネット接続によって決まります。簡単な速度テストで確認できます。混雑時には変動しますが、ビットレートを設定するときは、オンラインゲームに問題が起きないよう、利用可能な帯域幅の70%を超えないようにしてください。可能なら配信マシンを有線接続することもおすすめします。ライブ配信の品質に大きな違いが出ることがあります。

一般的な原則は、インターネット接続と配信プラットフォームが許す範囲でビットレートをできるだけ高く設定することです。接続が制限されている場合は、低いビットレートに合わせて解像度とフレームレートを下げてみてください。



薄暗い部屋で光るヘッドホンを着け、コンピューターでゲームをする人。明るい画面にはテンポの速いアクション場面が映っている。集中した雰囲気。
撮影: Sean Do、Unsplash

遅延、カクつき、フレーム落ち


遅延という言葉は、特に配信では興味深い表現ですが、エンコードで起きる遅延には一般に2種類あります。1つ目は視聴者側で発生する遅延で、配信がカクついたり遅れたり、ときにはオフラインになってから再接続したりします。配信者側では、この問題がフレーム落ちとして見えることもあります。主な原因は2つです。


1)ビットレートが高すぎます。前述のとおり、ビットレートを設定する前に速度を確認してください。以前は問題なかったビットレートでも、ISPの混雑時間帯やネットワークメンテナンスによって全体の帯域幅に影響が出ることがあります。最善策は配信の帯域幅を下げることです。それでも続く場合は、ISPに問い合わせてみてください。


2)配信サーバーに問題があります。Twitchなどの大手サイトには地域ごとの専用配信サーバーがありますが、ときには問題が発生します。最善策はオフラインにしてサーバーを変更することです。繰り返し起きる場合は、配信を始める前に帯域幅を確認し、配信先として予定しているサーバーが安定しているか確かめてください。

XSplit Broadcasterでは、次の手順でサーバーを簡単に変更できます。


Broadcast > 配信出力の横にある歯車をクリック > 「Server」でAutomatic(または選択中のサーバー)を地域に最も近い次のサーバーへ変更


Twitchの場合は、こちらを確認すると、近いサーバーが順番に表示されます。




もう1種類の遅延は、視聴者に見える場合もありますが、ゲームをプレイしている配信者が感じたり目にしたりすることが多いものです。これは一般に、配信エンコーダーの過負荷と呼ばれます。エンコーダーが処理できない方法で映像をエンコードしようとしている状態で、x264のエンコードではよく起こります。基本的にはPCがCPUのリソースを奪い合うため、配信上でフレームが落ち、PC上で動作するプログラムの性能にも影響します。

これを解決する最善策は、前述のようにエンコード設定を下げることです。主な原因は通常、X264のプリセットを高く設定することです。それで解決しない場合は、解像度やフレームレートを下げてください。

まとめると、適切なエンコードで配信品質を高めるには、ハードウェアエンコーダーを使ってみてください。インターネットとプラットフォームの制限を把握し、問題が起きたら設定を下げましょう。この記事が役立てば幸いです。ほかに取り上げてほしいテーマがあれば、この記事にコメントしてください。


コメント


bottom of page