要分割和合并 MP4 视频文件,你可以使用一些常用的命令行工具,如 FFmpeg。FFmpeg 是一个强大的开源命令行工具,用于处理视频、音频等多媒体文件。以下是使用 FFmpeg 分割和合并 MP4 视频文件的常见方法。
要分割和合并 MP4 视频文件,你可以使用一些常用的命令行工具,如 FFmpeg。FFmpeg 是一个强大的开源命令行工具,用于处理视频、音频等多媒体文件。以下是使用 FFmpeg 分割和合并 MP4 视频文件的常见方法。
1. 使用 FFmpeg 分割 MP4 文件
按时间分割视频
假设你想将一个长视频文件 input.mp4
按时间(如每 10 分钟)分割成多个小文件,可以使用以下命令:
bashCopy Code
ffmpeg -i input.mp4 -c copy -map 0 -segment_time 600 -f segment output%03d.mp4
-i input.mp4
:输入视频文件。-c copy
:使用“复制”模式,不重新编码视频,以保持视频质量。-map 0
:表示映射所有输入流(视频、音频等)。-segment_time 600
:指定每个分割段的时间长度,单位为秒(600 秒即 10 分钟)。-f segment
:指定分割输出格式。output%03d.mp4
:输出文件名格式,其中%03d
表示用三位数字表示序号,如output001.mp4
、output002.mp4
等。
按大小分割视频
如果你想按文件大小分割视频,可以使用 split
工具结合 FFmpeg。但 FFmpeg 本身并不直接支持按文件大小分割,通常需要估算每段的持续时间,然后按时间分割。你可以手动计算每段视频的时长来达到按大小分割的效果。
2. 使用 FFmpeg 合并 MP4 文件
合并多个 MP4 文件
如果你有多个分割的 MP4 文件,想将它们合并成一个文件,可以使用 FFmpeg 的 concat
功能。合并视频时,有两种常见方法:直接合并和通过文件列表合并。
2.1 使用文件列表合并(推荐)
- 首先,创建一个包含你要合并的视频文件列表的文本文件,文件名可以是
filelist.txt
。格式如下:
txtCopy Code
file 'file1.mp4'
file 'file2.mp4'
file 'file3.mp4'
每个文件名以 file 'filename'
格式列出。
- 然后,使用以下 FFmpeg 命令来合并文件:
bashCopy Code
ffmpeg -f concat -safe 0 -i filelist.txt -c copy output.mp4
-f concat
:指定使用concat
格式来合并视频文件。-safe 0
:用于允许 FFmpeg 使用文件路径中的特殊字符。-i filelist.txt
:指定包含视频文件列表的文本文件。-c copy
:不重新编码视频,直接复制流,保持原始视频质量。output.mp4
:合并后生成的输出文件。
2.2 使用 concat 协议(适用于同样编码格式的视频)
如果所有 MP4 文件有相同的编码格式(例如分辨率、帧率和音频编码一致),你还可以使用 FFmpeg 的 concat
协议来合并文件。
bashCopy Code
ffmpeg -i "concat:file1.mp4|file2.mp4|file3.mp4" -c copy output.mp4
concat:file1.mp4|file2.mp4|file3.mp4
:将多个视频文件按管道(|
)连接。-c copy
:复制原始编码,不重新编码。output.mp4
:输出合并后的文件。
3. 使用 FFmpeg 进行无损剪切
如果你只需要截取视频的某一部分而不进行分割,可以使用 -ss
和 -t
参数来指定起始时间和时长。
bashCopy Code
ffmpeg -i input.mp4 -ss 00:05:00 -t 00:10:00 -c copy output.mp4
-ss 00:05:00
:指定开始时间(例如 5 分钟后开始)。-t 00:10:00
:指定剪切的持续时间(例如剪切 10 分钟)。-c copy
:不重新编码视频,直接复制。
4. 其他常用 FFmpeg 分割和合并操作
-
重新编码视频:如果你需要重新编码视频(例如调整格式、分辨率等),可以使用
-c:v
和-c:a
参数指定视频和音频编码器。bashCopy Codeffmpeg -i input.mp4 -c:v libx264 -c:a aac output.mp4
这样会将视频转换为 H.264 编码(
libx264
)和 AAC 音频编码(aac
)。 -
使用 FFmpeg 切割并合并时调整视频质量:如果你在处理多个视频文件时希望调整质量,可以通过
-crf
(视频质量控制)和-preset
(编码速度设置)来进行调整。bashCopy Codeffmpeg -i input.mp4 -c:v libx264 -crf 23 -preset fast output.mp4
-crf 23
:设定视频质量,0 是最佳质量,51 是最差质量,23 是默认值。-preset fast
:设定编码速度,选项从ultrafast
到veryslow
,越慢压缩效率越高。
- 分割视频:使用
ffmpeg -i input.mp4 -c copy -map 0 -segment_time 600 -f segment output%03d.mp4
命令按时间分割。 - 合并视频:使用文件列表(
ffmpeg -f concat -safe 0 -i filelist.txt -c copy output.mp4
)来合并多个 MP4 文件。 - 剪切视频:使用
ffmpeg -i input.mp4 -ss 00:05:00 -t 00:10:00 -c copy output.mp4
来提取视频片段。
FFmpeg 是一个功能强大的工具,支持各种视频处理任务,包括分割、合并、转换等。