※この記事は動きの激しいゲームで、画面がジャギジャギのブロックノイズバシバシだった自分、
クソ画質がマシになるまでに試行錯誤した末にたどり着いたなんやかんやをまとめたものです。
2PC配信をしても画質が悪い!
2PC配信をする場合、キャプチャーボードが必要になるのは当たり前!ではない。
今ではOBS-NDIというキャプボがなくても2PC配信できる優れものがあるのだ。しかも無料。
これでゲーム用PCと配信用のエンコードPCに負荷を分散できるようになるので、簡単に高画質で配信できる!とはならなかった。
問題はEscape from Tarkovで起きた。
EFTを配信していると画質がマジでクソ
青のりぶち撒けたんか????
OBS-NDIを使用して2PC配信。1080pの60fps、8000kbps、264xエンコードのプリセットMediumで配信してもこの有様。ヤバすぎる。
原因は1080p60fpsではそもそもビットレートが足りない問題。
NvidiaのNVENCOBSガイドでは1080p60fpsはビットレート6000kbpsとなっているが、よく見ると注釈がある。
* ハイモーションコンテンツに関する重要な注意事項。ハイモーションシーン(レースゲーム、バトルロイヤルゲームなど)をストリーミングする場合は、解像度を下げることを強くお勧めします。
ハイモーションコンテンツはそれほど圧縮することができず、より多くのアーチファクト(エンコーディングエラー)に悩まされ、ストリームが「ブロック」に見えてしまう可能性があります。
解像度を下げると、エンコードされるデータが減り、結果的に視聴品質が向上します。例えば、Fortniteの場合、多くのストリーマーは1600×900 60 FPSでストリーミングすることにしています。
つまり動きの激しいゲームだと1080pじゃ厳しいのである。
というわけでNvidiaさんのガイドを参考にすると1600×900 60fpsで決まり!となるのだが…。
なぜ900pよりも936p配信が多いのか?
ある時期から有名なストリーマー達が1080pをやめて、900pで配信し始めた。
理由は上にかかれている通りで、1080pじゃ激しい動きに耐えられないからである。
しかし、ここ最近900pではなく936p(1664×936)の配信が増えてきた。一体なぜだろうか?
理由はエンコードの効率
今配信で主流のビデオコーデックh.264は8×8のブロックに分割して動作するので、8で割り切れる解像度が効率が良く、
両方の値が8できれいに分割できない場合、新しいブロックを作成する必要が出てくるので、エンコード時間と帯域を圧迫してしまう可能性がある。
そのため、解像度を下げつつ、エンコードの負荷も考えると、900pではなく、936pのほうが効率良いんじゃね?ということ。
2PC配信での負荷を更に分散させる方法
ここまで分かればあとはOBSのキャンバス解像度を1664×936するだけ!だと思っていたが、突き詰めると更に効率化できる。
動画をリスケールする負荷さえも分散していきましょう。
エンコードは基本的にドットバイドットが最も効率が良いです。何も手を加えない!ということなので。
そのためこうするよりも…
このようにしたほうが
エンコードPCの性能を限界まで使えます。
1PC配信の場合は基本解像度と出力解像度を両方1664×936にすればOK。
2PC配信の場合でも全部1664×936に統一することもできる。
ダバイの場合、配信のレイアウトが崩れてしまう可能性があったので、ゲームPCで1080pから936pにリスケールしています。
配信レイアウトの設定するの大変だもんね…。
結果
結構改善した!
画質が下ブレしても前よりマシになった
高解像度感は減ったものの、激しい動きや草地を走ってもブロックノイズが出づらくなりました。
完全に解消したわけではないですが、随分見やすくなった。動画で見ると更に体感できる。
Twitchで配信していて、画面の動きが激しめのゲームをするんだったら936pがオススメかも。
936pでもちょっとキツイ…って人は8で割り切れる16:9解像度なら効率的にエンコードできるので
- 1536×864
- 1408×792
あたり試しても良いかも。もちろん720p(1280×720)も8で割り切れるのでOK。
参考サイト一覧