avconv を使用してビデオに字幕をオーバーレイするにはどうすればよいですか?

avconv を使用してビデオに字幕をオーバーレイするにはどうすればよいですか?

私は次のスクリプトを使用して、DVD サブ ストリームとビデオ ストリームをオーバーレイしています。

avconv -i input.mkv \
       -i subtitles.sub -filter_complex "[0:v:0][1:s:0]overlay[vid]" -map "[vid]" \
       -s hd720 -sws_flags lanczos \
       -vcodec libx264 -crf 20 -preset medium \
       ~/Desktop/test.mkv

次のエラーが発生します。

Stream specifier ':s:0' in filtergraph description [0:v:0][1:s:0]overlay[vid] matches no streams.

何をやってもうまくいきません。avconv (または ffmpeg) を使用して字幕を「焼き付ける」方法を誰か教えてもらえませんか?

答え1

興味のある人のために、私はそれを理解しました... avconv ではそれができませんが、ffmpeg ではできます。私は現在 ffmpeg に切り替えており、avconv は使用しません。

最新バージョンの ffmpeg (v 2.3.3) をコンパイルしました。 'sup' 形式の字幕を 'sub/idx' 形式に変換し、'.idx' ファイルを字幕ファイルとして指定すると、オーバーレイ プロセスがうまく機能しました。

最後のコマンドは、

ffmpeg -i input.mkv -i subtitles.idx -filter_complex '[0:v][1:s]overlay[vid]' -map '[vid]' -s hd720 -sws_flags lanczos -vcodec libx264 -crf 20 -preset medium ~/Desktop/test.mkv

もちろん、x264 設定は必要に応じて構成できます。

関連情報