专治爱剪辑的片头片尾的脚本(Python)

专治爱剪辑的片头片尾的脚本(Python)

起因

最近看到很多由爱剪辑做的视频,片头和片尾的展示实在影响视频的美观性,所以想着。如何用Python去实现。于是写了这个脚本。

依赖

这里需要一个Python的库叫moviepy,专门用来处理视频的。

思路讲解

首先我们观察一般爱剪辑剪过的视频,有普遍的特征,也就是他的片头由6s的展示片段。片尾有6.5s的展示片段。我们需要的就是把前6s和后6.5s的时间视频减掉。

moviepy中的相关方法

视频时间获取

clip=VideoFileClip(文件名).subclip(开始时间,结束时间)
clip.duration #这个就是视频的时间

视频剪辑

clip=VideoFileClip(文件名).subclip(开始时间,结束时间)

视频保存
clip.write_videofile(文件名)

python中用到的相关方法

获取文件的后缀名

file_format=os.path.splitext(filename)[1]

获取文件名(不带后缀)

file_name=os.path.splitext(filename)[0]

全部代码

#!/usr/bin/env python # coding=utf-8 from moviepy.editor import VideoFileClip import os import sys import argparse import pathlib def get_file_times(filename):        u"""
       获取视频时长(s:秒)
       """        clip = VideoFileClip(filename)
       return clip.duration def video_process(filename): u"""
     剪辑的区间在6到视频的总时长-6.5
       """      clip=VideoFileClip(filename).subclip(6,int(get_file_times(filename))-6.5)
     file_name=os.path.splitext(filename)[0] #获取文件名(不带后缀)      clip.write_videofile(file_name+"_fuck.mp4") #将文件变成文件名+fuck格式 def check_dir(path):    u"""
   用来判断是文件,还是文件夹的方法
       """     my_path=pathlib.Path(path)
    ex = my_path.exists()
    if ex:
        is_dir = my_path.is_dir()
        is_file = my_path.is_file()
    else:
        is_dir=False         is_file=False     return ex,is_dir,is_file def fuck_dir(filepath):            u"""
                文件夹的处理方法
       """     pathDir =  os.listdir(filepath)
    for allDir in pathDir:
        filepath = os.path.abspath(filepath)
        child = os.path.join('%s/%s' % (filepath, allDir))
        file_format=os.path.splitext(child)[1]
        if file_format == ".mp4":
            print(child)
            video_process(child) def fuck_file(path):    u"""
    文件的处理方法
       """     print("fuck from file")
    filepath = os.path.abspath(path)
    file_format=os.path.splitext(filepath)[1]
    if file_format == ".mp4":
        video_process(path)
    pass parse=argparse.ArgumentParser(description="fuck ajj") #解析命令行参数 parse.add_argument("-i","--input",type=str,help="video item")
args = parse.parse_args()
video_item=args.input
ex,is_dir,is_file=check_dir(video_item)
print(ex,is_dir,is_file) if not ex:
    print("the file is not exist!!!!!!\nPlease reinput") else:
    if is_dir:
       fuck_dir(video_item)
    elif is_file:
        fuck_file(video_item)

用法

python fuck_ajj.py -i 你需要处理视频的路径

当然也可以处理整个文件夹下所有的视频,只需要将路径作为参数传入就可以了

2,265 ° 来自:PC 重庆市
上一篇: 12306 自动抢票软件源码
下一篇: [Python] python爬虫人物图片
您可能还喜欢这些:

亲,沙发正空着,还不快来抢?

评论审核未开启 记住我的个人信息 回复后邮件通知我
Back to Top