Wie kann ich alle Metadaten aus allen Formaten über FFmpeg entfernen?
Ich kann nur spezielle Metadaten für jedes Format per man ffmpeg einstellen . Gibt es eine Option oder Methode zum Löschen aller Metadaten und zum Entfernen von Medien aus allen auf ffmpeg verfügbaren Metadaten?
-metadata key=value
Set a metadata key/value pair.
For example, for setting the title in the output file:
ffmpeg -i in.avi -metadata title="my title" out.flv
mov
odermp4
Dateien ist das Erstellungsdatum ein ganzzahliges Feld in der Kopfzeile des Films und in der Titelzeile (ausgedrückt als Sekunden seit 1904). Obwohl Sie den Wert auf 0 oder einen anderen festen Wert setzen könnten, gibt es keine Möglichkeit, ihn zu entfernen, und Sie haben immer noch einen gültigen Wertmov
oder einemp4
Datei.-metadata creation_time=2012-12-17T21:30:00
(UTC) geändert werden .-metadata title="Some Value"
. Oder für eine Datei wieffmpeg -i "$file" -map_metadata -1 -c copy -metadata title="$file" "${file%%*.mp4}-new.mp4
Meine Lösung zum Entfernen von Metadaten, Kapiteln, zum Ändern der Erstellungszeit und des Titels. Auf diese Weise sollte sich jeder Metacontent von der Originaldatei unterscheiden:
quelle
HINWEIS: Ich habe seitdem aktualisiert
ffmpeg
(zuvor hatte ich die veraltete Version vonavconv
aus den Ubuntu-Repositories).Jetzt funktioniert @ slhck's
-map_metadata -1
einwandfrei.Ich empfehle die @ slhck-Lösung, weil sie weniger tippt und aktuell ist. Ich lasse dies hier für alle, die eine veraltete Version verwenden.
Der einfachste Weg, dies zu tun, besteht darin
-map_metadata
, einen der Eingabestreams zu verwenden, anstatt globale Metadaten zu verwenden. In 99% der Fälle sollte dies funktionieren. HINWEIS: Ich verwende avconv, da dies in den Ubuntu 12.04-Repositories enthalten ist. Dies wird wahrscheinlich mit ffmpeg kompatibel sein, da die Syntax meiner Erfahrung nach immer stimmt.Dadurch werden die Metadaten aus dem ersten Datenstrom (normalerweise dem Videostrom) entnommen und zum Ersetzen der globalen Metadaten der Containerdatei verwendet. Dies funktioniert, weil in den Datenströmen meist keine aussagekräftigen Metadaten geschrieben sind. Manchmal ist dies jedoch der Fall, und Sie möchten diese Metadaten vollständig entfernen. Leider war die einzige Möglichkeit, die mir in den Sinn kam, eine Pipe und zwei avconv-Prozesse.
Dies nutzt die Tatsache aus, dass WAV-Dateien keine Metadaten enthalten können (da das Format erstellt wurde, bevor Metadaten-Tags vorhanden waren).
Beide Methoden haben alle Metadaten in einer Datei ausgeblendet, mit der ich sie gerade getestet habe. Es wurden nur
exiftool
die Codec-Informationen gemeldet, und avprobe hat mir keine Metadaten gemeldet. Die Verwendung einer Pipe ist ziemlich hässlich, und die erste Methode funktioniert in 99% der Fälle, sodass dies bevorzugt werden sollte.quelle