web-dev-qa-db-ja.com

ffmpegを使用してビデオから字幕を抽出する方法は?

ビデオから字幕を.srtファイルとして抽出しようとしています。次のコマンドを使用しました。

FFMPEG -i mytestmovie.mkv -vn -an -codec:s:0.1 srt sub.srt

しかし、認識できないオプションcodec:s:0:1としてエラーが発生しました。そのため、正確なコマンドと、ビデオの.srtファイルとして字幕を抽出する方法を教えていただけますか?

36
vijay

シンプル:

ffmpeg -i Movie.mkv -map 0:s:0 subs.srt
  • -i :入力ファイルのURL /パス。
  • -map :1つ以上の入力ストリームを出力ファイルのソースとして指定します。
  • s: :字幕ストリームを選択します。
62
jm3

-codec:s:0:1は正しくありません。 -codec:s:0を使用する場合、ffmpegは指定されたコーデックを使用して、最初の字幕ストリームを出力に渡します。-codec:s:1を使用する場合、2番目の字幕ストリームなどに使用します。

-codec:sを使用してall出力字幕ストリームを選択することも、-codec:2を使用して3番目の出力ストリームを選択することもできます。

-mapオプションの動作が異なるため、おそらく混乱しています。そこで、選択したストリームの入力元を選択する必要があります。 (したがって、-map 0:s:0は最初の入力から最初の字幕ストリームを取得し、それを出力に送ります)。ただし、-mapは、入力から取得するストリームを選択するためのものです。一方、ストリームマッピングを使用する他のほとんどのオプションは、出力に渡されるため、選択後にストリームで使用するためです(そのため、どの入力ファイルであるかを指定する必要はありません)。

9
evilsoup