我有一个原始的divx视频(3500k),我将其编码为mp4容器中的h.264。例如,我选择用1000k对其进行编码,以便质量保持与原始质量接近。如果我用相同的比特率再编码一次,会发生什么?理论上,质量应该保持不变吗?
ffmpeg -i A.divx -an -vcodec h264 -b:v 100k A.mp4
发布于 2019-06-04 05:12:08
质量不会一成不变
使用有损编码器重新编码将降低每次的质量。这称为generation loss。
生成损失是指数据的后续拷贝或转码之间的质量损失。在复制时降低表示的质量,并且在制作副本时会导致质量进一步降低的任何东西,都可以被认为是一种生成损失的形式。文件大小增加是生成损失的常见结果,因为引入工件实际上可能会在每一代中增加数据的熵。
ffmpeg
将输入完全解码为原始视频和PCM音频,无论输入格式如何:
_______ ______________
| | | |
| input | demuxer | encoded data | decoder
| file | ---------> | packets | -----+
|_______| |______________| |
v
_________
| |
| decoded |
| frames |
|_________|
________ ______________ |
| | | | |
| output | <-------- | encoded data | <----+
| file | muxer | packets | encoder
|________| |______________|
然后,它对原始视频进行编码,其中包括来自先前编码迭代的破坏性压缩伪像。质量不会保持不变,因为两代人本质上是完全不同的视频。
https://stackoverflow.com/questions/56433887
复制相似问题