Python 实现多个视频合并

# from moviepy.editor import *
from moviepy.video.fx import crop,VideoFileClip,concatenate_videoclips
import os




def video_merge(input_dir, output_file_path, frame_rate):
    output_dir = os.path.dirname(output_file_path)
    # 定义一个数组
    l = []
    # 访问 video 文件夹 (假设视频都放在这里面)
    for root, dirs, files in os.walk(input_dir):
        # 按文件名排序
        files.sort()
        # 遍历所有文件
        for file in files:
            # 如果后缀名为 .mp4
            if os.path.splitext(file)[1] == '.mp4':
                # 拼接成完整路径
                input_file_path = os.path.join(root, file)
                # 载入视频并裁剪视频
                video = crop.crop(VideoFileClip(input_file_path) , x1=250, y1=50, x2=2200, y2=750) 
                #裁剪视频存为mp4格式文件(也可忽略此步骤,直接使用原始视频)
                tmp_output_file_path = os.path.join(output_dir, os.path.splitext(file)[0] + '_temp.mp4') 
                video.write_videofile(tmp_output_file_path, fps=frame_rate,remove_temp=False)
                # 再次载入处理后的mp4视频
                video = VideoFileClip(tmp_output_file_path)
                # 添加到数组
                l.append(video)
                os.remove(input_file_path)
    # 拼接视频
    final_clip = concatenate_videoclips(l)
    # 生成目标视频文件
    final_clip.write_videofile(output_file_path,fps=frame_rate, remove_temp=True)
    # 清理视频
    for root, dirs, files in os.walk(output_dir):
        for file in files:
            if os.path.splitext(file)[-1] == '.mp4':
                if os.path.splitext(file)[0][-4:] == 'temp':
                    os.remove(os.path.join(root, file))

  • 1
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值