利用opencv + moviepy制作批量剪辑脚本

2023-10-17 11:30

本文主要是介绍利用opencv + moviepy制作批量剪辑脚本,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

最近工作上需要剪辑大量的视频,网上找不到合适的模板。所以直接用python 做一个

完整代码如下:

from moviepy.editor import * 
from PIL import Image 
import cv2
import os
import numpy as np
def format_img(path):img = cv2.imread(path)print(path)top = (1280 - img.shape[0])//2left = (720 - img.shape[1])//2img_new = cv2.copyMakeBorder(img, top, top, left, left, cv2.BORDER_CONSTANT, None, (0,0, 0))cv2.imwrite(path, img_new)def format_mask():path = './mask'for file in os.listdir(path):out_path = f'{path}/{file}'img = cv2.imread(out_path)img1 =cv2.resize(img, (720, 1280), interpolation=cv2.INTER_CUBIC)cv2.imwrite(out_path, img1)    # format_mask()
def format_video(fileName, input_path, out_path):my_clip = VideoFileClip(input_path, audio=False)#获取书法作品hand_path = f'./photo/{fileName}.png'# 人物照片man_path = f'./man/{fileName}.png'format_img(hand_path)format_img(man_path)# 获取音乐music_list = os.listdir('./music')music_path = np.random.choice(music_list)music = AudioFileClip(f'./music/{music_path}')music.max_volume()# 字幕text_clip = TextClip('小金熊趣味硬笔', fontsize=70, font='./msyhl.ttc').set_duration(my_clip.duration).set_position(('left','bottom'))my_clip1 = CompositeVideoClip([my_clip, text_clip])clip = ImageSequenceClip([hand_path, man_path], fps = 1, durations=3)cc = concatenate_videoclips([my_clip1, clip])cc.set_audio(music)cc.audio = musiccc.write_videofile(out_path, audio_codec='aac')def main():path = './video'for file in os.listdir(path):out_path = f'./out_video/{file}'video_path = f'{path}/{file}'print(file.split('.')[0])format_video(file.split('.')[0], video_path, out_path)
main()

工程目录如下:
在这里插入图片描述

这篇关于利用opencv + moviepy制作批量剪辑脚本的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/225058

相关文章

java脚本使用不同版本jdk的说明介绍

《java脚本使用不同版本jdk的说明介绍》本文介绍了在Java中执行JavaScript脚本的几种方式,包括使用ScriptEngine、Nashorn和GraalVM,ScriptEngine适用... 目录Java脚本使用不同版本jdk的说明1.使用ScriptEngine执行javascript2.

Java中的Opencv简介与开发环境部署方法

《Java中的Opencv简介与开发环境部署方法》OpenCV是一个开源的计算机视觉和图像处理库,提供了丰富的图像处理算法和工具,它支持多种图像处理和计算机视觉算法,可以用于物体识别与跟踪、图像分割与... 目录1.Opencv简介Opencv的应用2.Java使用OpenCV进行图像操作opencv安装j

解决Cron定时任务中Pytest脚本无法发送邮件的问题

《解决Cron定时任务中Pytest脚本无法发送邮件的问题》文章探讨解决在Cron定时任务中运行Pytest脚本时邮件发送失败的问题,先优化环境变量,再检查Pytest邮件配置,接着配置文件确保SMT... 目录引言1. 环境变量优化:确保Cron任务可以正确执行解决方案:1.1. 创建一个脚本1.2. 修

Python在固定文件夹批量创建固定后缀的文件(方法详解)

《Python在固定文件夹批量创建固定后缀的文件(方法详解)》文章讲述了如何使用Python批量创建后缀为.md的文件夹,生成100个,代码中需要修改的路径、前缀和后缀名,并提供了注意事项和代码示例,... 目录1. python需求的任务2. Python代码的实现3. 代码修改的位置4. 运行结果5.

python写个唤醒睡眠电脑的脚本

《python写个唤醒睡眠电脑的脚本》这篇文章主要为大家详细介绍了如何使用python写个唤醒睡眠电脑的脚本,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 环境:win10python3.12问题描述:怎么用python写个唤醒睡眠电脑的脚本?解决方案:1.唤醒处于睡眠状

使用Python实现批量访问URL并解析XML响应功能

《使用Python实现批量访问URL并解析XML响应功能》在现代Web开发和数据抓取中,批量访问URL并解析响应内容是一个常见的需求,本文将详细介绍如何使用Python实现批量访问URL并解析XML响... 目录引言1. 背景与需求2. 工具方法实现2.1 单URL访问与解析代码实现代码说明2.2 示例调用

多模块的springboot项目发布指定模块的脚本方式

《多模块的springboot项目发布指定模块的脚本方式》该文章主要介绍了如何在多模块的SpringBoot项目中发布指定模块的脚本,作者原先的脚本会清理并编译所有模块,导致发布时间过长,通过简化脚本... 目录多模块的springboot项目发布指定模块的脚本1、不计成本地全部发布2、指定模块发布总结多模

shell脚本快速检查192.168.1网段ip是否在用的方法

《shell脚本快速检查192.168.1网段ip是否在用的方法》该Shell脚本通过并发ping命令检查192.168.1网段中哪些IP地址正在使用,脚本定义了网络段、超时时间和并行扫描数量,并使用... 目录脚本:检查 192.168.1 网段 IP 是否在用脚本说明使用方法示例输出优化建议总结检查 1

Linux使用nohup命令在后台运行脚本

《Linux使用nohup命令在后台运行脚本》在Linux或类Unix系统中,后台运行脚本是一项非常实用的技能,尤其适用于需要长时间运行的任务或服务,本文我们来看看如何使用nohup命令在后台... 目录nohup 命令简介基本用法输出重定向& 符号的作用后台进程的特点注意事项实际应用场景长时间运行的任务服

opencv实现像素统计的示例代码

《opencv实现像素统计的示例代码》本文介绍了OpenCV中统计图像像素信息的常用方法和函数,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1. 统计像素值的基本信息2. 统计像素值的直方图3. 统计像素值的总和4. 统计非零像素的数量