我有一个文件夹,里面有各种视频,我想压缩它们,以便与网络连接不稳定的人分享。我试过7z、gzip、tar、lzma、xz,还有许多其他压缩工具,但它们只能减少 20-30mb 的大小。我尝试使用它们ffmpeg
来压缩和重新编码视频,但速度真的很慢。
我也尝试压缩.iso文件,但结果是一样的。
我知道压缩涉及很多方面,但有什么简单的方法可以最小化文件大小?最好使用 Linux 命令行工具。
答案1
这取决于您想要压缩什么。
如果相关视频文件已经是压缩格式,那么除了以较低的数据速率重新编码(降低视频分辨率或降低音频 kbps 速率)外,您可能别无选择。您再次提到重新编码太慢,因此可能不是一个选择。
压缩算法很大程度上依赖于数据中的重复序列。一种常见的方案是构建字典来缩短重复序列。
例如,考虑字符串“eabcdabcdabcd”。
可以通过设置字典规则“f = abcd”来进行压缩,然后将字符串表示为“efff”。
现在考虑字符串“abcdefghijkl”。
没有重复的序列,因此无法用字典方法进行压缩。
压缩文件格式已经删除了许多重复内容;因此进一步压缩它们可能不会产生更多好处。在某些情况下,压缩压缩文件会增加其大小(ZIP 格式的常见现象)。
答案2
压缩图像和视频比压缩文本文件“更复杂”,因为像 zip 等常规压缩方法不会给您带来很好的结果,正如您自己注意到的(user1258361 的评论在这里给了您一些见解)。
我建议降低分辨率,这很简单,而且可以显著减小尺寸,但缺点是会降低图片和视频的质量。有各种工具可以通过 CLI(命令行界面)降低分辨率,这个问题已经被问过很多次了,例如这个用于图像。只需开始搜索并尝试一下,如果遇到具体问题,您可以提出另一个问题。注意:根据您的硬件,这可能不是很快(但也不是“好的”压缩算法,压缩越多,计算就越多 - 用外行的话来说)。
压缩而不造成(显著)质量损失更为复杂,因为选择压缩方法取决于图像/视频的内容以及您对质量的要求。您需要使用不同的压缩格式重新编码文件。有几种方法无损压缩但它们可能不会给你足够的结果。据我所知,这里没有通用的答案。
PS. 软件建议超出了超级用户的范围。