Ich hatte einen Film von Arte heruntergeladen, der dort zweisprachig lief. In der Mediathek gab es aber nur die deutsche und die französische Version. Was tun, um beide Tonspuren in eine Mediendatei zu packen?
Die Befehlszeile lautet
ffmpeg -i video_fra.mp4 -i video_deu.mp4 -i video_deu.srt -map 0:0 -map 1:1 -map 0:1 -map 2 -metadata:s:a:0 language=ger -metadata:s:a:1 language=fra -metadata:s:s:0 language=ger -c:v copy -c:a copy -c:s mov_text out.mp4
Nimmt man die einzelnen Parameter auseinander, so hat man folgende Bedeutungen:
-i video_fra.mp4 | Gibt die Ausgangs-Videos an. Die dritte Eingabedatei ist eine passende Untertiteldatei |
-map 0:0 -map 1:1 -map 0:1 -map 2 | Welche Spuren des Ausgangsmaterials in welcher Reihenfolge im Ziel auftaucht. Bedeutung: 1. Spur im Ziel ist die 1. Spur der 1. Quelle (= Video von video_fra.mp4) 2. Spur im Ziel ist die 2. Spur der 2. Quelle (= Ton von video_deu.mp4) 3. Spur im Ziel ist die 2. Spur der 1. Quelle (=Ton von video_fra.mp4) 4. Spur im Ziel ist die gesamte 3. Quelle (=Untertitel) |
-metadata:s:a:0 language=ger -metadata:s:a:1 language=fra -metadata:s:s:0 language=ger | Sie 1. Tonspur soll „deutsch“ sein, die 2. Tonspur „französisch“ und die 1. Untertitelspur ebenfalls „deutsch“ |
-c:v copy -c:a copy -c:s mov_text | Video soll nicht neu kodiert werden, sondern kopiert, ebenso die Tonspur. Die Untertitel werden in das für mp4 passende Format konvertiert |
Endlich eine verständliche und praktisch nachvollziehbare Anleitung zu Ffmpeg! Gerne mehr zu dem Thema!
Allerdings gelingt es mir nur 2 Tonspuren einzubeziehen. Die dritte mit dem fremdsprachingen Ton fehlt immer, obwohl sie in der Originalaufnahme mit dem DVBViewer vorhanden ist. Mit dem DVBViewer und VLC kann sie auch abgespielt werden.
ffmpeg -i Quelle.ts -map 0:0 -map 0:1 -map 0:2 -metadata:s:a:0 language=ger -metadata:s:a:1 language=mis -metadata:s:a:2 language=mul -f dvd Ziel.ts Die Quelle ist TS mit HEVC H265 und das Ziel soll MPEG als TS sein.