Handbrake es una increíble herramienta de compresión de video, pero no parece preservar el tiempo de captura original después de comprimir un video. ¿Algúna idea de cómo arreglar esto?
metadata
video-encoding
handbrake
pixelfreak
fuente
fuente
Respuestas:
Puede copiar los metadatos existentes de un archivo a otro sin necesidad de volver a codificar el video con FFmpeg . Básicamente toma un segundo. Para hacer esto, supongamos tres archivos:
in.mp4
- el archivo original antes de la conversiónout.mp4
- el archivo después de la conversión de freno de manofixed.mp4
- el archivo con metadatos "corregidos"El comando FFmpeg para copiar el registro completo de metadatos al nuevo archivo sería:
Explicación de la sintaxis:
Para descomponerlo, esto hace lo siguiente:
in.mp4
yout.mp4
), a los que se les asignan los ID 0 y 1, respectivamente.-map 1
), por lo que tomamos las secuencias de bits que ya están convertidas-map_metadata 0
)-c copy
) para copiar todos los flujos de bits en lugar de volver a codificar el video.Después de eso, se puede cambiar el nombre, obviamente,
fixed.mp4
aout.mp4
.Prueba:
Como ejemplo, aquí hay parte del registro de metadatos de mi archivo original:
Aquí está el archivo después de la conversión de freno de mano:
Aquí está el archivo final después de mapear los metadatos:
Si quieres hacer todo con FFmpeg:
En realidad, no necesitas usar Handbrake si puedes usar FFmpeg, en el que se basa Handbrake de todos modos. En el caso más simple, puede hacer su conversión de esta manera:
Esto convertirá la entrada con el codificador x264 y el audio AAC a un archivo de salida, copiando los metadatos originales. Para cambiar la calidad de la salida, puede:
Lea la guía de codificación x264 en el wiki de FFmpeg para obtener más información.
fuente
Unknown encoder 'libfaac'
error-c:a aac -strict experimental
lugar.Desafortunadamente, parece que el freno de mano no puede hacerlo solo, pero de manera similar al ejemplo de ffmpeg, las marcas de tiempo se pueden copiar del original después de la compresión mediante el
touch
comando unix:esto establecerá la marca de tiempo en el archivo comprimido al mismo que el archivo de referencia dado.
fuente
Encontré una manera más fácil de hacer esto, usando un software diferente llamado
Adapter
: http://www.macroplant.com/adapter/No tiene todas las configuraciones avanzadas como HandBrake, pero hace el trabajo (también usando ffmpeg) y conserva los metadatos que necesito.
fuente
Estoy usando macOS Yosemite y HandBrakeBatch : úselo para convertir archivos, pero haga clic en el cuadro "mantener fechas de creación y modificación de archivos" en el menú "Preferencias".
Luego, importo los videos a Lightroom 5, pero todavía no mantienen las fechas de creación. Pero, lo más importante, los archivos se muestran en Finder con la fecha de creación correcta. Así que los seleccioné todos en la biblioteca de Lightroom → Metadatos (columna de diálogo derecha) → Tiempo de captura → Cambiar a la fecha de creación del archivo → Cambiar todo.
Tenía 850 viejos videos familiares, tuve que hacer este proceso en lotes de 100. El freno de mano se bloquea con muchos archivos.
fuente
Hice un script bash que puede transferir por lotes los metadatos, utilizando
touch
como se sugirió anteriormente. Para que funcione, debe tener sus archivos originales y convertidos en directorios separados, cada uno con el mismo número de archivos (los directorios solo deben tener los archivos de video, ya que otros archivos / directorios interferirán) y en el mismo orden. Luego simplemente copia los metadatos y ya está todo listo. El script enumera todos los pares de archivos para que pueda verificar si hay errores al final si lo desea.Es posible que el código no sea el más correcto, ya que fue mi primer script de bash adecuado, pero ha sido bastante rápido y estable para mí, así que aquí va:
Para correr hacer:
sudo bash script.sh /sourcedir /converteddir
fuente
Si te refieres al tiempo de modificación a nivel de archivo, tuve el mismo problema y pude recuperarlo con exiftool .
Esto toma los metadatos y
FileModifyDate
deinput.mp4
y los copiaoutput.mp4
.Para automatizar esto, ya que tenía una gran cantidad de archivos para transcodificar, creé una herramienta llamada Shrinkwrap que primero transcodifica con FFmpeg (me alejé de HandBrake debido a la necesidad de preservar más metadatos), luego recupera la marca de tiempo de modificación con exiftool.
fuente
Después de mucha búsqueda, me di por vencido en usar archivos de video viejos con la fecha correcta creada / modificada para sobrescribir la fecha de creación / modificación de mis nuevos archivos de video comprimidos con freno de mano. Como la mayoría de mis videos tienen la fecha / hora en el nombre del archivo, experimenté y obtuve dos métodos para trabajar. El primero y el mejor es usar el método de marca de tiempo de Advanced Renamer, que PUEDE cambiar la fecha del archivo modificado, creado y accedido, no solo el nombre del archivo en sí. https://www.advancedrenamer.com/download .
También encontré un script de PowerShell https://www.michaelmiklis.de/set-creation-and-modification-date-from-filename/ que un programador podría adaptar para otros formatos de nombre de archivo / fecha. En su estado actual, solo funciona si el nombre de archivo está estructurado exactamente como en ese ejemplo.
Afortunadamente, mi número de videos sin la fecha de modificación en el nombre del archivo es lo suficientemente bajo, puedo cambiarlos manualmente, no tomará mucho tiempo.
Intenté usar ffmpeg, pero su comando map_metadata solo cambia los datos dentro del archivo, no la fecha de modificación, creada del archivo en sí. Ese tipo de metadatos internos Handbrake ya funciona bien de todos modos.
fuente
El programa MyFFmpeg hace esto muy bien. En sus opciones hay una opción para mantener la creación original / fecha modificada del archivo fuente .
Había estado buscando esto porque tengo mis videos caseros en un servidor Plex y los archivos están organizados por la fecha de creación, lo cual es muy útil si quieres ver cosas de un año en particular.
Lamentablemente, esta no es una opción gratuita, actualmente cuesta 20 euros o unos 21 dólares estadounidenses. Tienen una prueba para 10 usos antes de que tengas que comprar una licencia. Sorprendió que algunas de las GUI gratuitas de ffmpeg no tienen o agregan esta opción.
fuente
Intento mantener la fecha de creación mientras comprimo mis videos GoPro MP4 increíblemente grandes en H.264.
Encontré el programa HandBrakeBatch . Es exactamente lo que necesito para comprimir más de 1000 archivos de una vez, manteniendo la fecha de creación (metadatos).
No he encontrado ningún otro programa que pueda hacer esto. Intenté con FFmpeg, HandBrake y Wonderful Video Converter, pero no.
fuente