在切割视频时, 如果直接复制而不重新编码, 处理速度会大大提升。ffmpeg
命令可以通过 -acodec copy
和 -vcodec copy
选项实现这种无损切割
命令格式
ffmpeg -i input.mp4 -ss [开始时间] -t [持续时间] -acodec copy -vcodec copy output.mp4
-ss
: 指定视频开始的时间点 (格式为时:分:秒
), 如00:00:04
表示第 4 秒开始-t
: 指定持续时间 (格式为时:分:秒
), 如00:04:16
表示持续 4分16秒-acodec copy
和-vcodec copy
: 直接复制音频和视频数据, 实现无损分割
例子
从头开始截取前 30 秒
ffmpeg -ss 00:00:00 -t 00:00:30 -i keyoutput.mp4 -vcodec copy -acodec copy split.mp4
从 30 秒开始截取 30 秒的视频
ffmpeg -ss 00:00:30 -t 00:00:30 -i keyoutput.mp4 -vcodec copy -acodec copy split1.mp4
视频合并
在 list.txt
文件中, 对要合并的视频片段进行了描述
file ./split.mp4
file ./split1.mp4
ffmpeg
可以将分割后的多个视频片段进行合并
ffmpeg -f concat -i list.txt -c copy concat.mp4
原文