libx264和ffmpeg如何编码和解码H.264

e_s*_*ush 1 video encoding ffmpeg libx264

我想知道在H.264编码中究竟会丢失什么.我使用libx264对视频进行编码并使用ffmpeg对其进行解码,然后再使用libx264对生成的视频进行编码,使用相同的参数并对其进行第二次解码.我所期待的是第一和第二个解码视频的大小和外观必须相同,但事实并非如此!例如,我在第一个编码帧中的第一个切片NAL单元中有13000个字节,在第二个编码帧中有12000个字节,这是奇数.因为帧中存在的任何有损信息应该在第一个编码过程中被消除,并且第二个编码应该是其结果相同的NAL单元的过程.我错了或在我的实施中的某个地方我误认了?

sza*_*ary 6

这个问题无法回答.有损编解码器应该真正被称为有代表性的.像复印机一样,任何一代都会略有修改.了解"确切"丢失的唯一方法是实际运行算法.现代压缩由几个步骤组成.运动估计/补偿,量化,环路滤波器和解块.并且在每个步骤中移除了多少信息由速率控制算法决定.根据参数和内容,这些步骤中的每一个都可能丢失甚至添加信息.甚至可能在编解码器的实现之间有所不同.