Ich habe versucht, einen Weg zu googlen, um die Sprache eines Untertitel-Streams mit ffmpeg zu setzen, und habe die Option -slang gefunden. Also habe ich den folgenden Befehl ausprobiert, bekomme aber sofort einen Fehler:
%Vor%libavutil 52. 13.100 / 52. 13.100
libavcodec 54. 86.100 / 54. 86.100
libavformat 54. 59.106 / 54. 59.106
libavdevice 54. 3.102 / 54 3.102
libavfilter 3. 32.100 / 3. 32.100
libswscale 2. 1.103 / 2. 1.103
libswresample 0. 17.102 / 0. 17.102
libpostproc 52. 2.100 / 52. 2.100
Nicht erkannte Option "Slang".
Fehler beim Splitten der Argumentliste: Option nicht gefunden
Nachdem ich mehr gegoogelt habe, habe ich einen anderen Weg gefunden, es mit dem Befehl -metadata zu machen:
%Vor%Und das funktioniert absolut gut. Aber das wird nicht in der ffmpeg-man-Seite erwähnt, während -slang ist, was mich denken lässt, dass der Befehl -metadata vielleicht veraltet oder auf andere Weise nicht so gut wie -slang ist.
Nach einigen Nachforschungen fand man den Grund, warum -slang nicht funktionierte. In der Tat verwenden Sie eine aktuelle Version von ffmpeg und es ist eine gute Sache, aber wenn die Dokumentation weiterhin die Option beschreiben finden Sie im ChangeLog :
%Vor%Wenn Sie ein Befehlszeilenbeispiel finden, überprüfen Sie, ob die verwendete Option in Ihrer Version von ffmpeg enthalten ist.
%Vor% Die Option -slang
ist nicht in.
Aber es beweist auch, dass die Online-Dokumentation über ffmpeg in Bezug auf die Codeänderung manchmal falsch ist.
Die Option
setzt die Metadatensprache auf eng in der Stream-ID 1 (was in typischen Fällen der erste Audio ist) Strom). Während die Option-Metadaten: s: 1 Sprache = deu
-metadata: s: s: 0 language = engsetzt die Metadatensprache auf eng der erste Untertitel-Stream.
Von der ffmpeg-Manpage:
-metadata [: metadata_specifier] Schlüssel = Wert (Ausgabe, pro-Metadaten) Legen Sie ein Metadaten-Schlüssel / Wert-Paar fest. Ein optionaler metadata_specifier kann angegeben werden, um Metadaten für Streams oder Kapitel. Weitere Informationen finden Sie in der Dokumentation "-map_metadata".
s [: stream_spec] pro-Stream-Metadaten. stream_spec ist ein Stream Specifier, wie in der Kapitel "Stromspezifizierer" In einem Eingabe-Metadaten-Spezifizierer die erste Übereinstimmung Stream wird von kopiert. In einem Ausgabe-Metadaten-Spezifizierer alle übereinstimmenden Streams werden nach kopiert.
Und schließlich sehen wir aus dem Bereich der Stream-Spezifizierer
Mögliche Formen von Stream-Spezifizierer sind: stream_index Entspricht dem Stream mit diesem Index. Z.B. "-threads: 1 4" würde den Thread setzen Zähle für den zweiten Stream bis 4. stream_type [: stream_index] stream_type ist einer von: 'v' für Video, 'a' für Audio, 's' für Untertitel, 'd' für Daten und 't' für Anhänge. Wenn stream_index angegeben wird, wird der Stream verglichen Nummer stream_index dieses Typs. Sonst stimmen alle Streams dieses Typs überein.