2015年12月10日木曜日

配信のビットレート設定



配信サイズとフレームレートに応じた最適なビットレートの算出方法を書いた記事がありました。それによると一定数以上のビットレートを設定すると Diminishing Returns が発生するとのこと。
つまり、例えば下に記載する算出方法により 720p@30 で配信する場合の最適なビットレートは2765kbps (切りの良い数字で 2800kbps)であり、最適値を超えるとビットレートに対する画質向上の効率は減少するということです。

ですから 720p@30 の配信をキレイにしようとTwitchの上限である 3500kbps を設定しても期待するほどの結果にはなりません。3500kbps にするなら 720p30 より 720p@40 にした方が鮮明な画質になります。CPU に余裕があれば Preset を Faster にすることで最適値に足りない分のビットレートは補えます。

最適値よりもビットレートを少なくするほど画質は低下しモスキートノイズやブロックノイズが多くなります。この現象は画面の変化が多いゲームほどそれは顕著に現れます。残念ながらTwitchが推奨する 720p@30 2000kbpsではモスキートノイズや細かなブロックノイズが発生します。それでもプレイの状況はわかるし、多くの人が視聴可能なビットレートということで推奨しているのでしょう。


横 * 縦 * フレームレート * 0.1 / 1000 = 最適値
例えば720p@30なら:1280*720*30*0.1/1000=2764.8

多くのモニタはリフレッシュレートが60Hz(1秒間に画面を60回更新)なので配信のFPSは以下の5種類が一般的。
30fps: 1/2
40fps: 2/3
45fps: 3/4
48fps: 4/5
60fps: 1/1

最適値(小数点以下は切り上げ、Preset は veryfast とする)

540p
  • 30fps: 1556 (⇒1600)
  • 40fps: 2074 (⇒2100)
  • 45fps: 2333 (⇒2400)
  • 48fps: 2489 (⇒2500)
  • 60fps: 3111 (⇒3200)
720p
  • 30fps: 2765 (⇒2800)
  • 40fps: 3687 (⇒3700)
  • 45fps: 4148 (⇒4200)
  • 48fps: 4424 (⇒4500)
  • 60fps: 5530 (⇒5600)
1080p
  • 30fps: 6221 (⇒6300)
  • 40fps: 8295 (⇒8300)
  • 45fps: 9332 (⇒9400)
  • 48fps: 9954 (⇒10000)
  • 60fps: 12442 (⇒12500)


プリセットは ultrafast → superfast → veryfast → faster → fast → medium → slow → slower とあり、殆どのエンコーダーで veryfast が初期設定になっているはずです。遅くするに従い画質は向上しますが CPU への負担が増加します。私の経験では veryfast から faster にすると画質の向上が明確に確認できますが、faster から fast へ変更しても違いは目を凝らしてようやく確認できる程度です。medium からは電気をムダに消費するだけです。ultrafast と superfast は CPU への負担こそ軽くなりますが、著しく画質が低下するために基本的に選択することはありません。
プリセットを変更する場合は必ずタスクマネージャなどで CPU 使用率をテストしてください。実際の配信時に使用するソフトウェアを全て起動させておくのをお忘れなく。それらも CPU を使いますので。


0 件のコメント:

コメントを投稿