MediaCoder转换视频时视频流选择哪种模式最清晰?
在相同码率下,这些编码方式的画质有所不同:
“平均码率”模式会在保证画质的前提下,把数据平均分配给各个时段,但是画质不稳定,动态场景与静态场景穿插较多的视频不适用。适合静态场景较多的视频。
“固定质量”是动态分配数据,画质稳定,不会出现静态场景画质很好而动态场景很差的情形,缺点是不能准确预知最后输出的文件大小。(MediaCoder是用百分比来算质量,质量数值越大,画质越好,一般设置为60%左右,画质还是不错的,播放时不容易看出损失。设置为80%甚至一帧帧看都很难看出来。视频尺寸比较小的话,质量数值应适当调高。)
“恒定码率”与“恒定量化”是特殊情况下才用的(比如设备要求数据码率固定),很容易浪费宝贵的码率。
“二次编码”指定了码率后,系统会先分析一次视频,然后得出各个时段分配多少数据量,最后编码输出视频,不仅画质稳定,而且能很好地控制文件大小。“三次编码”比“二次编码”多一次分析过程,理论上画质更好一点。如果时间充裕,而且要控制文件大小的话,应该用这个模式。
个人觉得,码率相当的情况下,“三次编码”约等于“固定质量”>“二次编码”>“平均码率”>“恒定码率”>“恒定量化”,这是通常情况。不在乎文件大小的话,“固定质量”最好用。
我对x264编码器没有深究,基本都是用预设的Slow参数,固定质量60%~70%。不过我有改动:GOP设为5~50,这样播放时进度条更容易拖动。如果输出的视频要在手机上看,“规格”要设置成Baseline Profile,级别3.0,兼容性会更好,画质会有些下降。