使用标准库压缩 python 中的视频文件

Compressing a video file in python with the standard library

有没有办法用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 声称具有最佳压缩率。但请记住,它也是无损的,所以我预计不会有太大差异。

推荐使用第三方库ffmpeg-python。它是命令行应用程序 ffm​​peg 的包装器,可让您使用更好的编码器(如 h265)对 mp4 进行转码。