拼接路径下所有的视频文件
shell 脚本:
#!/usr/bin/env bash
# 读取路径下所有视频文件,然后合并
########################
# 先清空文件,避免之前的数据
echo '' >append.txt
# 使用 shuf 随机乱序拼接视频文件
find ./ |grep .mp4 |shuf |while read line; do
# 使用 file 'test.mp4' 这样的格式,一行一个
echo -E "file '$line'" >>append.txt
echo $line
done
# 使用 ffmpeg 当前路径下的所有视频文件
ffmpeg -safe 0 -f concat -segment_time_metadata 1 -i append.txt \
-vf select=concatdec_select -af aselect=concatdec_select,aresample=async=1 -y out.mp4
其他拼接方式
格式工厂
格式工厂虽然可以拼接,但是视频的顺序无法调整,它通过文件名称进行排序拼接
剪映
将所有视频文件导入到剪映,虽然可以拼接,但是如果需要随机调整视频片段,非常的繁琐。直接 ffmpeg 命令行操作速度更快