【发布时间】:2013-12-01 20:08:26
【问题描述】:
我想制作一个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 中为网络流延迟设置一个
- 如果我在 VLC 中为网络流延迟设置一个 >= 200 毫秒的值,到目前为止一切看起来都不错,但延迟显然是 200 毫秒,这太高了。
问题: 我应该使用哪些设置(x264lib 和 VLC)以尽可能少地进行编码和流式传输?
【问题讨论】:
标签: c++ video vlc x264 libx264