ムービーファイルから字幕を抽出

テキストの字幕(ビットマップの字幕ではない)が入っているムービーファイルから、字幕をSRTフォーマットのテキストファイルで抽出する。コマンドラインツールのMP4Boxを利用する。インストールはHomeBrewで。

まず、ムービーファイルのどのトラックに字幕が入っているのかを調べる。

$ mp4box -info (ムービーファイル)
* Movie Info *
Timescale 1000 - 4 tracks
Computed Duration 01:49:33.650 - Indicated Duration 01:49:33.650
(中略)
Track # 3 Info - TrackID 3 - TimeScale 90000
Media Duration 01:49:19.436 - Indicated Duration 01:49:19.436
Media Info: Language "English (eng)" - Type "sbtl:tx3g" - 2382 samples
Unknown Text Stream
 Size 841 x 60 - Translation X=0 Y=0 - Layer 0
RFC6381 Codec Parameters: tx3g
Alternate Group ID 3
All samples are sync
Track # 4 Info - TrackID 4 - TimeScale 1000
(以下略)

トラック3に字幕があるらしいので、それを抽出する。

mp4box -srt 3 (ムービーファイル)

ムービーファイルと同じディレクトリに、字幕がムービーと同じ名前で拡張子が「.srt」のファイルができる。

参考:

JW Broadcasting MP4字幕抽出成功(MP4BOX,Windows): ミドリガメとフェレット