Python实现多个视频合成视频的功能你知道吗

本文介绍了一个使用Python实现将多个相同格式、相同fps的视频拼接成一个视频的工具,依赖于ffmpeg和ffprobe。代码中包含concat方法,通过指定视频列表和输出目录进行拼接,并确保输出文件名的唯一性。最后,文章提供了操作验证和执行结果。
摘要由CSDN通过智能技术生成

前言

本文提供将多个视频拼接为一个视频的Python工具代码,其中有一些限制条件,下面的代码说明会提到。

环境依赖

ffmpeg环境安装,可以参考:windows ffmpeg安装部署

本文主要使用到的不是ffmpeg,而是ffprobe也在上面这篇文章中的zip包中。

Python实现多个视频合成视频的功能你知道吗

ffmpy安装:

pip install ffmpy -i https://pypi.douban.com/simple

代码

#!/user/bin/env python
# coding=utf-8
"""
###########################

                                   Python学习交流Q群101677771

###########################
@project : csdn
@author  : 剑客阿良_ALiang
@file   : concat_video.py
@ide    : PyCharm
@time   : 2021-12-23 15:23:16
"""
  
from ffmpy import FFmpeg
import os
import uuid
import subprocess
  
  
# 视频拼接
def concat(video_list: list, output_dir: str):
    if len(video_list) == 0:
        raise Exception('video_list can not empty')
    _ext = check_format(video_list)
    _fps = check_fps(video_list)
    _result_path = os.path.join(
        output_dir, '{}{}'.format(
            uuid.uuid1().hex, _ext))
    _tmp_config = make_tmp_concat_config(video_list, output_dir)
    ff = FFmpeg(inputs={'{}'.format(_tmp_config): '-f concat -safe 0 -y'}, outputs={
        _result_path: '-c copy'})
    print(ff.cmd)
    ff.run()
    os.remove(_tmp_config)
    return _result_path
  
  
# 构造拼接所需临时文件
def make_tmp_concat_config(video_list: list, output_dir: str):
    _tmp_concat_config_path = os.path.join(output_dir, '{}.txt'.format(uuid.uuid1().hex))
    with open(_tmp_concat_conf
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值