压缩视频会产生更大的文件

压缩视频会产生更大的文件

我一直在使用 GUI(右键单击 => 压缩)尝试压缩一个包含 3 个视频、总计 1.7gb(.H264 MP4)的 .tar。gzip、lrzip、7z 等都对文件大小没有任何影响,压缩文件夹也是 1.7 gb。

然后我尝试从命令行运行 lrzip(以防万一是 GUI 问题),并使用 -z 标志(极端压缩),这是我的输出。

在此处输入图片描述

正如压缩率所示,压缩文件夹的实际大小比原始文件夹大!我不知道为什么我没有运气,根据我读过的随机评论和官方文档(文件大于 100mb,越大越好),lrzip 应该特别有效 - 请参阅https://wiki.archlinux.org/index.php/Lrzip

为什么我无法压缩我的文件?

答案1

正如@pram在上面的评论中所说,mp4视频已经经过压缩,其他视频格式可能也在一定程度上使用了压缩。因此,尝试压缩它们不会导致尺寸减小(如果有的话)(这至少在一定程度上也适用于图片和音乐)。在这种情况下,看起来元数据(对于压缩文件本身)可能导致了尺寸的增加。唯一一种压缩格式可能(这是一种强大的力量)会导致 xz 有所减少。

另外,如果您想减小这些视频的大小,请考虑使用 Handbrake 之类的软件重新编码视频。

答案2

其实,文件已经被压缩并不是关键问题。关键是:一般而言,压缩只有当数据中存在某种冗余时才会起作用。对于未压缩的文件来说,情况几乎总是如此——不过,这并不明显什么冗余是。通用压缩算法主要针对文本文件中显而易见的东西:许多单词不只出现一次,而是以相同的形式出现很多次,也许短语可以组合,等等。算法可以很好地将其推广到从 ASCII 编码的电话号码列表到中文诗歌到二进制机器代码的任何东西,但它们不可能适用于任何类型的数据。具体而言,媒体文件在概念上模拟数据,以嘈杂的数字表示形式呈现。这意味着,实际上根本没有任何类型的文本文件冗余:某些动机可能会重复出现,但传感器噪声的配置总是略有不同。这就是为什么所有压缩图像/AV 格式都使用一些巧妙选择的转换作为其第一个编码步骤,通常基于离散余弦变换或者小波。这些转换大致将图片部分和噪声部分移动到不同的位置,因此它们可以很好地分离,并且通过有损压缩,您只保留您认为最“重要”的信息,其中不包括噪声,而“好信息”则有很多冗余。(这不是它的实际工作原理,但有点像。)

如果通用压缩机使用这些变换,效果就会相反:大多数数字的信息实际上会被错误地归类为某种噪音,因为它缺乏模拟信号中的“平滑”结构。而且,在有损视频压缩之后,显然再也找不到模拟平滑度或数字重复性了(如果存在,编解码器将使用另一个 bzip 阶段或其他东西!)

答案3

您运气不佳的原因是 mp4 已经压缩,您无法进一步压缩它。您所做的只是将压缩格式的标头信息添加到文件中。

由于文件已被压缩,并且您无法进一步压缩它们,这会导致文件大小增加,因为您所做的只是保留相同的信息并添加更多字节的标头信息。

答案4

如果你想压缩这些文件,你将必须降低质量。

如果不知道这些文件有多长、是什么格式和内容类型,就很难判断这些文件是否有空间可以缩小而不会造成明显的质量损失。

1080p 视频的蓝光光盘大小通常在 25GB 以上,因此您已经达到了 H.264 的最佳质量大小比。

您可以尝试使用ffmpegavconv转换文件。

你可以从ffmpeg -i input_file.mp4 -preset slower -crf 20 -c:a copy output_file.mp4

anconv命令的工作方式类似。

  • 增加该-crf值会减小文件大小和质量,我不建议高于 25。

  • 您可以将预设更改为slow或以提高速度,但与或相比,medium您的文件大小会受到影响(如果您非常有耐心!)。slowerveryslow

  • 更多设置可以在这里找到:http://mewiki.project357.com/wiki/X264_Settings

  • 我建议远离大多数预设,因为-tune除了例外,预设提供了合理的默认值。

  • 如果您的内容是电影,请尝试降噪器-vf hqdn3d与使用高-crf值相比,您可以提高视觉质量。

  • 缩小-vf scale=-1:720720p 和-vf scale=-1:480480p 的内容以提高编码速度并保持质量。

相关内容