2

ビデオ会議プロジェクトで x264 エンコーダーを使用しています。基本的なストリーミング ビデオは機能していますが、さまざまなレート制御設定が最終的なビットレートを決定する方法を理解するのに苦労しています。次のパラメーターを設定します。

x264_param_t params;
x264_param_default_preset(&params, "ultrafast", "zerolatency");
params.i_threads = 1;
params.i_width = width;
params.i_height = height;
params.i_fps_num = fps;
params.i_keyint_max = fps;
params.b_intra_refresh = 1;
params.b_repeat_headers = 1;
params.b_annexb = 1;

//Set rate control stuff here

x264_param_apply_profile(&params, "baseline");

params.rc.i_bitrate パラメーターのみを設定すると、エンコーダーはビットレートを大幅にオーバーシュートするように見えます。i_vbv_max_bitrate と i_vbv_buffer_size パラメーターを設定すると、i_vbv_max_bitrate 設定をピークにする (場合によってはオーバーシュートする) ビットレートが表示されます。ビデオ会議では、バイトレートを厳密に制御することが明らかに重要ですが、ドキュメントは不透明です。ビデオ会議に x264 を使用している人はいますか? エンコーダーの設定はどうしていますか?事前に感謝します。

4

1 に答える 1

6

最小限のジッタと信頼性の高いパフォーマンスのために低遅延ビデオ会議モードを使用している場合は、VBR モードではなく CBR モードにする必要があります。ライブの低遅延システムでは対処できないシュートアップとピークを与えるのは VBR モードです。

低遅延のビデオ通信/監視アプリケーション用に特化した vbr アルゴリズムがありますが、x264 にはそれがありません。したがって、その vbr は使用しないでください。その vbr はストレージ用です。

cbrを有効にする --nal-hrd cbr があります

物事は統計的なものであるため、ビットレートが一定以上に上昇しないことを保証する方法はありません。ただし、いくつかの仮定が満たされている限り、99% の時間、制御下に置くことができます。

vbv バッファ サイズは、2 つの目的のために、品質の観点から対処できる最小サイズにする必要があります。 . 小さいほど品質が悪くなります。対処できる最小値を見つけます。

vbv の最大ビットレートは、cbr のターゲット ビットレート値に設定する必要があります。これは、許可されている最大瞬間ビットレートであることを rc に示すガイドラインです。ターゲットビットレートに設定します。そのガイドラインを覚えておいてください。ビデオの統計的性質により、オーバーショットになる可能性があります。

イントラ リフレッシュがあることを確認してください。したがって、I ピクチャはオフになっています。

超高速は、一部の設定をオーバーライドせずに使用するには、おそらく適切なプリセットではありません。参照ピクチャ、b ピクチャ、プロファイルを明示的に設定します。あなたの私を設定し、より高いレベルに潜入してください。[私があなただったら最高レベル]。これは、あなたが銃撃を受けている理由の 1 つです。このため、エンコーダーは適切な仕事をすることができません。エンコーダーの方が優れていて潜水している場合、シュートアップが発生するハード部分をエンコードするのに必要なビット数が少なくなります! 一般に、ビデオを理解していない人はこれを理解できません。彼らは、なぜ私/サブミがビットレートとシュートアップにとって重要なのかを尋ね続けています. 私を信じてください。エンコーディングの難しい部分が発生したときにどれだけのシュートアップが得られるかは、エンコーダーのアルゴリズムに完全に依存しており、私は重要なアルゴリズムの 1 つです。

どのプロファイルで作業する必要があるかを確認してください。Cabac は最大 20% の改善をもたらします。メインプロフィールができるなら、そうしてください。参照ピクチャは 1 つだけ使用し、B ピクチャは使用しません。しかし、使用できるのであれば、ビットレートの利点のために cabac を使用してもまったく害はありません。

編集: 一般に、魔法の薬はありません。上記は、長年にわたってマルチメディアに取り組み、ビデオを理解してきた経験から得られたアドバイスです。ただし、品質/遅延とシステム固有のその他の制約の間で最適な設定を見つけるために、少し試してみる必要があります。用語を微調整する前に、用語を理解していることを確認してください。また、ビデオは統計的であることを忘れないでください。常に 100% 完璧というものはありません。

于 2012-08-31T20:14:20.747 に答える