我想知道在H.264编码中丢失了什么。我使用libx264对视频进行编码,并用ffmpeg对其进行解码,然后使用相同的参数对结果视频进行编码,并使用相同的参数对其进行解码,然后再对其进行第二次解码。我预计第一个和第二个解码视频的大小和外观必须相同,但是,它不是!例如,我在第一个编码帧中的第一个片NAL单元中有13000个字节,在第二个编码帧中有12000个字节,这是奇数。因为在第一个编码过程中,帧中存在的任何有损信息都应该被消除,并且第二个编码应该是其结果相同的NAL单元的过程。我错了,还是在我的实现中我错了?libx264和ffmpeg如何对H.264进行编码和解码
1
A
回答
6
这个问题是不可能回答的。有损编解码器实际上应该被称为世代有损。像复印机一样,有史以来的一代都稍有改动。要“确切”知道将会丢失什么的唯一方法是实际运行该算法。现代压缩由几个步骤组成。运动估计/补偿,量化,环路滤波和解块。并且在每个步骤去除多少信息由速率控制算法决定。根据参数和内容,这些步骤中的每一个都可能会丢失甚至添加信息。编解码器的实现甚至可能不同。
+0
谢谢。除量化步骤外,你能解释一下,其他部分如何处理信息丢失? –
+0
有很多关于这个主题的书籍,以及可能在互联网上的资源,你应该从那些开始,然后问在stackoverflow上的具体问题。 – szatmary
相关问题
- 1. 使用gstreamer和ffmpeg进行H.264解码
- 2. H.264编解码器
- 3. 调谐FFmpeg H.264解码器
- 4. 使用FFmpeg编码H.264 CBR视频
- 5. 如何使用ffmpeg以编程方式解码H.264 HL?
- 6. 如何使用ffmpeg与h.265(或h.264)编码?
- 7. H.264编码器和解码器在iOS中
- 8. 寻找JMF h.264/rtp编码器和解码器插件
- 9. 如何使用libx264包进行解码?
- 10. 解码H.264没有流
- 11. h.264 udp流解码
- 12. h 264硬件编码/解码对于IOS(IPhone/Ipad)?
- 13. 解码在iOS上编码为H.264的单帧编码
- 14. Flowplayer H.264视频编码
- 15. Java - h.264视频编码
- 16. H.264视频编码
- 17. 通过UDP对h.264编码视频进行流式处理
- 18. 我想在ffmpeg中使用libx264编解码器。但Ffmpeg libx264的配置失败
- 19. 使用FFMPEG进行H.264编码 - 某些视频不能正常工作
- 20. android:不能改变编码视频大小和如何编码h.264
- 21. Windows上的FFMPEG(用于H.264 RTSP解码)
- 22. 使用FFmpeg无法解码H.264流(Annex.B)
- 23. 使用ffmpeg将H.264编码数据保存到文件中
- 24. 在ffmpeg中转储libx264编码参数
- 25. FFMPEG和MP3。如何解码
- 26. 如何在Jsp中对文本进行编码和解码
- 27. 如何在swift中对struct NSData进行编码和解码?
- 28. 如何在JAVA中对SecretKey进行编码和解码?
- 29. 如何对此类进行编码和解码
- 30. 如何在VBA和C中对XML进行编码/解码#
大多数有损压缩算法并不能保证使用相同参数进行解码和重新编码将产生相同的输出。 – cdhowie
有没有任何官方的参考文件发布过这个问题? –
是什么让你觉得这是一个问题? – cdhowie