需求:需要把多个短视频合并成一个视频
系统:我的是Windows10系统

一、需要安装ffmpeg

1、下载压缩包:

官网地址:http://www.ffmpeg.org/download.html
直接下载地址:https://ffmpeg.zeranoe.com/builds/

在这里插入图片描述
在这里插入图片描述

2、解压之后,添加到path环境变量

下载之后是个压缩包,解压之后把文件夹放到一个不用的磁盘固定不动位置,我这边放到安装软件的D盘,然后把把文件下面的bin路径添加到系统path路径下面。
具体步骤不会可以参考:
https://blog.csdn.net/chy466071353/article/details/54949221

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3、测试是否安装成功

cmd中运行ffmpeg出现如下图,说明ffmpeg安装成功。

在这里插入图片描述

二、准备name.txt

注意事项:
name.txt里面的名字就是合成视频的顺序,可以使用python的一个模块natsort,这个模块的natsorted功能,它可以使识别列表中的任何元素中数字的位置,根据数字和字母进行派人,

安装:pip install natsort
官网地址:
https://pypi.org/project/natsort/

主要是使用了这个功能:
>>> from natsort import natsorted
>>> a = [‘2 ft 7 in’, ‘1 ft 5 in’, ‘10 ft 2 in’, ‘2 ft 11 in’, ‘7 ft 6 in’]
>>> natsorted(a)
[‘1 ft 5 in’, ‘2 ft 7 in’, ‘2 ft 11 in’, ‘7 ft 6 in’, ‘10 ft 2 in’]

在这里插入图片描述
在这里插入图片描述

把需要的视频文件准备到一个文件夹下,把
file ‘视频文件名1’
file ‘视频文件名2’

按行写入一个name.txt文本下,我用python写入的代码,可以作为参考:

import os
from natsort import natsorted

path = r"视频列表目录"
files = os.listdir(path)
files = natsorted(files)
print(files)
file_w = open('{}\\name.txt'.format(path),'w',encoding='utf-8')
for i in files:
    if 'out' in i:
        file_w.write('file '+ "'{}'".format(i)+'\n')    
file_w.close()
在这里插入图片描述
在这里插入图片描述

生成name.txt 文件,格式生成如下:

在这里插入图片描述
在这里插入图片描述

三、合并视频

方法1:
在cmd中,到视频列表文件下
ffmpeg -f concat -i name.txt -c copy output_set.mp4

完成后会再当前目录下生成一个output_set.mp4视频,至此完成。

方法2:python的os模块

import os
path = 视频列表地址
os.chdir(path)
start_time = time.time()
os.system(' ffmpeg -f concat -i name.txt -c copy output_set.mp4')