分类:N05_python
import subprocess import os def compress_video(input_file, output_file, codec="libx264", crf=23, resolution=None): """ 压缩视频文件 :param input_file: 输入视频文件路径 :param output_file: 输出视频文件路径 :param codec: 使用的编解码器,默认为 "libx264"(H.264) :param crf: 恒定速率因子,范围从 0 到 51,默认值为 23。值越小,输出质量越高,文件也越大。 :param resolution: 输出视频的分辨率,格式为 "width:height",例如 "1280:720"。如果为 None,则保留原始分辨率。 """ command = [ "ffmpeg", "-i", input_file, "-vcodec", codec, "-crf", str(crf), "-movflags", "frag_keyframe+empty_moov", "-pix_fmt", "yuv420p", "-f", "mp4" # 显式指定输出格式为 mp4 ] if resolution: command.extend(["-vf", f"scale={resolution}"]) # 调整视频分辨率 command.append(output_file) # subprocess.run(command, check=True) try: subprocess.run(command, check=True) print("压缩完成!") except subprocess.CalledProcessError as e: print("压缩失败:", e) if __name__ == "__main__": # input_video = "path_to_your_input_video.mp4" # 替换为你的输入视频文件路径 # output_video = "compressed_video.mp4" # 压缩后的视频文件路径和名称 input_video = "E:/kitchen_copy.mp4" # 输入视频文件路径 output_video = "E:/kitchen_copy_compressed.mp4" # 输出视频文件路径 compress_video(input_video, output_video)