私は、可能な限り最高の品質を維持しながら(つまり、ブロックの少ないピクセル)、可能な限り低いビットレートでOBS20.0.1からFPSシューティングゲームをストリーミングしようとしています。
参照フレームが増えるとビットレートが上がるのではないかと心配しています。これは動きの激しいストリーミングなので、-tune animation
を使用して非ブロック化を強化する必要がありますか?それとも、PSNR
またはSSIM
がより有望な候補になるでしょうか?
テストストリームで試すよりも、どの-tune
-オプションが最適かをテストするためのより良い/他の方法はありますか?
また、私のストリームが恩恵を受けるが、OBSに含まれていない他のx264オプションはありますか?
私のハードウェア:
私は、可能な限り最高の品質を維持しながら(つまり、ブロックの少ないピクセル)、可能な限り低いビットレートでOBS20.0.1からFPSシューティングゲームをストリーミングしようとしています。
これは可能ですが、エンコードに時間がかかります。ライブストリーミングを行っているので、単一のエンコーディングパスが必要であり、できれば高速なパス、つまりCPUリソースを最大限に活用するパスが必要だと思います。したがって、CPU速度のプリセットを試してみる必要があります。許容できる最高速度を選択してください。
これらすべてのパラメーター(速度、品質、ビットレート)を同時に最適化することは不可能です。そのため、x264(およびその他のエンコーダー)は、速度プリセット(たとえば、ultrafast
からveryslow
in x264)。これらのプリセットは、圧縮品質を最適化する、またはエンコード時間を最小化する特定のオプションをそれぞれ有効/無効にします。
参照フレームが増えるとビットレートが上がるのではないかと心配しています
これらははるかに大きいので、それは一般的に真実です。
これはハイモーションストリーミングなので、非ブロック化を強化するために-tuneアニメーションを使用する必要がありますか?それとも、PSNRまたはSSIMがより有望な候補になるでしょうか?
チューニングモードが説明されています であるこの他の投稿を見てください。
1回のエンコードパスで低遅延のライブストリーミングを行う特定のケースでは、film
を使用しても意味がありません。これは、(粒子の粗い)詳細を保持するためのものです。
低ビットレートでのブロック性についての心配は理解できますが、animation
プリセットはライブストリーミングには意味がありません。Bフレームの数も増えるため、とにかく0(または低い数)高速エンコーディングを可能にします。 B-frames 過去と未来のフレームをエンコードする必要があります。つまり、エンコーダー/デコーダーはこれらのフレームを格納するためにより大きなバッファーを保持する必要があります。 Bフレームが多いほど、エンコード時間が犠牲になり、品質が向上します。
psnr
モードとssim
モードも役に立ちません。これらはエンコーダの開発/最適化中にのみ使用され、実際には主観的な品質が低下する可能性があります。
おそらくzerolatency
はあなたのユースケースにより適していますか?
テストストリームで試すよりも、どの-tune-optionが最適かをテストするためのより良い/他の方法はありますか?
理論的には、いくつかの元のストリームをエンコードしてから、さまざまな設定でエンコードし、 [〜#〜] vqmt [〜#〜] またはのようなフルリファレンスビデオ品質アナライザーで実行できます。 [〜#〜] vmaf [〜#〜] 。これらは、エンコードの品質スコアを提供します。しかし、あなたの場合、結果を視覚的に検査することでも十分だと思います。