Fehler in FFMPG CLI

Majestro1337

Commander
Registriert
Sep. 2008
Beiträge
2.833
Hallo Leute,

vielleicht kann mir jemand helfen. Ich habe folgende FFMPG CLI

ffmpeg.exe -i c:\test\1.mkv -c copy -map 0:v -map 0:1 -c:1 eac3 -b:a 640k -map 0:s? -map 0:d? -max_muxing_queue_size 9999 c:\test\2.mkv

FFMPEG spuckt mir aus:
Invalid encoder type 'eac3' --> offenbar findet er den Audio-Stream nicht.

Infos der Quelle:
Stream #0:0(ger): Video: h264 (High), yuv420p(progressive), 1280x720 [SAR 1:1 DAR 16:9], 30 fps, 30 tbr, 1k tbn, 60 tbc (default)
Stream #0:1(ger): Audio: aac (LC), 48000 Hz, stereo, fltp (default)
Stream #0:2: Video: png, rgb24(pc), 640x480 [SAR 2834:2834 DAR 4:3], 90k tbr, 90k tbn, 90k tbc --> (btw kein plan was das immer ist)

Könnt ihr mir sagen was falsch ist?

Bevor jemand kommt und sagt: Warum so kompliziert mit mapping etc.:
Die CLI wird per js zusammengebastelt, d.h. es kann auch andere Zuordnungen geben, hier z.B. ein Schnipsel:
ffmpegCommand += ` -map 0:${i} -c:${i} ${encoder} `; if (inputs.bitrate !== '') { ffmpegCommand += `-b:a ${inputs.bitrate} `;

Das mapping muss also drin bleiben.
Muss die Reihenfolge irgendwie anders sein? Ich hab bisschen rumprobiert, finde den Fehler aber nicht 🤯

Besten Dank im Voraus!
 
Daran hab ich auch gedacht, aber das ist es nicht, denn:

Invalid encoder type 'mp3'

und unter -encoders taucht eac3, mp3 etc auch auf. er sagt ja auch nciht "kenn ich nicht" sondern "invalid"
 
Ich würde den Syntax auch etwas anpassen, z.B.:

Code:
ffmpeg.exe -i c:\test\1.mkv -c:v copy -c:a eac3 -b:a 640k -map "0:s?" -map "0:d?" -max_muxing_queue_size 9999 c:\test\2.mkv
 
jb_alvarado schrieb:
Code:
ffmpeg.exe -i c:\test\1.mkv -c:v copy -c:a eac3 -b:a 640k -map "0:s?" -map "0:d?" -max_muxing_queue_size 9999 c:\test\2.mkv

Damit läuft es auch sauber durch, ich brauch aber das 0:i mapping, weil die quelldatei eben x audiostreams haben kann und ich via script nur den i-ten stream via ffmpeg konvertieren will :-(
 
ffmpeg.exe -i c:\test\1.mkv -c copy -map 0:v -map 0:1 -c:a eac3 -b:a 640k -map 0:s? -map 0:d? -max_muxing_queue_size 9999 c:\test\2.mkv

so scheint er es jetzt für die datei zu fressen, aber ob das auch klappt wenn mehrere streams dabei sind weiß ich nciht genau. wenn ich das richtig intepretiere hab ich ihm mit map 0:1 schon das mapping und jetzt korrekt mit c:a und b:a jeweils codec und bitrate für den audiostream mitgeteilt, vorher wollte ich ihm einen codec für einen stream aufschwatzen, was ihn wohl nicht interessiert hat 🧐
dazu passt aber die fehlermeldung nicht wirklich...
 
-c copy und -c:a ... mag ffmpeg auch nicht wirklich, dann kommt eine Warnung:

Code:
Multiple -c, -codec, -acodec, -vcodec, -scodec or -dcodec options specified for stream 1, only the last option '-c:1 eac3' will be used.

Also -c:v copy wäre besser. Wenn du noch Subtitles berücksichtigen willst, lieber noch ein -c:s copy dazu, und für Data -c:d copy.
 
  • Gefällt mir
Reaktionen: Majestro1337
Majestro1337 schrieb:
Stream #0:2: Video: png, rgb24(pc), 640x480 [SAR 2834:2834 DAR 4:3], 90k tbr, 90k tbn, 90k tbc --> (btw kein plan was das immer ist)
Bestimmt ein Thumbnail und verursacht sehr wahrscheinlich das Problem. -map 0:1 bezieht sich auf den zweiten Stream in der Eingabedatei, -c:1 auf den zweiten Stream in der Ausgabedatei. Wenn ich deine -map-Optionen auf eine Eingabedatei wie deine (0:0 Video, 0:1 Audio, 0:2 Video) anwende, sortiert ffmpeg die Streams in der Ausgabedatei um (0:0 Video -> 0:0 Video, 0:2 Video -> 0:1 Video, 0:1 Audio -> 0:2 Audio). -c:1 eac3 bezieht sich dann auf einen Video-Stream und verursacht eine Fehlermeldung, -c:2 eac3 funktioniert.

jb_alvarado schrieb:
-c copy und -c:a ... mag ffmpeg auch nicht wirklich, dann kommt eine Warnung:
Ja, man bekommt eine Warnung, nicht mehr. Funktionieren tut es wie es soll, die Warnung kann man also einfach ignorieren.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Majestro1337
Zurück
Oben