MP4的封裝與解封裝

用途

使用 MP4BOX + Yamb 來封裝、解封裝(分軌抽離)。

包含封裝或抽離影軌、音軌、內含(掛)字幕檔。

  • 有含有字幕檔的 MP4 可以透過 Flash 播放。


起因

對 MP4 可 封裝/內掛 字幕的可能性感到好奇,更對其是否可應用在 Flash 播放有內掛字幕的 MP4 感興趣。

結果

可以內掛!也可以順利在 Flash 上面播放!可惜的是字體的控制,還沒實驗成功!


實驗後得解

  1. MP4BOX 下指令即可達到封裝、指定軌抽取。
  2. MP4BOX 的 GUI → Yamb 則更為方便,且可抽取出 srt 字幕格式。
  3. Flash 支援播放 MP4 內的字幕!但是無法指定字體,以美觀為前提的實用度有待商確XD(正確來說是就算有指定字體,播放也仍為系統預設字體:新細明體)
  4. MP4BOX只支援這些字幕格式:*.srt, *.sub, *.ttxt, *.xml(QuickTime TeXML)
  5. 封裝字幕方面,可能需要字幕格式互換工具轉成 *.srt:Subresync(可互相轉換 *.srt, *.sub, *.ssa, *.ass, *.smi, *.psb)


  • 另外用MP3為音軌來封裝的話,
    雖然電腦播很正常,但是 Flash播放會無聲,PSP、PS3 疑似也不支援
    推薦用 H.264 + AAC 來封 MP4


方法

MP4BOX 來對 MP4 封裝或解封裝
只不過單純用指令抽出來的沒有時間軸!!只有文字啊! 囧""
所以建議要透過另一家出版的GUI介面(Yamb),才可以抽出來的時候同時轉回SRT格式


相關工具軟體免安裝配置方法:

  1. 下載 MP4BOX 備用:0.4.5 或 0.4.4 版都可
  2. 取得讓你不用碰指令模式的主要幫手:Yamb
  3. 兩者都解壓縮
  4. MP4BOX 解出來的 MP4BOX.exe 放進 Yamb 資料夾內
  5. 執行 Yamb.exe 即可開始操作!
  6. 詳細操作方法請參考:此篇


MP4BOX 指令

注意!

  • 用指令抽的字幕檔,會直接是 .tx3g 格式
    記事本打開看只剩下台詞,沒有時間(軸) 囧

    另外如果要玩抽取又封裝的話
    例如從MKV抽取H.264+AAC,封到MP4
    記得看一下原始檔的fps,封裝的時候要跟原始影片一樣
    不然封到MP4可能會有影音不同步的現象。


  • 以下敘述指令均假設來源檔、輸出檔與 MP4BOX.exe 在同資料夾下
    如果該檔案與 MP4BOX.exe 在不同資料夾,請將指令的 " " 內,改寫成【完整路徑+完整檔名】的形式。


封裝

用命令提示字元模式,到MP4BOX的資料夾,使用以下指令

MP4Box.exe -fps fps數值 -add "影像檔名" -add "音效檔名" -add "字幕檔名" "要輸出的檔名"

舉例(影片檔名1.1.h264、聲軌1.1.aac、字幕檔1.1.srt;輸出檔名Output.mp4)

MP4Box.exe -fps 23.976 -add "1.1.h264" -add "1.1.aac" -add "1.1.srt" "Output.mp4"

抽軌(解封裝)

用命令提示字元模式,到MP4BOX的資料夾,使用以下指令

MP4Box.exe "完整檔名" -raw 你想抽的軌道數(通常 1、2 可能是影像跟聲音)

舉例(檔名為title10.mp4、字幕在第3軌時)

MP4Box.exe "title10.mp4" -raw 3


分割

指定片段

使用 -split 相關指令可以快速達成。 例如下面的寫法是指定讓一部 n.mp4 裡面第1555秒~1843秒的部分,分割出來。

MP4Box.exe -split-chunk 1555:1843 n.mp4

還有其他的分割指令詳細可以參考:使用 MP4BOX 分割 或 合併 檔案


その他

字幕是否可以抽離?

理論上,字幕抽離應該跟MKV的狀況相同。

判斷

觀察該 MP4 裡面有沒有封入「字幕檔」。

判斷方式:看可不可以開關或切換字幕。

  • 如果完全不能開關字幕,就代表是內嵌的字幕,整個印在影片上不可抽離。
    可以切換的應該就可以抽。


MP4 裡面可以封裝的各種格式

  • 以下根據 MP4BOX 的說明得知一些MP4支援封裝的格式

Suppported raw formats and file extensions:

  • NHNT:.media .nhnt .info
  • NHML:.nhml (opt: .media .info)
  • MPEG-1-2 Video:.m1v .m2v
  • MPEG-4 Video:.cmp .m4v
  • H263 Video:.263 .h263
  • AVC/H264 Video:.h264 .h26L .264 .26L
  • JPEG Images:.jpg .jpeg
  • PNG Images:.png
  • MPEG 1-2 Audio:.mp3, .m1a, .m2a
  • ADTS-AAC Audio:.aac
  • AMR(WB) Audio:.amr .awb
  • EVRC Audio:.evc
  • SMV Audio:.smv

Supported containers and file extensions:

  • AVI:.avi
  • MPEG-2 PS:.mpg .mpeg .vob .vcd .svcd
  • MPEG-2 TS:.ts .m2t
  • QCP:.qcp
  • OGG:.ogg
  • ISO-Media files:no extension checking

Supported text formats:(MP4支援封裝的字幕格式)

  • SRT Subtitles:.srt
  • SUB Subtitles:.sub
  • GPAC Timed Text:.ttxt
  • QuickTime TeXML Text:.xml (cf QT documentation)

Supported Scene formats:

  • MPEG-4 XMT-A:.xmt .xmta .xmt.gz .xmta.gz
  • MPEG-4 BT:.bt .bt.gz
  • VRML:.wrl .wrl.gz
  • X3D-XML:.x3d .x3d.gz
  • X3D-VRML:.x3dv .x3dv.gz
  • MacroMedia Flash:.swf (very limitted import support only)


來源

LM電腦版提問的友人詳答

最終更新:2016年09月12日 14:04