提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

提示:这里可以添加本文要记录的大概内容:

生活不易,兼职小说推文生活,市面上的混剪软件都收费,老手艺人自己搞个小工具自己玩。记录一下自己的小工具,所有代码由AI生成,我本人只做审核和改错,不喜欢请勿喷。


提示:以下是本篇文章正文内容,下面案例可供参考

一、moviepy是什么?

moviepy 就是一个专门用来做视频编辑的 Python 工具库

二、使用步骤

1.安装及引用

pip install moviepy==1.0.3

代码如下(示例):

import os
import random
from datetime import datetime
from moviepy.editor import VideoFileClip, concatenate_videoclips

2.核心代码

代码如下(示例):

import os
import random
from datetime import datetime
from moviepy.editor import VideoFileClip, concatenate_videoclips
print("运行2")
MAX_SECOND = 360 ;#拼接视频5分钟长
# ========== 路径配置 ==========
#视频文件夹路径
#获取当前时间
now_time=datetime.now().strftime("%Y-%m-%d_%H_%M_%S")
#输出地址
out_path = r"D:\python\PythonApplication1\PythonApplication1\output\\"+now_time+".mp4"

def vide_marge(base,out):
    #设置视频最大时长
    files = []
    for item in os.listdir(base):
      full_path = os.path.join(base, item)
    # 判断是不是【文件】,排除文件夹
      if os.path.isfile(full_path):
        files.append(item)
    #拼接文件地址和文件名称
    #我的视频文件统一命名为v1....v22....
    video_paths=[]
    for i in range(len(files)):
        file_name = f"v{i}.mp4"
        full_path = base_path + "\\" + file_name
        video_paths.append(full_path)
        print(video_paths[i])
    #打乱地址列表输出
    random.shuffle(video_paths)
    # 读取视频
    clips=[]
    #获取第一个视频的大小
    target_size = VideoFileClip(video_paths[0]).size
    video_lenth=0.0;
    print(target_size)
    for path in video_paths:
        clip=VideoFileClip(path)
        #设置每个视频大小一直
        clip=clip.resize(target_size)
        #比较现有视频是已经超过5分钟
        remaining = MAX_SECOND - video_lenth
        if remaining<=0:
           clip.close()
           break
        if  clip.duration > remaining:
            clip = clip.subclip(0, remaining)


        video_lenth+= clip.duration
        clips.append(clip)

    print(video_lenth)

    # 按顺序拼接,无任何特效
    final_video = concatenate_videoclips(clips)

    # 导出
    final_video.write_videofile(out_path, codec="libx264", audio_codec="aac")

    # 释放资源
    for clip in clips:
        clip.close()
    final_video.close()

    print("✅ 视频合并完成!")


总结

moviepy提供了多个视频处理的方法有需要的请自行了解
自动拼接多个视频
去掉视频原声
添加背景音乐、配音
裁剪视频片段
调整视频尺寸、分辨率
给视频加文字、水印
视频转 GIF
批量处理视频
需要的自提: https://pan.baidu.com/s/12N88BIV0UaJpJFltHzNFZQ?pwd=esdp

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐