2009/02/24

使用 MP4Box 分割視訊格式為 H264(AVC)的 FLV 檔案

MP4Box 不能識別 FLV 格式,會提示:Unknown input file type。需要先使用 FLV Extract 提取出 FLV 中的視訊和音訊,視訊副檔名 .264,音訊副檔名 .aac。


使用 MP4Box 將提取出的影音合併為 MP4
假設視訊名為 video.264,音訊名為 audio.aac,並將視訊和音訊複製到 MP4Box 所在資料夾中。開始 » 執行 » CMD,定位到 MP4Box 所在資料夾,執行以下命令。

R:\MP4Box-0.4.5>mp4box -add video.264 -add audio.aac -fps 25.03 output.mp4

下面是輸出結果

AVC-H264 import - frame size 320 x 240 at 25.030 FPS
Import results: 837 samples - Slices: 32 I 319 P 499 B - 1 SEI - 32 IDR
AAC import - sample rate 22050 - MPEG-4 audio - 2 channels
Saving to output.mp4: 0.500 secs Interleaving


-add:指定欲合成之 MP4 所包含的視訊檔和音訊檔。

-fps:指定欲合成之 MP4 的影格頻率,如果不指定,會使用預設值 25FPS 進行合成。該影格頻率值使用 MediaInfo 開啟 FLV 檔案測出。
MediaInfo FLV

output.mp4:於末尾指定欲輸出之 MP4 檔案名稱。


使用 MP4Box 分割 MP4
對於方才合成的 MP4,只保留中間感興趣的部份,執行以下命令。

R:\MP4Box-0.4.5>mp4box -splitx 9:31.5 output.mp4

下面是輸出結果

Adjusting chunk start time to previous random access at 8.67 sec
Extracting chunk output_8_31.mp4 - duration 22.83 seconds


-splitx:-splitx 開始時間:結束時間。時間以秒為單位,可以精確到小數點後三位。-splitx 9:31.5,將影片從第9秒開始到第31.5秒的這部份匯出。

輸出結果說明:匯出的檔案自動命名為 output_8_31.mp4,大致表示匯出檔案是以匯入檔案的第8秒開始到第31秒結束,由於視訊檔案的分割會不可避免地受到來自關鍵畫格的影響,所以檔案很有可能不會按照給定的時間點分割,會略有出入。設定是從第9秒開始,實際分割時是從 8.67 秒開始,31.5 - 8.67 = 22.83,分割得到之 MP4 時長 22.83 秒。

output.mp4:於末尾指定欲分割之 MP4 檔案名稱。


下載 MP4Box

備用載點一
備用載點二


後記

H264(AVC)格式的視訊雖然可以使用 avc2avi 封入 avi 容器中,並且能夠正常播放,但使用 Boilsoft Video Splitter 對 avi 分割後輸出的檔案畫面顯示空白,所以 H264(AVC)還是適合使用 MP4 作為容器。也可以使用 Boilsoft Video Splitter 分割 MP4,但 Boilsoft Video Splitter 是共享軟體,且必須安裝相關編碼器才能分割 MP4,使用 MP4Box 不需要安裝編碼器。MP4Box 的 GUI YAMB 可以用來將影音合併為 MP4,但是無法分割 MP4。GUI 反而不好用。


參考文獻
HowTo split/concatenate MP4 files with MP4Box 

沒有留言 :

張貼留言