FFmpeg中使用libx264的码率控制
Posted jiayayao
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FFmpeg中使用libx264的码率控制相关的知识,希望对你有一定的参考价值。
两种码率控制模式:crf模式和ABR模式
一、crf模式
Constant Rate Factor(crf)优点是提供了最大的压缩效率,每一帧可以按照要求的视频质量去决定它需要的比特数。缺点是,不能计算规定时间的视频文件大小,或者准确控制输出码率。
1. 选择一个crf值
crf值是视频质量的量化值,取值范围0~51,其中0为无损模式,23为默认值,51代表最差质量。crf值加6,输出码率大概减少一半;
2. 选择一个预设(preset)
preset似的编码器能够在编码速度和压缩率之间做出权衡。也就是说,选择越慢的编码速度,压缩率就会越高。如果要求编码速度更快,一般选择ultrafast。
开发者还可以基于输入内容的独特性通过使用--tune来改变参数设置。如果没有特殊要求,一般选择zerolantency。
av_opt_set(pCodecCtx->priv_data, "preset", "ultrafast", 0); av_opt_set(pCodecCtx->priv_data, "crf", "20", AV_OPT_SEARCH_CHILDREN);
二、ABR模式
Average Bit Rate(ABR)模式更注重码率控制,适合在一段时间内生成固定大小的视频,而不太注重视频质量的场景。
以上是关于FFmpeg中使用libx264的码率控制的主要内容,如果未能解决你的问题,请参考以下文章
FFmpeg h.264 mp4编码告警:non-strictly-monotonic PTS
FFmpeg h.264 mp4编码告警:non-strictly-monotonic PTS