首页 > 编程语言 >python从大小上裁切视频,批量对指定文件夹中的视频进行裁剪

python从大小上裁切视频,批量对指定文件夹中的视频进行裁剪

时间:2024-04-21 15:13:31浏览次数:26  
标签:files 视频 裁切 python 裁剪 crop mp4 output path

代码

 

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)

 

标签:files,视频,裁切,python,裁剪,crop,mp4,output,path
From: https://www.cnblogs.com/jingzaixin/p/18148951

相关文章

  • 82.8K Star 功能强大的语言处理的PYTHON库
    简介LangChain是一个框架,用于开发由大型语言模型(LLMs)提供支持的应用程序。langchain库是功能强大的语言处理工具,可以用于文本处理、语言分析等多种任务。本文将介绍该库的安装、特性、基本功能、高级功能、实际应用场景,并进行总结。特性多语言支持:支持多种语言的处理和分......
  • Python库、包、模块
    一、什么是库、包、模块无论是库、包、模块,其核心都在于封装了一系列的功能。1、库library,这个概念并非Python里的概念,是从C语言过来的。库这个概念其实就是一堆代码一起完成一个或多个任务。非常类似函数,但是是以文件组织在一起。2、模块module,这个概念就是Python里的概念,一个......
  • Python 潮流周刊#47:当你的老师希望你去做开源
    本周刊由Python猫出品,精心筛选国内外的250+信息源,为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等内容。愿景:帮助所有读者精进Python技术,并增长职业和副业的收入。以下是周刊全文(限免,点击链接阅读)限时免费,点击阅读以下是本期摘要(正文全文见......
  • python从时间上裁切视频(定义一个开始截取的时间,最后截取时间是总时长+1秒)
    代码:importsubprocessfromdatetimeimporttimedeltadefparse_time(time_str):"""将时间字符串解析为秒"""#如果输入是浮点数,直接返回这个数值ifisinstance(time_str,float):returntime_str#将时间字符串分割为小时、分钟和秒hour......
  • python从时间上裁切视频
    代码importsubprocessfromdatetimeimporttimedeltadefparse_time(time_str):"""将时间字符串解析为秒"""#将时间字符串分割为小时、分钟和秒hours,minutes,seconds=map(int,time_str.split(':'))#计算总秒数returntimedelt......
  • python从大小上裁切视频
    1.代码1importsubprocessdefffmpeg_crop(input_path,output_path,width,height,x,y):#构建ffmpeg命令cmd=['ffmpeg','-i',input_path,'-filter:v',f'crop={width}:{height}:{x}:{y}'......
  • 解决 macOS 下 Python 3.8 安装 mysqlclient 的问题
    环境背景Python版本:3.8macOS版本:14.4(M2芯片)在安装mysqlclient时遇到的问题我在网上找到的方案基本上都是通过brewinstallmysql-connector-c安装、修改mysql_config文件、安装openssl及gcc,这个解决方案对我并没有效果解决方案步骤一:配置环境变量#使用pkg-config......
  • Python Unittest
    1fromunittestimportTestCase2fromtriangleimportarea_of_a_triangle34classTestAreaOfTriangle(TestCase):56deftest_float_values(self):7"""Testareaswhenvaluesarefloats"""8se......
  • 回归问题求解 python---梯度下降+最小二乘法
      MSE=1/m*∑i=1m(yi−y^i)2 a=[1.,2.,3.,4.,5.,6.,7.,8.,9.]b=[3.,5.,7.,9.,11.,13.,15.,17.,19.]points=[[a[i],b[i]]foriinrange(len(a))]lr=0.001eps=0.0001m=len(......
  • C# ffmpeg m3u8 ts 视频拼接mp4
    准备拼接文件里面放的是需要拼接视频文件的路径concat_list.txt  准备代码 privatevoidCombineFile(stringfilesDir,stringtargetmp4fileName){stringbasedir=AppDomain.CurrentDomain.BaseDirectory;//ffmpeg的......