web-dev-qa-db-ja.com

ffmpegで字幕のデコードを無効にする方法

videoaudioおよびsubtitlesFFMpegを使用して別の形式にストリーミングします。ただし、ffmpegはsubtitles形式について文句を言います-ストリームをデコードできません。この字幕ストリームは必要ないので、変換中に字幕ストリームのデコードを無効にするにはどうすればよいですか?

24
v_2e

ようやく答えが見つかりました。

入力ストリームからの字幕のデコードを無効にする-snなどのオプションがあります。また、オーディオとビデオのデコードには、それぞれ-anおよび-vnという類似のオプションがあります。

また、これを達成する別の方法があることも判明しました。 -mapオプションを使用して、デコードするストリームを選択できます。そのため、-mapオプションの中で字幕ストリームを省略しても問題ありません。

たとえば、3つのストリームを持つムービーファイルがある場合:

  • ストリーム0:ビデオ
  • ストリーム1:オーディオ
  • ストリーム2:字幕

fFmpegの変換コマンドは次のようになります。

ffmpeg -i <input file> -sn -vcodec <video codec> -acodec <audio codec>  <output file>

または

ffmpeg -i <input file> -vcodec <video codec> -acodec <audio codec> -map 0:0 -map 0:1  <output file>

前者のコマンドラインdeselects字幕ストリーム(複数ある場合はおそらくすべて)後者のコマンドラインselectsデコードに必要なストリームのみ。

56
v_2e