Wie bearbeite ich einfach die Untertitel einer MKV-Datei, während die Video-, Audio- und Anhangsströme erhalten bleiben?

456
Flair

Wenn ich mir das Originalvideo anschaue:

ffprobe -v error -show_entries stream=index,codec_name,codec_type example.mkv 

Ich sehe so etwas:

[STREAM] index=0 codec_name=h264 codec_type=video [/STREAM] [STREAM] index=1 codec_name=aac codec_type=audio [/STREAM] [STREAM] index=2 codec_name=ass codec_type=subtitle [/STREAM] [STREAM] index=3 codec_name=ttf codec_type=attachment [/STREAM] 

Mein Prozess beinhaltet das Extrahieren der Arschdatei über:

ffmpeg -i input.mkv -map 0:s:0 subs.ass 

Ich bearbeite die Untertiteldatei in vim. Dann versuche ich, die Untertiteldatei mit etwas in der mkv-Datei wieder hinzuzufügen:

ffmpeg -i input.mkv -f ass -i subs.ass \ -map 0:0 -map 0:1 -map 1:0 -c:v copy -c:a copy \ -c:s copy output.mkv 

Aber wenn ich die output.mkv prüfe, sehe ich nur

[STREAM] index=0 codec_name=h264 codec_type=video [/STREAM] [STREAM] index=1 codec_name=aac codec_type=audio [/STREAM] [STREAM] index=2 codec_name=ass codec_type=subtitle [/STREAM] 

Wie Sie sehen, verliere ich den Anhangsstrom und die Untertitel werden standardmäßig nicht mehr abgespielt. So bin ich auf andere Befehle gestoßen:

Untertitel als Standard festlegen:

ffmpeg -i output.mkv -f ass -i subs.ass -c copy -disposition:s:0 default out.mkv 

Dump-Font vom Original:

ffmpeg -dump_attachment:t "" -i original.mkv 

Füge dem bearbeiteten Video eine Schriftart hinzu:

ffmpeg -i out.mkv -attach OpenSans-Semibold.ttf -metadata:s:3 mimetype=application/x-truetype-font final.mkv 

Aber irgendwie ändert sich während dieser Prozesse das Audio von aaczu vorbisund das Video von h264 (native)bis h264 (libx264). Wie kann ich die Streams beibehalten, während ich einfache Fehleränderungen an den Untertiteln vornehme?

0

1 Antwort auf die Frage

0
Gyan

# 1 Untertitel extrahieren

ffmpeg -i input.mkv -c copy -map 0:s:0 subs.ass 

# 2 Mux-bearbeitete Subs

ffmpeg -i input.mkv -i subs.ass \ -map 0:v -map 0:a -map 1 -map 0:t -c copy -disposition:s:0 default output.mkv 
Vielen Dank! Mein früherer Vorgang hat eine Weile gedauert, aber diese beiden Befehle werden in wenigen Sekunden beendet. Flair vor 5 Jahren 0