FFMPEG的编码器的参数

常用参数

//平均码率
pCodecCtx->bit_rate = 300000; 变小码率画质不清晰
//指定图像中每个像素的颜色数据的格式
pCodecCtx->pix_fmt = PIX_FMT_YUV420P; 
//编码视频宽度
pCodecCtx->width = 1920;
//编码视频高度
pCodecCtx->height = 1080;
//编码视频帧率  25
pCodecCtx->time_base.num = 1;
pCodecCtx->time_base.den = 25;
//I帧间隔  250帧一个I帧
pCodecCtx->gop_size = 250;
//两个非b帧之间b帧最大数 
pCodecCtx->max_b_frames = 0;
//最小量化因子 建议值 10~30
pCodecCtx->qmin = 10;测试结果:当QMIN升高或qmax降低,对视音频质量和大小产生明显影响
//最大量化因子
pCodecCtx->qmax = 51;测试结果:单纯减少qmax值增大体积,但并不能提高画质,还与其他因素有关
//运动估计的最大搜索范围。跟运动补偿有关,值越大,补偿参考范围越广,越精确,编码效率下降。
pCodecCtx->me_range = 16;
//帧间最大量化因子
pCodecCtx->max_qdiff = 4;
//压缩变化的难易程度。值越大,越难压缩变换,压缩率越高,质量损失较大
pCodecCtx->qcompress = 0.6;
/*
preset有ultrafast,superfast,veryfast,faster,fast,medium,slow,slower,veryslow,placebo这10个级别,每个级别的preset对应一组编码参数,不同级别的preset对应的编码参数集不一致。preset级别越高,编码速度越慢,解码后的质量也越高;级别越低,速度也越快,解码后的图像质量也就越差,从左到右,编码速度越来越慢,编码质量越来越好
*/
AVDictionary* param = 0;
av_dict_set(&param, "preset", "superfast", 0);
av_dict_set(&param, "tune", "zerolatency", 0);

不积跬步无以至千里

猜你喜欢

转载自blog.csdn.net/qq_34940879/article/details/103956542