Was ist in FFMPEG der Unterschied zwischen der Verwendung von -c:v libx264, -c:v copy und -vcodec copy?

Was ist in FFMPEG der Unterschied zwischen der Verwendung von -c:v libx264, -c:v copy und -vcodec copy?

Ich versuche, Video und Audio von einer IP-Kamera aufzunehmen, die im H.264-Streaming arbeitet.

Ich habe diese verschiedenen Optionen gefunden:

-i "camera_url"  -c:v libx264 -acodec copy "out.mp4"
-i "camera_url"  -c:v copy -acodec copy "out.mp4"
-i "camera_url"  -vcodec copy -acodec copy "out.mp4"

Kann mir jemand sagen, was der Unterschied zwischen diesen drei Aufnahmearten ist? Soweit ich weiß, wird bei der letzten keine Transkodierung durchgeführt, sodass alles, was von der Kamera kommt, in der Datei gespeichert wird. Was ist mit den anderen beiden?

Antwort1

Die -codecOption legt die Wahl des Encoders fest. Dies kann entweder der Name eines Encoders oder sein copy. Letzterer vermeidet die Transkodierung und kopiert die Pakete vom Eingang zum Ausgang. -cist eine Kurzform für -codec. Beide können akzeptierenStream-Spezifizierer, wie -c:v:2oder -codec:a. Ersteres legt den Encoder für den 3. Videostream in der Ausgabe fest und letzteres legt den Encoder für alle Audiostreams fest.

vcodecund acodecsind Aliase für -c:vund -c:a, akzeptieren aber keine Stream-Spezifizierer.

verwandte Informationen