以下内容中提到ffmpeg 文档。
ffmpeg 调用 libavformat 库(包含解复用器)来读取输入文件并从中获取包含编码数据的数据包...然后将编码数据包传递给解码器...解码器生成未压缩的帧(原始视频/ PCM 音频/ ...),可以通过过滤进一步处理...
这是否意味着您始终可以从所有压缩格式/编解码器(如 h.264)中提取原始大尺寸视频?
答案1
这意味着通过压缩数据,然后对其进行解压缩,您最终会得到一个近似于原始数据的结果(希望)可以接受。
使用有损压缩技术存储图像和视频通常没有问题,因为人类不太擅长感知图像中的细节 - 例如,我们的大脑可以仅凭上下文来填充大量细节(因为我们的眼睛只有中心的一小块区域是“高分辨率"),而且我们的眼睛对绿色的强度比对红色或蓝色更敏感(这解释了RGB565中的分配)。
因此,当你说:
这是否意味着您始终可以从所有压缩格式(如 mp4)中提取原始的大尺寸视频?
你只问了一个问题,但却留下了很多容易引起误解的空间。
- 我们能否从使用有损技术压缩的视频中提取原始的、像素完美的图像?
- 不
- 我们能否提取使用有损技术压缩的视频的高质量单帧并用作静态图像?
- 可能不会- 场景中的运动会导致更多的伪影,而静态场景通常会随着时间的推移而变得越来越好。
- 我们能否提取原始大小的图像,看起来“合理的“对人类来说?
- 是的- 对于给定的“定义合理的“
这种不完美的结果图像将具有“压缩伪影”如下面夸张的例子所示:
由于评论也主要关注音频质量,因此发生了完全相同的事情。但是,音频是一种带宽明显较低的介质,这使得无损编解码器变得实用(例如弹性计算)。
从 PCM / WAV → MP3 → PCM 转换将产生一个输出 PCM 文件,该文件具有由 MP3 编码/解码过程引入的伪影 - 这些伪影无法被删除。
此外,连接编解码器将允许每个编解码器引入自己的工件,并且应用编解码器的顺序会对输出产生显著的影响。
转换 PCM → MP3 → OGG vorbis → Opus 是不是与 PCM → Opus 相同,因为每个中间编解码器都是有损的。
我制作了一个示例音频文件,将其呈现为另一个夸张的例子。这是“的前 30 秒今晚“ 经过 ”69只眼睛",每 5 秒交替进行以下连锁反应:
- CD → FLAC → 作品
- CD → FLAC → MP3 → Vorbis → Opus
这里的效果非常显著,高频(即高音钹)几乎完全从音频中去除,并且具有明显的通道(左/右)相互作用,这在开始时尤其明显。
答案2
答案3
这是否意味着您始终可以从所有压缩格式(如 mp4)中提取原始的大尺寸视频?
不。你误解了那句话。
您无法显示压缩图像,就像您无法读取压缩文本或读取使用 ZIP 压缩的文件(除非先解压)。要显示任何图像,您必须以某种方式将其逐个像素地解压并显示在内存中。
这并不意味着未压缩的图像将与原始图像完全相同 - 这取决于所使用的编解码器。据我所知,没有常用的无损编解码器。有损编解码器旨在尽可能接近原始图像,使未压缩的视频在正常情况下无法区分,即以预测的分辨率和帧速率播放时。当查看压缩静态图像(即帧速率=0)时,您肯定会看到伪影,除非压缩期间的比特率设置得过高(即产生过大的输出文件)(这个答案与我的作品有某种关联)。
顺便说一句,MP4 只是一个文件格式,即它告诉您压缩数据如何存储在文件中,但不能确定它是如何压缩的。MP4 可以与多种编解码器配合使用。H.264 可能是 MP4 最流行的视频编解码器,但不要引用我的话。我猜音频通常用 AAC 压缩。
答案4
这是一个非常常见的错误。
您可以从有损格式转换为无损格式,但是损害已经造成。
无损输出文件将显示所有损坏(受损细节、添加瑕疵),这就是您不喜欢有损格式的原因。您无法恢复这些损坏。
唯一的选择是联系出版商,看看他是否还拥有原始的无损文件,并愿意以某种方式将其上传给您。
不存在这样的事情增强按钮。警告:TVtropes