正在进行安全检测...
发布时间:2023-10-07 10:21:00
FFmpegX264编码参数
1.目录
1.2.3.4.5.
码率控制...................................................................................................................................1X264的preset和tune.............................................................................................................2编码延时建议...........................................................................................................................2ffmpeg编码参数和x264参数对照........................................................................................3x264参数说明..........................................................................................................................6
2.码率控制
X264提供三种码率控制的方式:bitrate,qp,crf。这三种方式是互斥的,使用时设置其中之一即可。
(1)bitrate
x264会尝试把给定的位元率作为整体平均值来编码。这意味着最终编码文件的大小是已知的,但最终的品质未知。此选项通常与-pass(两阶段编码)一起使用。注意,ffmpeg中设置bitrate的具体参数为bit_rate,单位是bits/s(x264里面对应参数i_bitrate的单位则是kbits/s,1kbits为1000bits而非1024bits).
(2)qp
使用qp选项时,表示P帧的量化值为qp。I帧和B帧的量化值则是从--ipratio和--pbratio中取得。可使用默认参数,也可自己设定。使用qp模式,即固定量化值,意味着停用弹性量化(aq_mode)。
当qp为0时,为无损编码。
(3)crf
固定位元率系数,ConstantRatefactor,
可用的值从1到51,越小编码质量越好,码率越高。一般使用16到24,可以为浮点。(crf并不是恒定质量的方式,同一片子同一crf值,其他参数不同可能码率和质量差较大,不同的片子之间就更没有可比性了
此模式把某个“质量”作为编码目标,根据片子质量自动分配码率的vbr(VariableBitRate动态比特率)。X264中构想是让crfn提供与qpn相当的视觉品质,但编码文件更小一些。CRF是借由降低“较不重要”帧的品质来达到此目的。在此情况下,“较不重要”是指在复杂或高动态场景的帧,其品质不是很耗费位元数就是不易察觉,所以会提高它们的量化值。
从这些帧里所节省下来的位元数被重新分配到可以更有效利用的帧。当crf为0时,与qp0相同,实现无损编码。
3.X264的preset和tune鉴于x264的参数众多,各种参数的配合复杂,为了使用者方便,x264建议如无特别需要可使用preset和tune设置。这套开发者推荐的参数较为合理,可在此基础上在调整一些具体参数以符合自己需要,手动设定的参数会覆盖preset和tune里的参数。
--preset的参数主要调节编码速度和质量的平衡,有ultrafast、superfast、veryfast、faster、fast、medium、slow、slower、veryslow、placebo这10个选项,从快到慢。
--tune的参数主要配合视频类型和视觉优化的参数,或特别的情况。如果视频的内容符合其中一个可用的调整值又或者有其中需要,则可以使用此选项,否则建议不使用(如tunegrain是为高比特率的编码而设计的)。tune的值有:film:电影、真人类型;animation:动画;
grain:需要保留大量的grain时用;stillimage:静态图像编码时使用;
psnr: