2

x264 lib を使用して yuv ビデオ ストリームをエンコードすると、sps パラメーター num_units_in_tick (構造体の i_num_units_in_tick) を設定できません。x264_param_t を次のように初期化します。

    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;

i_rc_method は 1 に設定されています。num_units_in_tick を決定するパラメーターを設定し、x264_encoder_open を呼び出して x264_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 は 60 のままです。num_units_in_tick を 3000 に設定するには、1 フレームが 3000 タイムスタンプ ユニットを占めるようにするにはどうすればよいでしょうか。

4

1 に答える 1

2

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

フレームワークが i_timebase_den ではなく i_fps_num に基づいている可能性があります。FPS を 90000/3000 に設定すると、目的が達成されるかどうかを確認します。これらの 4 つの値は数値的に絡み合っており、2 つの数値のみで指定できます。

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

于 2012-05-02T22:22:22.023 に答える