一个Python视频压缩脚本,效率很高
这个脚本需要安装 ffmpeg:
brew install ffmpeg
访问 ffmpeg 的官方下载页面(https://ffmpeg.org/download.html),选择适合的版本进行下载和安装,并将安装路径添加到系统环境变量中。
一部分可调整参数:
-i {input_file}:指定输入文件的路径,这是必需的输入参数。
-crf :控制视频的质量,值越小视频质量越高,文件越大。常见的取值范围一般是 0 到 51,默认值是 23。例如,如果您想要更高质量的视频,可以将 28 减小为 20 。
-vcodec :指定视频编码器。除了 libx264 ,还可以选择其他编码器,如 libx265 等。
-preset :用于指定编码的预设速度和质量平衡。常见的预设选项包括 ultrafast 、superfast 、veryfast 、faster 、fast 、medium 、slow 、slower 、veryslow 。例如,如果您更注重编码速度,可以选择 ultrafast ;如果更注重压缩质量,可以选择 veryslow 。
-b:v :直接指定视频的码率。例如,-b:v 2M 表示视频码率为 2Mbps 。
-r :设置帧率。例如,-r 30 表示设置帧率为 30 帧每秒。
-s :指定视频的分辨率。例如,-s 1280x720 表示设置视频分辨率为 1280x720 。
import subprocess
import time
# 定义一个用于压缩视频的函数
def compress_video(input_file, output_file):
"""
这个函数用于压缩指定的视频文件
参数:
input_file (str):要压缩的输入视频文件路径
output_file (str):压缩后的输出视频文件路径
"""
# 记录开始时间
start_time = time.time()
# 定义执行的命令,使用 ffmpeg 进行视频压缩
command = f"ffmpeg -i {input_file} -vcodec libx264 -crf 40 -preset ultrafast {output_file}"
# 执行命令
subprocess.run(command, shell=True)
# 记录结束时间
end_time = time.time()
# 计算耗时并转换为分钟
elapsed_time = ( end_time - start_time ) / 60
# 打印压缩完成的信息及耗时
print(f"视频压缩完成,耗时:{elapsed_time}分钟")
# 定义输入和输出文件路径
input_file = " "
output_file = " "
# 调用函数进行视频压缩
compress_video(input_file, output_file)