【问题标题】:How do you enable "veryfast" libx264 preset from code using libavcodec?如何使用 libavcodec 从代码中启用“非常快”的 libx264 预设?
【发布时间】:2013-11-03 17:33:29
【问题描述】:

我通过 ffmpeg(在 C++ 程序中)使用 libx264,我需要知道如何激活“非常快”预设。 x264 源代码树中的 grep 生成:

include/x264.h:static const char * const x264_preset_names[] = { "ultrafast", "superfast", "veryfast", "faster", "fast", "medium", "slow", "slower" , "非常慢", "安慰剂", 0 };

这让我倾向于相信 x264 本身支持这个预设,而不是仅仅作为其他设置的集合在 ffmpeg 中实现。所以,问题是:如何让 ffmpeg 激活 x264 “非常快”预设?

【问题讨论】:

    标签: ffmpeg x264


    【解决方案1】:

    您必须创建一个字典,然后在打开编解码器时将此字典与您需要的所有参数一起使用!

    AVDictionary * codec_options( 0 );
    av_dict_set( &codec_options, "preset", "veryfast", 0 );
    // av_dict_set( &codec_options, "AnyCodecParameter", "Value", 0 );
    avcodec_open2( codecContext, videoCodec, &codec_options );
    

    【讨论】:

    • 我想知道哪个是首选方法:av_opt_set() 还是使用 AVDictionary?
    • av_dict_set() 肯定更现代,所以我 99% 认为这是首选方式!所有使用 AVDictionary 的东西都被认为是现代方式。
    【解决方案2】:

    libavutil 定义了 av_opt_set().... 你所要做的就是包含 "libavutil/opt.h" 然后:

    av_opt_set(codecContext->priv_data, "preset", "veryfast", 0);
    

    【讨论】:

      猜你喜欢
      • 2020-04-24
      • 2013-10-27
      • 2012-08-28
      • 1970-01-01
      • 2017-10-03
      • 2014-06-20
      • 2011-05-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多