视频压缩_python版本

分类: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)


修改内容