ffmpeg参数设置,AVCodecContext设置, h264 profile

本文详细介绍了使用FFmpeg结合x264编码器进行视频编码时的各项关键参数设置方法,包括不同preset对编码质量和速度的影响、如何实现接近恒定比特率(CBR)的编码设置等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 c->profile  =FF_PROFILE_H264_MAIN                 ;

 

FFmpeg and x264 Encoding Guide 参数说明:http://ffmpeg.org/trac/ffmpeg/wiki/x264EncodingGuide

preset 与编码速度和质量相关

av_opt_set(c->priv_data, "preset", "slow", 0);  Current presets in descending order of speed are: ultrafast,superfastveryfastfasterfastmediumslowslowerveryslow,placebo.

priv_data  属于每个编码器特有的设置域,用av_opt_set 设置

 

 

2014/5/29 :今天发现 av_opt_set(enc_ctx->priv_data, "preset", "slow", 0);   slow的编码质量比medium(默认值)好多了。

固定码率150K,设置slow时:编码速度:245 fps 4ms

[libx264 @ 014bbb40] frame I:38 Avg QP:33.69 size: 3763
[libx264 @ 014bbb40] frame P:262 Avg QP:35.79 size: 381

meidum 时:编码速度:335 fps 2ms,

[libx264 @ 018dbb40] frame I:38 Avg QP:34.33 size: 3234
[libx264 @ 018dbb40] frame P:262 Avg QP:37.83 size: 455

veryslow 时:编码速度:140 fps 7ms

[libx264 @ 0187cb40] frame I:38 Avg QP:35.10 size: 3582
[libx264 @ 0187cb40] frame P:262 Avg QP:37.24 size: 405

 

如何设置固定码率编码 

CBR (Constant Bit Rate)

There is no native CBR mode, but you can "simulate" a constant bit rate setting by tuning the parameters of ABR, like

ffmpeg -i input -c:v libx264 -b:v 4000k -minrate 4000k -maxrate 4000k -bufsize 1835k out.m2v

in this example, -bufsize is the "rate control buffer" so it will enforce your requested "average" (4000k in this case) across each 1835k worth of video. So basically it is assumed that the receiver/end player will buffer that much data so it's ok to fluctuate within that much.

Of course, if it's all just empty/black frames then it will still serve less than that many bits/s (but it will raise the quality level as much as it can, up to the crf level).

 

只设置bit_rate是平均码率,不一定能控制住

c->bit_rate = 400000;
c->rc_max_rate = 400000;
c->rc_min_rate = 400000;

提示  [libx264 @ 00c70be0] VBV maxrate specified, but no bufsize, ignored   

再设置  c->rc_buffer_size = 200000;  即可。

如此控制后编码质量明显差了。。。

转载于:https://www.cnblogs.com/mlj318/archive/2013/05/09/3068737.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值