Ich verwende das folgende Skript, um einen DVD-Sub-Stream und einen Video-Stream zu überlagern.
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
Ich erhalte die folgende Fehlermeldung:
Stream specifier ':s:0' in filtergraph description [0:v:0][1:s:0]overlay[vid] matches no streams.
Egal was ich tue, ich bekomme es einfach nicht zum Laufen. Kann mir jemand sagen, wie man mit avconv (oder ffmpeg) Untertitel „einbrennt“?
Antwort1
Für alle, die es interessiert: Ich habe es herausgefunden … avconv kann das nicht, ffmpeg kann es. Ich bin jetzt auf ffmpeg umgestiegen und werde avconv fallenlassen.
Ich habe die neueste Version von ffmpeg (v 2.3.3) kompiliert. Ich habe meine Untertitel im Format „sup“ in das Format „sub/idx“ konvertiert, dann die Datei „.idx“ als Untertiteldatei angegeben und der Overlay-Prozess hat wunderbar funktioniert.
Der letzte Befehl lautet:
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
Die x264-Einstellungen können natürlich beliebig konfiguriert werden.