1

我已经看到 ffmpeg 有一些编解码器(例如 H.264),它们同时被定义为无损和有损,据我了解,无损和有损是相互排斥的:压缩算法要么丢失信息,要么不丢失信息。

怎么可能同时无损和有损呢?

运行ffmpeg -codecs 2>/dev/null| grep h264,我得到:

DEV.LS h264                 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 [...]

DEV.LS代表解码器,编码器,视频,不仅帧内压缩,有损压缩,无损压缩。

4

3 回答 3

2

Wikipedia 中检查 H.264它说:

H.264 通常用于严格数学意义上的有损压缩,尽管损失的数量有时可能难以察觉。还可以使用它创建真正的无损编码——例如,在有损编码图片中具有局部无损编码区域,或者支持整个编码是无损的罕见用例。

于 2014-09-24T09:14:43.990 回答
0

是的,它可以同时是有损和无损的。对于 H.264、MPEG 和 AVC,颜色、帧受到很大影响,并且在放大视频时会产生视觉观看问题。我还发布了一项关于它的研究 ---看看

于 2014-10-27T17:50:07.663 回答
0

@MoDJ 在评论中提到了答案。

h.264与许多其他编解码器一样,该编解码器具有编码选项。其中最主要的是恒定速率因子,又名CRF在这种情况下,FFmpeg(一种libx264用于编码 h.264/AVC 的编码器)的文档是一个很好的参考。它说:

CRF 的范围是 0-51,其中 0 是无损的,23 是默认值,51 是可能的最差质量。较低的值通常会导致更高的质量,主观上合理的范围是 17-28。考虑 17 或 18 在视觉上无损或几乎无损;它应该看起来与输入相同或几乎相同,但它在技术上不是无损的。

(...)

您可以使用 -crf 0 创建无损视频。两个有用的预设是超快或非常慢,因为快速编码速度或最佳压缩通常是最重要的因素。(...)
请注意,无损输出文件可能会很大,并且大多数基于非 FFmpeg 的播放器将无法无损解码。因此,如果兼容性或文件大小是一个问题,则不应使用无损。(...)

总结:一个特定的流不能同时是有损和无损,但是可以通过编解码器设置来调整流是有损还是无损。

于 2019-04-04T03:19:44.080 回答