有没有一种方法可以用python的标准库有效地压缩视频文件?我写了一个快速脚本来实现这一点,但它几乎没有压缩视频文件。看看:
import sys
import zlib
with open('Some_Video.mp4', 'rb') as f:
original_data = f.read()
original_size = sys.getsizeof(original_data)
compress_data = zlib.compress(original_data, level=5)
compressed_size = sys.getsizeof(compress_data)
print(original_size)
print(compressed_size)
这就是输出:
2793876
2788282
为什么差异如此之小,如何进一步压缩?
视频文件已压缩。您不能进一步压缩它们,至少不能显著压缩。
您唯一的选择是解压缩,然后使用更有效的压缩器(例如HEVC(重新压缩它们。
我认为文件大小的小幅减小是由于zlib是一个无损压缩库,而mp4已经是一种压缩格式,因此几乎没有改进的余地。
从标准库来看,lzma声称拥有最好的压缩比。但请记住,它也是无损的,所以我不会期望有那么大的差异。
我建议您使用第三方lib-ffmpeg-python。它是命令行应用程序ffmpeg的包装器,可以使用h265等更好的编码器对mp4进行代码转换。