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
--
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 :-)
ResponderEliminarSe 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
Otra forma de hacerlo:
ResponderEliminarexiftool "-*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
--
Para que funcione en los ficheros MOV de cámaras Olympus:
ResponderEliminarexiftool "-*Date*<filename" "-*Time*<filename" "-FileModifyDate<filename" *MOV
--
Para rotar un video:
ResponderEliminarffmpeg -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/
--