miércoles, 6 de noviembre de 2013

Editar metadatos en ficheros de video MP4



Al igual que los ficheros MP3 de música guardan información de las canciones en las etiquetas ID3, o los formatos de ficheros JPG guardan la información de las fotografías con EXIF, los ficheros MP4 también tienen metadatos que permiten guardar información relacionada con los vídeos: fecha de creación, título, etc.

Mantener estas etiquetas actualizadas puede ser útil, por ejemplo, para mantener documentados y clasificados los vídeos familiares. Los gestores de fotografías suelen leer estos metadatos también en los vídeos para organizarlos junto a las fotografías.

Pongo aquí varios ejemplos alternativos que permiten modificar estos metadatos en ficheros MP4, en línea de comandos:

ffmpeg -i video_in.mp4 -acodec copy -vcodec copy -metadata creation_time="2013-06-27 17:50:00" video_out.mp4

avconv -i video_in.mp4 -c copy -metadata date="2013-06-27 17:50:00" video_out.mp4

AtomicParsley video.mp4 --year "2013-06-27 17:50:00"

MP4Box -itags "created=2013-06-27 17:50:00" video.mp4

Bibliografía:

http://ffmpeg.org
http://atomicparsley.sourceforge.net
http://gpac.wp.mines-telecom.fr

--

4 comentarios:

  1. El siguiente script permite corregir la fecha de videos creados con Android con el bug que pone que el video es de los años 40 :-)
    Se puede guardar el siguiente contenido en un script:

    #!/bin/bash
    EXTENSION=mp4
    YEAR_BAD=1947
    YEAR_GOOD=2013
    for i in *$EXTENSION; do
    RESULT=
    HOUR=`echo $i | awk '{ print substr($0,12,2) }'`
    MINUTES=`echo $i | awk '{ print substr($0,14,2) }'`
    RESULT=`avconv -i $i 2>&1 | grep creation_time | head -1 | awk '{ print $3" "$4 }' | sed s/$YEAR_BAD/$YEAR_GOOD/ | awk -F ":" '{ print $1 }'`
    RESULT=$RESULT:$HOUR:$MINUTES
    OUT=`echo $i | awk -F "." '{ print $1 }'`_fix.$EXTENSION
    avconv -i $i -c copy -metadata creation_time="$RESULT" /tmp/$OUT
    mv /tmp/$OUT .
    done

    ResponderEliminar
  2. Otra forma de hacerlo:

    exiftool "-*Date<filename" "-FileModifyDate<filename" 20190615_143423.mp4

    y para consultar las etiquetas del fichero:

    exiftool -a -s -G1 -time:all 20190615_143423.mp4

    Referencias:

    https://exiftool.org/forum/index.php?topic=6318.0

    --

    ResponderEliminar
  3. Para que funcione en los ficheros MOV de cámaras Olympus:

    exiftool "-*Date*<filename" "-*Time*<filename" "-FileModifyDate<filename" *MOV

    --

    ResponderEliminar
  4. Para rotar un video:

    ffmpeg -i input.mp4 -vf "transpose=1" output.mp4

    El parámetro transpose puede tener varios valores:

    0 - Rotar 90 grados en sentido anti-horario y voltear (flip) verticalmente. Este es el valor por defecto.
    1 - Rotar 90 grados en sentido horario.
    2 - Rotar 90 grados en sentido anti-horario.
    3 - Rotar 90 grados en sentido horario y voltear (flip) verticalmente.

    Referencias:
    https://ostechnix.com/how-to-rotate-videos-using-ffmpeg-from-commandline/

    --

    ResponderEliminar