¿Cómo puedo eliminar todos los metadatos de todos los formatos a través de FFmpeg?
Solo puedo establecer metadatos especiales para cada formato por hombre ffmpeg . ¿Alguna opción o método para borrar todos los metadatos y tiras de todos los metadatos disponibles en ffmpeg?
-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
omp4
archivos, la fecha de creación es un campo entero en el encabezado de la película y los encabezados de las pistas (expresados en segundos desde 1904). Aunque podría establecerlo en 0 o en algún otro valor fijo, no hay forma de eliminarlo y aún así tener un archivo válidomov
omp4
.-metadata creation_time=2012-12-17T21:30:00
(UTC).-metadata title="Some Value"
. O, para un archivo, algo así para un archivo MP4:ffmpeg -i "$file" -map_metadata -1 -c copy -metadata title="$file" "${file%%*.mp4}-new.mp4
Mi solución para eliminar metadatos, capítulos, para cambiar el tiempo de creación y el título. De esta manera, cualquier metacontenido debe ser diferente del archivo original:
fuente
NOTA: Desde entonces he actualizado
ffmpeg
(anteriormente tenía la versión desactualizada deavconv
los repositorios de Ubuntu).Ahora @ slhck's
-map_metadata -1
funciona perfectamente.Recomiendo la solución de @ slhck porque es menos tipeada y está más actualizada. Dejo esto aquí para cualquiera que use una versión desactualizada.
La forma más fácil de hacer esto es configurar
-map_metadata
para usar una de las secuencias de entrada, en lugar de usar metadatos globales. 99% del tiempo esto debería funcionar. NOTA: Estoy usando avconv, porque está en los repositorios de Ubuntu 12.04; Esto probablemente será compatible con ffmpeg, ya que su sintaxis siempre está en mi experiencia.Esto tomará los metadatos del primer flujo de datos (normalmente el flujo de video) y los usará para reemplazar los metadatos globales del archivo contenedor. Esto funciona porque la mayoría de las veces, los flujos de datos no tienen metadatos significativos escritos en ellos; sin embargo, a veces lo hacen, y desea deshacerse por completo de esos metadatos. Desafortunadamente, la única forma en que se me ocurre hacer esto es mediante una tubería y dos procesos avconv.
Esto aprovecha el hecho de que los archivos WAV no pueden contener metadatos (ya que el formato se creó antes de que existieran las etiquetas de metadatos).
Ambos métodos pusieron en blanco todos los metadatos en un archivo en el que los probé, todo lo que se
exiftool
informó fue la información del códec, y avprobe no me informó ningún metadato. Usar una tubería para esto es bastante feo, y el primer método funcionará en el 99% de los casos, por lo que debería preferirse.fuente