ffmpeg常见参数的设置

用ffmpeg编程对一些参数的设置一直是复制黏贴,至于到底为什么这么设置,不这么设置有什么后果不是特别的了解。这几天测试了下调整ffmpeg转码参数,看看不同参数对视频编质量或大小的影响,并进行一定的分析。

首先是编码器参数的设置。视频:pCodecCtx = avcodec_alloc_context3(pCodec);
pCodecCtx->pix_fmt = PIX_FMT_YUV420P; 测试结果:只能固定的几个有用,否则打开失败,具体看代码
pCodecCtx->width = ifmt_ctx->streams[videoindex]->codec->width;
pCodecCtx->height = ifmt_ctx->streams[videoindex]->codec->height;
pCodecCtx->time_base.num = 1;
pCodecCtx->time_base.den = 25;
pCodecCtx->bit_rate = 300000; 变小码率画质不清晰,模糊,体积减小
pCodecCtx->gop_size = 250;测试结果:变小体积略微变大,但画质影响不是特别大。反之亦然,大到一定数值不变
/* Some formats want stream headers to be separate. */
if (ofmt_ctx->oformat->flags & AVFMT_GLOBALHEADER)
pCodecCtx->flags |= CODEC_FLAG_GLOBAL_HEADER;
pCodecCtx->qmin = 10;测试结果:当QMIN升高或qmax降低,对视音频质量和大小产生明显影响
pCodecCtx->qmax = 51;测试结果:单纯减少qmax值增大体积,但并不能提高画质,还与其他因素有关

你可能感兴趣的:(qt,ffmpeg)