2012-02-01 16 views
2

yuvビデオストリームをエンコードするのにx264のlibを使用すると、spsパラメータnum_units_in_tick(structのi_num_units_in_tick)を設定できません。 x264_tを取得するためにx264_encoder_open呼び出して、i_rc_methodは私がnum_units_in_tickを決めるパラメータを設定1に設定されてx264 num_units_in_tickを正しく設定できません

x264_param_t*      m_x264Param; 

    if(x264_param_default_preset(m_x264Param, "superfast", "zerolatency") < 0) 
    return -1; 

    x264_param_apply_fastfirstpass(m_x264Param); 

    /* Apply profile restrictions. */ 
    //baseline 
    if(x264_param_apply_profile(m_x264Param, "baseline") < 0) 
     return -1; 

:私はとしてx264_param_tを初期化。

m_x264Param->i_timebase_den = 90000; 
    m_x264Param->i_timebase_num = 3000; 
    m_x264Param->i_fps_num = 60; 
    m_x264Param->i_fps_den = 2; 

しかし、num_units_in_tickはまだ1であり、time_scaleので1つのフレームが3000タイムスタンプユニットを占め、私は3000にnum_units_in_tickを設定することができますどのように、まだ60です。

答えて

2

実際、vui_parametersにはフレームレートではなく、FIELDレートがあります。

フレームワークがi_timebase_denの代わりにi_fps_numに基づいている可能性があります。あなたのFPSを90000/3000に設定するのがあなたの望むものかどうかを見てください。これらの4つの値は数値的に絡み合っており、2つの数値でしか指定できません。

また、あなたのフレームワークが分数を単純化している場合、あなたは完全に不運です。

+2

+1これは難題です。興味深いのは、x264-develのこのディスカッションです:http://mailman.videolan.org/pipermail/x264-devel/2005-September/000985.html – mevatron

関連する問題