要分割和合並 MP4 影片檔案,你可以使用一些常用的命令列工具,如 FFmpeg。FFmpeg 是一個強大的開源命令列工具,用於處理影片、音訊等多媒體檔案。以下是使用 FFmpeg 分割和合並 MP4 影片檔案的常見方法。

suv789發表於2024-11-13

要分割和合並 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.mp4output002.mp4 等。

按大小分割影片

如果你想按檔案大小分割影片,可以使用 split 工具結合 FFmpeg。但 FFmpeg 本身並不直接支援按檔案大小分割,通常需要估算每段的持續時間,然後按時間分割。你可以手動計算每段影片的時長來達到按大小分割的效果。

2. 使用 FFmpeg 合併 MP4 檔案

合併多個 MP4 檔案

如果你有多個分割的 MP4 檔案,想將它們合併成一個檔案,可以使用 FFmpeg 的 concat 功能。合併影片時,有兩種常見方法:直接合並和透過檔案列表合併。

2.1 使用檔案列表合併(推薦)
  1. 首先,建立一個包含你要合併的影片檔案列表的文字檔案,檔名可以是 filelist.txt。格式如下:
txtCopy Code
file 'file1.mp4'
file 'file2.mp4'
file 'file3.mp4'

每個檔名以 file 'filename' 格式列出。

  1. 然後,使用以下 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 Code
    ffmpeg -i input.mp4 -c:v libx264 -c:a aac output.mp4

    這樣會將影片轉換為 H.264 編碼(libx264)和 AAC 音訊編碼(aac)。

  • 使用 FFmpeg 切割併合並時調整影片質量:如果你在處理多個影片檔案時希望調整質量,可以透過 -crf(影片質量控制)和 -preset(編碼速度設定)來進行調整。

    bashCopy Code
    ffmpeg -i input.mp4 -c:v libx264 -crf 23 -preset fast output.mp4
    • -crf 23:設定影片質量,0 是最佳質量,51 是最差質量,23 是預設值。
    • -preset fast:設定編碼速度,選項從 ultrafastveryslow,越慢壓縮效率越高。

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

相關文章