首页 > 编程语言 >用python写一个脚本:将指定目录下及其所有子文件夹下的视频文件按中间时间切分成两部分

用python写一个脚本:将指定目录下及其所有子文件夹下的视频文件按中间时间切分成两部分

时间:2024-10-04 09:44:45浏览次数:8  
标签:python directory 文件夹 video path 视频文件 output os dir

代码:

import os
from moviepy.editor import VideoFileClip

def split_video(video_path, output_dir):
    # 加载视频文件
    clip = VideoFileClip(video_path)
    duration = clip.duration

    # 计算中间时间点
    midpoint = duration / 2

    # 创建输出目录
    if not os.path.exists(output_dir):
        os.makedirs(output_dir)

    # 切分视频
    part1 = clip.subclip(0, midpoint)
    part1_filename = os.path.join(output_dir, os.path.basename(video_path).split('.')[0] + '_part1.mp4')
    part1.write_videofile(part1_filename, codec='libx264', audio_codec='aac')

    part2 = clip.subclip(midpoint, duration)
    part2_filename = os.path.join(output_dir, os.path.basename(video_path).split('.')[0] + '_part2.mp4')
    part2.write_videofile(part2_filename, codec='libx264', audio_codec='aac')

    print(f"视频 {video_path} 已切分为两部分: {part1_filename} 和 {part2_filename}")

def split_videos_in_directory(directory, output_dir):
    for root, dirs, files in os.walk(directory):
        for file in files:
            if file.lower().endswith(('.mp4', '.avi', '.mov', '.mkv')):
                video_path = os.path.join(root, file)
                split_video(video_path, output_dir)

# 指定要处理的目录
source_directory = r'C:\剪映导出\yuan'
# 指定输出目录
output_directory = r'C:\剪映导出\qie'

split_videos_in_directory(source_directory, output_directory)

 

标签:python,directory,文件夹,video,path,视频文件,output,os,dir
From: https://www.cnblogs.com/jingzaixin/p/18446345

相关文章

  • 2023-11-25 Matlab和Python在气象中的常用代码 180401
    目录画图横坐标添加月份PythonMatlab画图横坐标添加月份Pythonimportmatplotlib.pyplotaspltimportpandasaspdimportnumpyasnp#准备时间和温度数据start_date=pd.to_datetime('1996-12-01')#thenextdateend_date=pd.to_datetime('1998-12-01')#the......
  • python基础(二)之字符串
    字符串的定义Python中的字符串可以使用单引号、双引号和三引号(三个单引号或三个双引号)括起来字符串的引号嵌套单引号定义法,可以内含双引号双引号定义法,可以内含单引号可以使用 \转义特殊字符来解除引号效用,变成普通字符串字符串的拼接和重复使用“+”号连接字符串变量......
  • Python异常处理:让你的代码更稳健的魔法
    引言:你是否曾经在代码中迷失?想象一下,你正在编写一个重要的Python程序,突然间,屏幕上弹出一条错误信息,仿佛一只无形的手将你的努力撕得粉碎。你是否曾经感到无助,甚至想要放弃?根据统计,程序员在开发过程中,约有70%的时间都在处理错误和异常。可见,异常处理不仅是编程的“必修课”,更是......
  • 用Python实现运筹学——Day 9: 线性规划的灵敏度分析
    一、学习内容1.灵敏度分析的定义与作用灵敏度分析(SensitivityAnalysis)是在优化问题中,分析模型参数变化对最优解及目标函数值的影响。它帮助我们了解在线性规划模型中,当某些参数(如资源供应量、成本系数等)发生变化时,最优解是否会发生变化,以及这种变化的幅度。灵敏度分析的......
  • 用Python实现运筹学——Day 10: 线性规划的计算机求解
    一、学习内容1.使用Python的scipy.optimize.linprog进行线性规划求解scipy.optimize.linprog是Python中用于求解线性规划问题的函数。它实现了单纯形法、内点法等算法,能够处理求解最大化或最小化问题,同时满足线性约束条件。线性规划问题的形式:线性规划问题可以描......
  • python多进程debug
    代码调试问题阐述最近遇到一个pythondebug多进程的问题有一个进程A,这个进程会fork出8个进程B,forkjoin结束后,又会fork出8个进程A。假设按时间有序,我就只想断fork出的第一个B和第一个进程A,怎么做?(breakpointjustbreakonlyonce)类似于java多线程调试的意思,只断一个线程,all-......
  • 基于selenium的爬取dblp论文的python爬虫
    出于阅读文献的需要,导师让我写一个能够爬取dblp上文献资料的爬虫,话不多说,开学。学习路径总结前端基本知识request库与bs库目标特征,规划爬取步骤动态加载的应对方法-selenium前端基本知识前端开发是指创建Web页面或应用程序用户可以与之交互的部分。前端开发主要涉及三种......
  • Python并发编程(1)——Python并发编程的几种实现方式
    左手编程,右手年华。大家好,我是一点,关注我,带你走入编程的世界。公众号:一点sir,关注领取python编程资料Python并发编程是指在Python中编写能够同时执行多个任务的程序。并发编程在任何一门语言当中都是比较难的,因为会涉及各种各样的问题,在Python当中也不例外。Python提供了多......
  • 【艾思科蓝】Python数据分析与可视化实战:从入门到进阶
    【IEEE出版|会后3-4个月EI检索】第三届云计算、大数据应用与软件工程国际学术会议(CBASE2024)_艾思科蓝_学术一站式服务平台更多学术会议请看:学术会议-学术交流征稿-学术会议在线-艾思科蓝 目录引言一、Python数据分析入门1.Python数据分析环境搭建2.数据读取与预......
  • python3 队列的使用
    在leetcode如下题目中使用队列637.二叉树的层平均值:#Definitionforabinarytreenode.#classTreeNode:#def__init__(self,val=0,left=None,right=None):#self.val=val#self.left=left#self.right=rightclassSolutio......