回答:
無料のクロスプラットフォームMP4Boxは、MP4または3GPコンテナーでのみ機能します。ホームページからインストールできます。まず、さまざまなトラックを見て、どのIDが字幕トラックに属しているかを確認します。
MP4Box -info input.mp4
字幕トラックの横にあるIDを見てください。次に、<trackId>抽出するトラックIDに基づいて、次のコマンドを呼び出します。
MP4Box -raw <trackID> input.mp4
または、一般的に使用されるSRT形式にエクスポートするには:
MP4Box -srt <trackID> input.mp4
Matroska(MKV)ファイルから字幕を抽出するには、無料のオープンソースmkvtoolnixパッケージが必要です。WindowsとLinuxに対応しており、MacではHomebrewを使用してインストールできます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
MP4BoxアーチのLinuxで、インストールする必要があるgpacコミュニティのレポから。
以下は、サポートされている事実上すべてのファイル形式のソリューションですffmpeg(リモートファイルもサポートされています)。
ffmpeg -i video.mp4 subtitle.srt
ffmpegMac OS XおよびWindowsの場合は、新しいUbuntuバージョンにデフォルトで存在します(公式Webサイトまたはhomebrew からダウンロードすることにより)。
ここではvideo.mp4、ソース、ローカルまたはリモートのビデオ・ファイル名で、subtitle.srt出力字幕ファイル名です。出力にファイル拡張子を指定することは重要です。ファイル拡張子を使用ffmpegして正確に抽出するものを検出するからです。つまり.mp3、ビデオファイルからmp3オーディオを抽出するためにファイル拡張子を指定することも、フォーマット間で変換するために別のビデオコンテナを設定することもできます。
MP4Box中にgpacapt-getを経由して利用可能なパッケージ