图像 - >视频 - >图像不是无损的使用avconv

时间:2015-12-15 14:18:27

标签: codec avconv

我试图测试一些不同视频编解码器丢失的信息量。我有一个python脚本,它使用PyPNG编写一系列8位RGB图像。然后我使用avconv对其进行编码,例如

avconv -r 1 -i ../frames/data%03d.png -c:v ffv1 -qscale:v 0 -r 1 

outffv1.avi

然后我将其解码回pngs,就像这样

avconv -r 1 -i outffv1.avi -r 1 ./outffv1/frame%03d.png

但是当我比较视频压缩之前和之后的图像时,它们是不同的(平均绝对误差为~~ 15%)。令我困惑的是,这是真的(给予或接受)独立于编解码器

例如,我为libtheora获得了一系列qscale值的类似答案。

png编码即写入png,并在没有视频压缩步骤的情况下立即重新加载,是无损的。

更新 - 更精确的工作示例:

此处有单个输入框:https://www.dropbox.com/s/2utk1xs2t8heai9/data001.png?dl=0 编码为这样的视频:avconv -r 1 -i ./frames/data%03d.png -c:v ffv1 -qscale:v 0 -r 1 outffv1.avi 结果视频:https://www.dropbox.com/s/g1babae2a41v914/outffv1.avi?dl=0 在这里再次解码为png:https://www.dropbox.com/s/8i8zg1qn7dxsgat/out001.png?dl=0 使用此命令:avconv -r 1 -i outffv1.avi -qscale:v 31 -r 1 out%03d.png 和图像magick像这样区别 compare out001.png ./frames/data001.png diff.png 给这个(非零)差异 https://www.dropbox.com/s/vpouk54p0dieqif/diff.png?dl=0

1 个答案:

答案 0 :(得分:2)

您的视频文件最有可能使用YUV颜色格式。 PNG使用RGB。颜色的转换不是无损的过程。