我可以通过 SSH 访问服务器,通过 SFTP 或 HTTP 从服务器下载文件。我想下载 4.4GB 的 .mkv 文件,但带宽有限。
我使用了zip
、gzip
和p7zip
,但压缩后文件始终为 4.4GB。在摆弄了一些 CLI 参数后,我一次尝试将文件减小到 4.3GB。据我了解,我拥有的视频文件是压缩的 h.264 文件。我不明白为什么我不能进一步压缩它(也许是另一个堆栈交换论坛的问题)
有什么方法可以在字节级别进行压缩,以便压缩工具与文件内容无关(我认为这些其他工具无论如何都是如此,但它们不起作用)。
是否有其他方法可以使用少于 4.4GB 的内存来填充此内容?我没有考虑目标文件大小,但例如 4.3GB 是没有意义的(仅减少 2-3%~)。
答案1
您的 h264 流可能已经被高度压缩。通过尝试进一步压缩它,您实际上可能会稍微增大文件大小(通过添加标头等)。您不能仅仅继续将文件压缩到您喜欢的大小而不影响其他地方,gzip
其他压缩器也不是神奇的。
可能实现此目的的唯一方法是将 h264 流重新编码为较低的比特率。
答案2
压缩利用了这样一个事实:数据中存在可以优化并以不同方式指示的模式。这会导致模式数量大幅减少(因为如果保留了模式,则原始压缩可能会优化它,而不是将其保留在最终文件中),这意味着另一轮压缩无法进一步执行尺寸减小。