【发布时间】:2011-10-05 19:40:13
【问题描述】:
是否可以在 h264 中进行完全无损编码?无损,我的意思是如果我给它输入一系列帧并对其进行编码,然后如果我从编码的视频中提取所有帧,我将得到与输入完全相同的帧,逐个像素,逐帧.这真的可能吗? 举个例子:
我生成一堆帧,然后将图像序列编码为未压缩的 AVI(使用 virtualdub 之类的东西),然后应用无损 h264(帮助文件声称设置 --qp 0 可以进行无损压缩,但我是不确定这是否意味着在过程的任何一点都没有损失,或者只是量化是无损的)。然后我可以使用 mplayer 从生成的 h264 视频中提取帧。
我先尝试了 Handbrake,但结果证明它不支持无损编码。我试过 x264 但它崩溃了。这可能是因为我的源 AVI 文件是 RGB 颜色空间而不是 YV12。我不知道如何将一系列 YV12 位图以及以什么格式提供给 x264,所以我什至无法尝试。
总而言之,我想知道是否有办法解决
一系列无损位图(在任何颜色空间中)-> 一些转换 -> h264 编码 -> h264 解码 -> 一些转换 -> 原始系列无损位图
如果有办法做到这一点?
编辑:关于无损 H264 有一个非常有效的观点没有太大意义。我很清楚,我无法(仅凭我的眼睛)分辨出未压缩剪辑和另一个在 H264 中以高速率压缩的剪辑之间的区别,但我认为它并非没有用处。例如,它可能有助于存储视频以供编辑,而不会占用大量空间,并且不会在每次保存文件时损失质量和花费太多编码时间。
更新 2:现在 x264 不会崩溃。我可以使用 avisynth 或无损 yv12 lagarith 作为源(以避免颜色空间压缩警告)。但是,即使使用 --qp 0 和 rgb 或 yv12 源,我仍然会得到一些差异,虽然很小但存在。这很麻烦,因为我发现的关于无损预测编码 (--qp 0) 的所有信息都声称整个编码应该是无损的,但我无法验证这一点。
【问题讨论】:
-
我什至不知道 h.264 定义了无损模式...
-
我不相信您可以在无损模式下执行 h.264。你为什么要这么做?
-
有损有什么问题?
-
电影 CG 工作室经常将他们的作品(通过运输公司)发送到飞机上,因为这比在互联网上发送更便宜、更快捷。当你突然听到这样的故事时,这样的问题就很有意义了。是的,h.264 有无损模式。
-
这个问题似乎离题了,因为它是关于 FFmpeg 的,更适合 Super User 或 Video Production。
标签: h.264 x264 lossless-compression