我已经看到,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代表解码器,编码器,视频,不仅仅是帧内压缩,丢失压缩,无损压缩。
发布于 2014-09-24 09:14:43
在H.264维基百科上登记,它说:
H.264通常用于严格的数学意义上的有损压缩,尽管损失的数量有时是不可察觉的。使用它创建真正的无损编码也是可能的,例如,在有损编码的图片中具有本地化的无损编码区域,或者支持整个编码是无损的罕见用例。
发布于 2014-10-27 17:50:07
是的,它既可以是无损的,也可以是无损的。当涉及到H.264,MPEG和AVC时,颜色、帧都会受到很大的影响,在放大视频时会造成视觉上的问题。我还发表了一篇关于它的研究报告-- 看看这个
发布于 2019-04-04 03:19:44
@MoDJ在评论中提到了这一答复。
h.264编解码器和许多其他编解码器一样,有编码选项。其中最主要的是恒速因子,也就是CRF。来自FFmpeg的文档 (一个使用libx264编码H.264/AVC的编码器)在这种情况下是一个很好的参考。上面写着:
CRF标度的范围是0-51,其中0是无损的,23是默认的,51是最坏的质量。一个较低的值通常会导致更高的质量,一个主观上理智的范围是17-28.考虑17或18在视觉上是无损的或几乎是这样的;它应该看起来与输入相同或几乎相同,但它在技术上并不是无损的。 (...) 您可以使用-crf 0创建无损视频。这方面的两个有用的预设是超快或非常慢,因为快速编码速度或最佳压缩通常是最重要的因素。(...) 请注意,无损输出文件可能是巨大的,大多数非FFmpeg的玩家将无法解码无损。因此,如果兼容性或文件大小存在问题,则不应使用无损。(...)
总之:一个特定的流不能同时具有无损和无损的特性,但是一个流是有损的还是无损的,可以通过编解码器的设置来调整。
https://stackoverflow.com/questions/26012966
复制相似问题