Le frein à main est un outil de compression vidéo génial, mais il ne semble pas conserver le temps de capture d'origine après la compression d'une vidéo. Une idée de comment résoudre ce problème?
metadata
video-encoding
handbrake
pixelfreak
la source
la source
Réponses:
Vous pouvez copier les métadonnées existantes d'un fichier à un autre sans avoir besoin de recoder la vidéo à l'aide de FFmpeg . Cela prend essentiellement une seconde. Pour ce faire, supposons trois fichiers:
in.mp4
- le fichier d'origine avant conversionout.mp4
- le fichier après la conversion du frein à mainfixed.mp4
- le fichier avec les métadonnées "corrigées"La commande FFmpeg pour copier l'enregistrement de métadonnées complet dans le nouveau fichier serait alors:
Explication de la syntaxe:
Pour le décomposer, cela fait ce qui suit:
in.mp4
etout.mp4
), auxquels sont attribués les ID 0 et 1, respectivement.-map 1
), nous prenons donc les flux binaires déjà convertis-map_metadata 0
)-c copy
) pour copier tous les flux binaires au lieu de ré-encoder la vidéo.Après cela, vous pouvez renommer évidemment
fixed.mp4
àout.mp4
.Preuve:
À titre d'exemple, voici une partie de l'enregistrement de métadonnées de mon fichier d'origine:
Voici le fichier après la conversion du frein à main:
Voici le fichier final après avoir mappé les métadonnées:
Si vous voulez tout faire avec FFmpeg:
En fait, vous n'avez pas vraiment besoin d'utiliser le frein à main si vous pouvez utiliser FFmpeg, sur lequel Handbrake s'appuie de toute façon. Dans le cas le plus simple, vous pouvez effectuer votre conversion comme ceci:
Cela convertira l'entrée avec l'encodeur x264 et l'audio AAC en un fichier de sortie, en copiant les métadonnées d'origine. Afin de modifier la qualité de la sortie, vous pouvez:
Lisez le guide d'encodage x264 sur le wiki FFmpeg pour en savoir plus.
la source
Unknown encoder 'libfaac'
erreur-c:a aac -strict experimental
plutôt.Malheureusement, il semble que le frein à main ne puisse pas le faire seul, mais de la même manière que dans l'exemple ffmpeg, les horodatages peuvent être copiés à partir de l'original après compression en utilisant la
touch
commande unix:cela définira l'horodatage du fichier compressé sur le même que le fichier de référence donné.
la source
J'ai trouvé un moyen plus facile de le faire, en utilisant un autre logiciel appelé
Adapter
: http://www.macroplant.com/adapter/Il n'a pas tous les paramètres avancés comme HandBrake mais il fait le travail (en utilisant également ffmpeg) et conserve les métadonnées dont j'ai besoin.
la source
J'utilise macOS Yosemite et HandBrakeBatch - utilisez-le pour convertir des fichiers, mais cliquez sur la case "conserver les dates de création et de modification des fichiers" dans le menu "Préférences".
Ensuite, j'importe les vidéos dans Lightroom 5, mais elles ne conservent toujours pas les dates de création. Mais, plus important encore, les fichiers sont affichés dans le Finder avec la date de création correcte. Je les ai donc tous sélectionnés dans la bibliothèque Lightroom → Métadonnées (colonne de dialogue de droite) → Heure de capture → Changer la date de création du fichier → Tout changer.
J'ai eu 850 vieilles vidéos de famille - j'ai dû faire ce processus par lots de 100. Frein à main se bloque avec beaucoup de fichiers.
la source
J'ai fait un script bash qui peut transférer par lots les métadonnées, en utilisant
touch
comme suggéré ci-dessus. Pour que cela fonctionne, vous devez avoir vos fichiers originaux et convertis dans des répertoires séparés, chacun avec le même nombre de fichiers (les répertoires ne doivent avoir que les fichiers vidéo, car d'autres fichiers / répertoires interféreront) et dans le même ordre. Ensuite, il copie simplement les métadonnées et tout est prêt. Le script répertorie toutes les paires de fichiers afin que vous puissiez vérifier les erreurs à la fin si vous le souhaitez.Le code n'est peut-être pas le plus soigné car c'était mon premier bon script bash, mais il a été assez rapide et stable pour moi, alors voici:
Pour exécuter do:
sudo bash script.sh /sourcedir /converteddir
la source
Si vous voulez dire le temps de modification au niveau du fichier, j'ai eu le même problème et j'ai pu le récupérer avec exiftool .
Cela prend les métadonnées et à
FileModifyDate
partirinput.mp4
et la copieoutput.mp4
.Pour automatiser cela car j'avais un grand nombre de fichiers à transcoder, j'ai créé un outil appelé Shrinkwrap qui transcode d'abord avec FFmpeg (je me suis éloigné de HandBrake car il fallait conserver plus de métadonnées), puis récupère l'horodatage de modification avec exiftool.
la source
Après beaucoup de recherches, j'ai surtout abandonné l'utilisation de vieux fichiers vidéo avec une date correcte créée / modifiée pour écraser la date créée / modifiée de mes nouveaux fichiers vidéo compressés par Handbrake. Étant donné que la plupart de mes vidéos ont la date / l'heure dans le nom de fichier, j'ai expérimenté et obtenu deux méthodes pour travailler. La première et la meilleure consiste à utiliser la méthode d'horodatage Advanced Renamer, qui PEUT changer la date de fichier modifiée, créée et accessible, pas seulement le nom du fichier lui-même. https://www.advancedrenamer.com/download .
J'ai également trouvé un script PowerShell https://www.michaelmiklis.de/set-creation-and-modification-date-from-filename/ qui pourrait être adapté par un programmeur pour d'autres formats de nom de fichier / date. Dans son état actuel, cela ne fonctionne que si le nom de fichier est structuré exactement comme dans cet exemple.
Heureusement, mon nombre de vidéos sans la date de modification dans le nom de fichier est suffisamment faible. Je peux les modifier manuellement, cela ne prendra pas trop de temps.
J'ai essayé d'utiliser ffmpeg, mais sa commande map_metadata ne modifie que les données à l'intérieur du fichier, pas la date de modification, créée du fichier lui-même. Ce genre de métadonnées internes Handbrake fait déjà très bien avec de toute façon.
la source
Le programme MyFFmpeg le fait très bien. Dans ses options, il est possible de conserver la date de création / modification d'origine du fichier source .
Je cherchais cela parce que j'ai mes vidéos personnelles sur un serveur Plex et les fichiers sont organisés par date de création, ce qui est très utile si vous voulez voir des choses d'une année particulière.
Malheureusement, ce n'est pas une option gratuite, coûte actuellement 20 euros ou environ 21 US. Ils ont un essai pour 10 utilisations avant de devoir acheter une licence. Surpris certaines des interfaces graphiques ffmpeg gratuites n'ont pas ou ajoutent cette option.
la source
J'essaie de maintenir la date de création pendant que je compresse mes vidéos GoPro MP4 incroyablement grandes en H.264.
J'ai trouvé le programme HandBrakeBatch . C'est exactement ce dont j'ai besoin pour compresser plus de 1000 fichiers en une seule fois, tout en conservant la date de création (métadonnées).
Je n'ai trouvé aucun autre programme capable de le faire. Essayé avec FFmpeg, HandBrake et Wonderful Video Converter, mais non.
la source