使用标准库压缩 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。它是命令行应用程序 ffmpeg 的包装器,可让您使用更好的编码器(如 h265)对 mp4 进行转码。
有没有办法用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。它是命令行应用程序 ffmpeg 的包装器,可让您使用更好的编码器(如 h265)对 mp4 进行转码。