要分割和合並 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 是一個功能強大的工具,支援各種影片處理任務,包括分割、合併、轉換等。