codec - 图像 -> 视频 -> 使用 avconv 无损图像

标签 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

然后我将其解码回 png,如下所示

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

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

例如,对于一系列 qscale 值,我对 libtheora 得到了类似的答案。

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 和 image magick 的区别是这样的 compare out001.png ./frames/data001.png diff.png 给出这个(非零)差异 https://www.dropbox.com/s/vpouk54p0dieqif/diff.png?dl=0

最佳答案

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

关于codec - 图像 -> 视频 -> 使用 avconv 无损图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34291544/

相关文章:

c - 2`s complement in 3.13 format(取值范围是-4~3.99)是什么意思?

c++ - 如何在 Xcode 中使用 OpenCV 3.4.14 识别 .mp4 视频文件的编解码器?

linux - 如何使用输入的 txt 文件将 AAC 文件与 AVCONV CONCAT 连接起来?

nginx - 减少+30秒的HLS延迟

iphone - iPhone 上的有损压缩格式为原始 PCM

android - 调用 MediaCodec.configure() 时出现非法状态异常

video - 我可以从带时间戳的图像创建 VFR 视频吗?

ffmpeg - 使用 ffmpeg/avconv 将音频与视频组合后,音频会移动 50 毫秒

ubuntu - 未知编码器 'libx264'

python - 为什么我使用 python 从 RFID 读取器得到奇怪的输出?