FFMPEG对视频文件的合并、切割
date
‣
slug
88
status
Published
tags
TEMP
Linux
summary
突然有个小需求需要了解一下ffmpeg的使用,顺手转存一下
type
Post
Property
突然有个小需求需要了解一下ffmpeg的使用,顺手转存一下
将多个 mp4 小文件,合并为一个大文件,方法有两种:mpeg 拼接,ts 拼接(推荐)。
mpeg 拼接
需要先将小 mp4 文件转码为 mpeg 文件,之后 mpeg 直接拼接,最后再转码回 mp4。
此方法速度比较慢,并且最终生成的文件比较大。例如 6 个小 mp4 文件,累计 240MB,通过此方法,最终 mp4 文件会变成 640MB 左右。整个操作用时超过 1 分钟。
速度慢也就算了,关键是变大太多了。果断舍弃此方案。
ts 拼接(推荐)
整个方法先把 mp4 封装成 ts 格式,之后 ts 直接拼接,最后在转化为 mp4。
此方法速度快,最终文件基本上等于小文件的总和。例如 6 个小 mp4 文件,累计 240MB,通过此方法,最终 mp4 文件也在 240MB 左右。整个操作用时 10 秒。
具体操作方案:
- 使用 Transnomino(MacOS 下我找到的唯一一个免费且好用的批量更名软件)。先将目录下的 mp4 进行改名,当然也可以使用 MacOS 自带的批量改名功能。改名为
a1.mp4
,a2.mp4
…;
- 编辑上面的脚本,把它保存到 mp4 目录内,名字无所谓,比如
a.sh
;
- 终端中,cd 到 mp4 的目录,执行
bash a.sh
,等待即可;
- 最终即可生成 output.mp4 合并好的文件了。