Stellen Sie eine Untertitelsprache mit ffmpeg ein

8

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.

  1. Was ist der Unterschied zwischen den beiden oben genannten Methoden (-slang vs -metadata)?
  2. Warum hat mein Befehl -slang einen Fehler ausgegeben? Habe ich es falsch benutzt?
Sam 29.07.2013, 15:35
quelle

2 Antworten

3

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.

    
alexbuisson 30.07.2013, 14:36
quelle
6

Die Option

  

-Metadaten: s: 1 Sprache = deu

  setzt die Metadatensprache auf eng in der Stream-ID 1 (was in typischen Fällen der erste Audio ist)   Strom). Während die Option

-metadata: s: s: 0 language = eng
setzt 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.
    
Ed.B 11.01.2014 07:32
quelle

Tags und Links