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

该博客介绍了一个使用Python进行批量视频编辑的项目,包括调整图片尺寸、添加字幕、融合图片到视频以及添加背景音乐。通过moviepy库,实现了自动化视频剪辑和合成流程,适用于需要大量视频编辑的工作场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近工作上需要剪辑大量的视频,网上找不到合适的模板。所以直接用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])//2
    left = (720 - img.shape[1])//2
    img_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 = music
    cc.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()

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

东哥aigc

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值