FFmpeg 合并多个 mp4
mp4 文件过多的情况下一条条敲命令显然不够优雅, 这里使用 python 来生成 bash 脚本来合并 mp4
编写合并脚本
安装 natsort
解决 python 的排序问题
pip3 install natsort
新建一个 concat_sh.py
文件
import os
from natsort import natsorted
L = []
# 访问 mp4 文件夹
for root, dirs, files in os.walk('/video'):
files = natsorted(files)
for file in files:
# 拼接 mp4 路径并添加到数组
if os.path.splitext(file)[1] == '.mp4':
file_path = os.path.join(root, file)
L.append(file_path)
# 生成 concat_mp4.sh 文件
with open('concat_mp4.sh', 'w') as f:
f.write("#! /bin/bash\n\n")
for l in L:
f.write(f"ffmpeg -i {l} -vcodec copy -acodec copy -vbsf h264_mp4toannexb {l.replace('.mp4', '.ts')}\n")
f.write(f'\nffmpeg -i "concat:{"|".join([i.replace(".mp4", ".ts") for i in L])}" -acodec copy -vcodec copy output.mp4\n')
f.write('rm /video/*.ts')
把上面 /video
和 rm /video/*.ts
里的路径换成你的视频文件夹所在路径, 然后在终端运行命令
python3 concat_sh.py && bash concat_mp4.sh
运行完之后就会在目录下多出一个 output.mp4
文件, 这个就是合并好了的视频文件了
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!