首页 > 编程语言 >python裁切视频后三秒

python裁切视频后三秒

时间:2024-04-28 18:55:56浏览次数:29  
标签:裁切 python 三秒 video time output duration path folder

代码:

 

import subprocess
from datetime import timedelta
import os

def parse_time(time_str):
    """将时间字符串解析为秒"""
    hours, minutes, seconds = map(int, time_str.split(':'))
    return timedelta(hours=hours, minutes=minutes, seconds=seconds).total_seconds()

def ffmpeg_get_duration(input_path):
    """获取视频的总时长(秒)"""
    result = subprocess.run(['ffprobe', '-v', 'error', '-show_entries', 'format=duration', '-of', 'default=noprint_wrappers=1:nokey=1', input_path], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
    duration = float(result.stdout.decode('utf-8').strip())
    return duration

def ffmpeg_trim(input_path, output_path, duration):
    """使用ffmpeg裁剪视频的最后3秒"""
    # 计算裁剪的结束时间(视频时长 - 3秒)
    end_time_sec = duration - 3
    start_time_sec = 0

    cmd = [
        'ffmpeg',
        '-i', input_path,
        '-ss', str(start_time_sec),
        '-to', str(end_time_sec),
        '-c', 'copy',
        output_path
    ]

    try:
        subprocess.run(cmd, check=True)
    except subprocess.CalledProcessError as e:
        print(f"An error occurred while processing the video: {e}")

# 指定包含视频文件的文件夹路径
video_folder_path = r'E:\edge下载\81'

# 遍历文件夹中的所有视频文件
for video_file in os.listdir(video_folder_path):
    if video_file.lower().endswith(('.mp4', '.avi', '.mov', '.mkv')):  # 根据需要添加或删除文件类型
        # 完整的视频文件路径
        video_path = os.path.join(video_folder_path, video_file)
        # 输出文件路径,这里假设输出文件与原文件同名,但放在不同的文件夹中
        output_folder_path = r'E:\edge下载\81_trimmed'
        if not os.path.exists(output_folder_path):
            os.makedirs(output_folder_path)
        output_path = os.path.join(output_folder_path, video_file)

        # 获取视频的总时长
        original_duration = ffmpeg_get_duration(video_path)

        # 调用函数进行时间裁剪
        ffmpeg_trim(video_path, output_path, original_duration)

        print(f"Trimmed the last 3 seconds of {video_file} successfully.")

 

标签:裁切,python,三秒,video,time,output,duration,path,folder
From: https://www.cnblogs.com/jingzaixin/p/18164318

相关文章

  • 第一章 python基础
    1.变量1.1变量的概念可以改变的量就是变量,实际上指代码的是内存的一块空间在内存中,变量默认一次只能指向一个值,当一个值没有任何变量指向的时候,内存会自动把数据从内存释放1.2变量的命名字母、数字、下划线,首字符不能为数字严格区分大小写,且不能使用关键字变量命......
  • Python-PyQt5接口压测工具分享
    1、页面介绍  2、运行效果 ......
  • python主题LDA建模和t-SNE可视化
    原文链接:http://tecdat.cn/?p=4261原文出处:拓端数据部落公众号 使用潜在Dirichlet分配(LDA)和t-SNE中的可视化进行主题建模。本文中的代码片段仅供您在阅读时更好地理解。有关完整的工作代码,请参阅完整资料。我们将首先介绍主题建模和t-SNE,然后将这些技术应用于两个数据集:20个......
  • python多个txt合并
    txt数据是这样: 内容: #!usr/bin/envpython#-*-coding:utf-8-*-"""@author:Suyue@file:lianxi.py@time:2024/04/28@desc:"""#-*-coding:utf-8-*-#os模块中包含很多操作文件和目录的函数importos#适用于位置任意的情况,不要求同一目录下meragefile......
  • python 打包成exe可执行文件
    一、pyinstall打包代码编写完成,如何在没有python环境的电脑上运行?编写了一个GUI程序,如何把文件打包好,发给别人直接使用?其实最简单的办法就是把.py源文件,打包成可执行程序员exe文件,别人直接双击exe文件就可以运行了。二、最简单样例1、安装依赖包pipinstallpyinstaller2、编......
  • python将图片添加到视频底层中(提高处理单个视频的效率)
    代码: importcv2importnumpyasnpimportosimportrandomfromconcurrent.futuresimportThreadPoolExecutor#图片文件夹路径image_folder_path=r'F:\jingguan\tu'#视频文件所在的文件夹路径video_folder_path=r'F:\jingguan\yuan'#输出视频文件夹路径ou......
  • 支持向量机的算法原理与Python实现
    支持向量机(SupportVectorMachine,SVM)是一种强大的监督学习算法,用于分类和回归任务。其核心思想是在高维空间中找到一个最优的超平面,将不同类别的数据分开。SVM的关键在于找到支持向量,即离超平面最近的数据点,这些支持向量决定了超平面的位置和方向。SVM通过最大化支持向量与超平面......
  • Python工具箱系列(五十二)
    haod使用EXIF信息对相片进行定位打开华为手机的图库,你会发现已经自动进行人脸识别,相片的归类与聚合等工作,甚至于还可以进行一步根据场景来搜索。当然这些肯定是在用户同意的前提下,对图片进行了操作与计算。事实上,当拿出手机进行拍照的这一刻,很多信息已经记录在案,这就是EXIF信息。......
  • day26-python操作MySQL和实战
    1.事务innodb引擎中支持事务,myisam不支持。CREATETABLE`users`(`id`int(11)NOTNULLAUTO_INCREMENTPRIMARYKEY,`name`varchar(32)DEFAULTNULL,`amount`int(11)DEFAULTNULL)ENGINE=InnoDBDEFAULTCHARSET=utf8;例如:李杰给武沛齐转账100,那就会......
  • python修改pip的cache默认文件夹
    之前一直没管,默认会在c盘,越来越大修改pip.ini之前写过一篇关于pip.ini的文章https://www.cnblogs.com/qcy-blog/p/17789058.htmlcache文件夹要存在[global]cache-dir=D:\pip\cache查看是否更改成功pipcachedir......