Was ist der Unterschied zwischen "-acodec" und "-c" in FFMPEG

Was ist der Unterschied zwischen "-acodec" und "-c" in FFMPEG

Ich bin neu bei FFMPEG und kann hierzu nicht viel klare Dokumentation finden.

Ich verkette 3 MP3s (ich möchte nur Multiplexen, kein Kodieren/Transkodieren).

Beide Befehle scheinen einwandfrei zu funktionieren. Gibt es einen Unterschied zwischen der Verwendung von „-c“ und „-acodec“?

ffmpeg -i "concat:a.mp3|b.mp3|c.mp3" -acodec copy out.mp3

ffmpeg -i "concat:a.mp3|b.mp3|c.mp3" -c copy out.mp3

Ich habe stundenlang bei Google gesucht und verschiedene Dokumentationen zu ffmpeg gefunden, aber keine, die erklärt, was -c oder -acodec eigentlich machen. Ich glaube, -c steht für „Codec“ und -acodec für „Audio-Codec“?? Was macht jeder von beiden / gibt es einen Unterschied / ist einer besser?

Ich habe folgende Dokumentation gefunden, die nicht weiterhilft:

https://ffmpeg.org/ffmpeg-all.html

https://gist.github.com/tayvano/6e2d456a9897f55025e25035478a3a50

Auch alle Verbesserungsvorschläge sind herzlich willkommen (ich muss nur drei MP3s nacheinander zusammenfügen).

Danke.

Antwort1

Um auf Ihren Titel einzugehen.

Dabei -c copywerden sowohl der Audio-Codec (Acodec) als auch der Video-Codec (Vcodec) kopiert.

-c copyist das gleiche wie -acodec copy -vcodec copy

-c:a copyist das gleiche wie -acodec copy.

-c:v copyist das gleiche wie-vcodec copy

und natürlich können Sie einen Codec angeben, zB -vcodec libx264 oder-c:v libx264

Das -c steht für Codec. Alternativ können Sie auch -codec schreiben. https://ffmpeg.org/ffmpeg.html z.B -codec:a copy

-acodec copyund wenn Sie z. B. weder oder -acodec blahblahnoch angeben -codec:a ..., wird ein Standardcodec ausgewählt. Sie können auch angeben, -vndass kein Video angezeigt werden soll.https://stackoverflow.com/questions/9913032/wie-kann-ich-mit-ffmpeg-audio-aus-video-extractieren damit es kein Video kopiert oder -ankein AudioEntfernen Sie Audio aus einer Videodatei mit FFmpeg

Hinzugefügt

Die Syntax von -acodecund -vcodecist mittlerweile veraltet. Es wird empfohlen, die Syntax von -c:aund zu verwenden -c:v(die Aliase für -codec:aund sind -codec:v).

Antwort2

-coder -codecist ein allgemeiner Stream-Selektor, sodass Sie ihn verwenden können, um den Codec für alle Streams (Audio oder Video) einzustellen.

-acodecist eine Teilmenge dieser Funktionalität, die automatisch auf Audio-Streams beschränkt ist

-acodec:1ist dasselbe wie -codec:a:1und zeigt an, dass Sie den Codec für den zweiten Audiostream einstellen (der erste Audiostream ist 0).

aus Ihrer verlinkten Dokumentation: -c, -codec

-c[:stream_specifier] Codec (Eingabe/Ausgabe, pro Stream) -codec[:stream_specifier] Codec (Eingabe/Ausgabe, pro Stream)

Select an encoder (when used before an output file) or a decoder (when used before an input file) for one or more streams. codec is the

Name eines Decoders/Encoders oder eine spezielle Wertkopie (nur Ausgabe), um anzuzeigen, dass der Stream nicht erneut codiert werden soll.

-acodec

-acodec Codec (Eingabe/Ausgabe)

Legt den Audio-Codec fest. Dies ist ein Alias ​​für -codec:a.

Es gibt auch einen -vcodec, der für Videostreams auf die gleiche Weise funktioniert.

Um das Ganze zusammenzufassen, betrachten Sie diesen Befehl aus dem Dokument ffmpeg -i INPUT -map 0 -c copy -c:v:1 libx264 -c:a:137 libvorbis OUTPUT

dies bedeutet, dass für alle Streams der Originalcodec verwendet werden soll ( -c copy), für den zweiten Videostream jedoch libx264 ( -c:v:1 libx264) und für den 138. Audiostream libvorbis ( -c:a:137 libvorbis).

Mit -ckönnen Sie also alle Arten von Streams steuern, während -acodecund -vcodeclediglich Verknüpfungen für die Audio- oder Video-Teilmengen davon sind.

verwandte Informationen