1.代码1

import subprocess

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)

x1 = 240  # 裁剪区域左上角的x坐标
y1 = 0   # 裁剪区域左上角的y坐标
x2 = 1680  # 裁剪区域右下角的x坐标
y2 = 1080  # 裁剪区域右下角的y坐标
# 要裁剪的视频文件路径
video_path = r'E:\edge下载\80-\80-难度等级.mp4'
# 裁剪后的视频文件路径
output_path = r'E:\edge下载\80-\80-难度等级_caihou.mp4'

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

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

 

2.代码2

from moviepy.editor import VideoFileClip

# 要裁剪的视频文件路径
video_path = r'E:\edge下载\80-\80-难度等级.mp4'
# 裁剪后的视频文件路径
output_path = r'E:\edge下载\80-\80-难度等级_caihou.mp4'

# 加载视频
video = VideoFileClip(video_path)

# 定义裁剪区域的左上角坐标 (x1, y1) 和右下角坐标 (x2, y2)
# 这些坐标是基于视频原始分辨率的
x1 = 240  # 裁剪区域左上角的x坐标
y1 = 0   # 裁剪区域左上角的y坐标
x2 = 1680  # 裁剪区域右下角的x坐标
y2 = 1080  # 裁剪区域右下角的y坐标

# 使用crop方法裁剪视频
cropped_video = video.crop(x1=x1, y1=y1, x2=x2, y2=y2)

# 将裁剪后的视频写入文件
cropped_video.write_videofile(output_path)

# 释放资源
video.close()
cropped_video.close()

 

posted on 2024-04-20 20:44  大话人生  阅读(250)  评论(0)    收藏  举报