我正在尝试在 C# 中使用 gzip 流,但压缩后的文件似乎比以前大。
当我使用 .avi 和 .mkv 文件时会发生这种情况。但是如果我使用比原始文件小的 .txt 和 .html 压缩文件。
using (MemoryStream output = new MemoryStream(blockToCompress.Length))
{
using (GZipStream cs = new GZipStream(output, CompressionMode.Compress))
{
cs.Write(blockToCompress, 0, blockToCompress.Length);
}
}
我通过检查框架(从 3.5 到 4.0)解决了这个问题,而无需编辑代码。
你的代码是正确的。不幸的是,你的期望并非如此。
大多数视频和音频文件已经被严重压缩。它们将无法进一步压缩无损压缩就像 GZip 一样。事实上,您可能会稍微增加文件大小 - 每种文件格式(包括 GZip)都会带来一些开销/簿记。
如果您确实需要减小它们的大小,则需要使用有损压缩方案理解视频格式。基本上,您将删除数据,可能会降低表观质量,以换取更小的尺寸。
如果源内容未压缩,GZip 等无损压缩方案可以将文件大小减少 25-50%。包含大量重复文本 (HTML) 或英文文本(一般文本文件)的文件通常压缩得更好。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)