代码

 

import subprocess
import os
def get_all_mp4_files(directory):
    """获取指定文件夹下所有的MP4文件"""
    mp4_files = []
    # 遍历指定目录及其子目录中的文件
    for root, dirs, files in os.walk(directory):
        for file in files:
            # 检查文件扩展名是否为.mp4
            if file.lower().endswith('.mp4'):
                # 将文件的完整路径添加到列表中
                mp4_files.append(os.path.join(root, file))
    return mp4_files





def ffmpeg_crop(input_path, output_path, width, height, x, y):
    # 构建ffmpeg命令
    cmd = [
        'ffmpeg',
        '-i', input_path,
        '-filter:v', f'crop={width}:{height}:{x}:{y}',  # 注意这里的参数顺序
        '-c:a', 'copy',  # 确保-c:a后面紧跟的是copy,而不是output_path
        output_path
    ]

    # 执行ffmpeg命令
    subprocess.run(cmd, check=True)





# 要裁剪的视频文件路径
genmulu = r"F:\陈惟\blender\blender材质篇\yuan"
video_list = get_all_mp4_files(directory=genmulu)

for one in video_list:

    x1 = 240  # 裁剪区域左上角的x坐标
    y1 = 0  # 裁剪区域左上角的y坐标
    x2 = 1680  # 裁剪区域右下角的x坐标
    y2 = 1080  # 裁剪区域右下角的y坐标
    # 要裁剪的视频文件路径
    video_path = one
    # 裁剪后的视频文件路径
    output_path = r'%s.caiqiehou.mp4'% str(one)

    # 定义裁剪区域的宽度和高度
    crop_width = x2 - x1  # 裁剪区域的宽度
    crop_height = y2 - y1  # 裁剪区域的高度

    # 使用示例
    ffmpeg_crop(video_path, output_path, crop_width, crop_height, x1, y1)

 

posted on 2024-04-21 15:01  大话人生  阅读(162)  评论(0)    收藏  举报