FFMpeg のドキュメントと多くのフォーラムを確認したところ、.MP4 ビデオから字幕を抽出するための正しいコマンドラインは次のようになります。
ffmpeg -i video.mp4 -vn -an -codec:s:0 srt out.srt
ただし、次のエラーが表示されるため、これが実現可能かどうか疑問に思います。
出力ストリーム #0:0 のエンコーダを開くときにエラーが発生しました - bit_rate、rate、width、height などのパラメータが正しくない可能性があります
を使用してffmpeg -codecs
、ffmpeg が subrip 字幕をエンコードできることを確認できます。
を使用ffmpeg -i video.mp4
すると、ビデオに 2 つの字幕トラックが埋め込まれていることがわかります。
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'video.mp4':
...
Stream #0:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 720x572 [SAR 64:45 DAR 256:143], 1341 kb/s, 25 fps, 25 tbr, 90k tbn, 180k tbc
Stream #0:1(eng): Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 191 kb/s
Stream #0:2(fra): Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 191 kb/s
Stream #0:3(eng): Subtitle: dvd_subtitle (mp4s / 0x7334706D)
Stream #0:4(und): Subtitle: mov_text (text / 0x74786574)
編集
コメントに示されている簡略化されたコマンドラインでテストしましたが、それでも同じエラーが発生します。コマンドの実行による詳細な詳細出力へのリンクを次に示します。結果の出力でメタデータとチャプタを完全に無効にしようとしましたが、それでも同じエラーが発生します。