MP4とMKVの映画から字幕を抽出しようとしています。私はmp4box(OS X)を使用していますが、それがどのように機能するか理解できません。
ヒントはありますか?
無料のクロスプラットフォーム MP4Box は、MP4または3GPコンテナーでのみ機能します。ホームページからインストールできます。まず、さまざまなトラックを見て、字幕トラックに属するIDを確認します。
MP4Box -info input.mp4
字幕トラックの横にあるIDを確認します。次に、抽出するトラックID <trackId>
に基づいて、次のコマンドを呼び出します。
MP4Box -raw <trackID> input.mp4
または、一般的に使用されるSRT形式にエクスポートするには:
MP4Box -srt <trackID> input.mp4
Matroska(MKV)ファイルから字幕を抽出するには、無料のオープンソース mkvtoolnix
が必要ですパッケージ。これらはWindowsとLinux用で、Macでは Homebrew with brew install mkvtoolnix
を使用してインストールできます。
次に、ファイルを検査します。
mkvmerge -i input.mkv
これにより、たとえば次のようにトラックがリストされます。
File 'input.mkv': container: Matroska
Track ID 1: video (V_MPEG4/ISO/AVC)
Track ID 2: audio (A_AAC)
Track ID 3: subtitles (S_TEXT/UTF8)
トラックのIDに基づいて、次のコマンドを呼び出します。ここで、<trackID>
は上記で特定したものです。 <output>
は単なるダミー名であり、任意の名前を使用できます。
mkvextract tracks input.mkv <trackID>:<output>.srt
したがって、私たちの場合、それは次のようになります:
mkvextract tracks input.mkv 3:subs.srt
ffmpeg
でサポートされているほぼすべてのファイル形式のソリューションを次に示します(リモートファイルもサポートされています)。
ffmpeg -i video.mp4 subtitle.srt
ffmpeg
はデフォルトで新しいUbuntuバージョンに存在します。MacOS XおよびWindowsの場合は、インストールする必要があります( 公式Webサイトからダウンロード またはhomebrewを使用)。
ここに video.mp4
はソースのローカルまたはリモートのビデオファイル名であり、subtitle.srt
は出力字幕ファイル名です。 ffmpeg
は、抽出したいものを正確に検出するため、出力のファイル拡張子を指定することが重要です。つまり、.mp3
ファイル拡張子からmp3オーディオをビデオファイルから抽出するか、別のビデオコンテナーを設定してフォーマット間で変換します。