如何使用libavcodec从代码中启用“非常快”的libx264预设?

时间:2013-10-02 20:49:50

标签: ffmpeg x264

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

  

include / x264.h:static const char * const x264_preset_names [] = {“ultrafast”,“superfast”,“veryfast”,“fast”,“fast”,“medium”,“slow”,“slow” ,“veryslow”,“安慰剂”,0};

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

2 个答案:

答案 0 :(得分:8)

你必须创建一个字典,然后使用这个字典,打开编解码器时需要的所有参数!

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 );

答案 1 :(得分:6)

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

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