HINWEIS: Mit einer aktuellen Version von ffmpeg (und vermutlich avconv, aber ich habe das nicht getestet) können Sie einfach Folgendes verwenden:
ffmpeg -i input.mp4 -map 0 -map_metadata -1 -c copy output.mp4
Mit -map_metadata -1
wird eine leere 'Dummy'-Metadatenquelle erstellt. Verwenden Sie für die Version von avconv in den Repos oder andere veraltete Versionen die unten beschriebene Methode.
Mit avconv (oder ffmpeg, wenn dies Ihre bevorzugte Waffe ist, ist die Syntax dieselbe):
Der einfachste Weg, dies zu tun, besteht darin -map_metadata
, einen der Eingabestreams anstelle globaler Metadaten zu verwenden. In 99% der Fälle sollte dies funktionieren.
avconv -i input.mp4 -map 0 -map_metadata 0:s:0 -c copy output.mp4
Dadurch werden die Metadaten aus dem ersten Datenstrom (normalerweise dem Videostream) entnommen und zum Ersetzen der globalen Metadaten der Containerdatei verwendet. Dies funktioniert, da in die Datenströme meistens keine aussagekräftigen Metadaten geschrieben sind. Manchmal tun sie dies jedoch, und Sie möchten diese Metadaten vollständig entfernen. Leider kann ich mir nur eine Pipe und zwei avconv-Prozesse vorstellen.
avconv -i input.mp4 -f wav - | avconv -i - -i input.mp4 -map 1 -map_metadata 0 -c copy output.mp4
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, in der ich sie gerade getestet habe. Es wurden lediglich exiftool
die Codec-Informationen gemeldet, und avprobe hat mir keine Metadaten gemeldet. Die Verwendung einer Pfeife ist ziemlich hässlich, und die erste Methode funktioniert in 99% der Fälle, daher sollte dies bevorzugt werden.
BONUS: um eine ausgeblendete Version jedes MP4 in einem Verzeichnis zu erstellen und dann die Metadatenversionen durch die ausgeblendeten Versionen zu ersetzen (Warnung - ziemlich irreversibel):
for f in *.mp4; do avconv -i "$f" -map 0 -map_metadata 0:s:0 -c copy "out.$f"; mv "out.$f" "$f"; done