ライブ ビデオ ストリームを生成しzerolatency
、VLC プレーヤーでできるだけ短い遅延で再生したいと考えています。
これは私が現在使用している設定です:
x264_param_default_preset( &m_Params, "veryfast", "zerolatency" );
m_Params.i_threads = 2;
m_Params.b_sliced_threads = true;
m_Params.i_width = m_SourceWidth;
m_Params.i_height = m_SourceHeight;
m_Params.b_intra_refresh = 1;
m_Params.b_vfr_input = true;
m_Params.i_timebase_num = 1;
m_Params.i_timebase_den = 1000;
m_Params.i_fps_num = 1;
m_Params.i_fps_den = 60;
m_Params.rc.i_vbv_max_bitrate = 512;
m_Params.rc.i_vbv_buffer_size = 256;
m_Params.rc.f_vbv_buffer_init = 1.1f;
m_Params.rc.i_rc_method = X264_RC_CRF;
m_Params.rc.f_rf_constant = 24;
m_Params.rc.f_rf_constant_max = 35;
m_Params.b_annexb = 0;
m_Params.b_repeat_headers = 0;
m_Params.b_aud = 0;
x264_param_apply_profile( &m_Params, "high" );
これらの設定を使用すると、次の問題があります。
- VLC では、欠落しているフレームが多数表示されます (スクリーンショットの「verloren」を参照)。これが問題かどうかはわかりません。
- VLC でネットワーク ストリーム遅延の値を 200 ミリ秒未満に設定すると、VLC は数フレームをレンダリングし、フレームのデコード/レンダリングを停止します。
- VLC のネットワーク ストリーム遅延に 200 ミリ秒以上の値を設定すると、これまでのところすべて問題ないように見えますが、遅延は明らかに 200 ミリ秒であり、高すぎます。
質問: レイテンシーを可能な限り抑えてエンコードおよびストリーミングするには、どの設定 (x264lib および VLC) を使用すればよいですか?