web-dev-qa-db-ja.com

avconvを使用して字幕をビデオにオーバーレイする方法は?

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

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
hatterman

興味のある人のために、私はそれを理解しました..... 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設定は必要に応じて構成できます。

2
hatterman