随笔 - 633,  文章 - 0,  评论 - 13,  阅读 - 48万
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

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   大话人生  阅读(95)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
历史上的今天:
2022-04-20 给图片添加文字
2022-04-20 ubuntu命令启动django
2022-04-20 ubuntu18.04配置网络
2020-04-20 django部署
2020-04-20 django函数定义上传文件路径
点击右上角即可分享
微信分享提示