J'utilise ffmpeg pour extraire une image et l'enregistrer dans un fichier jpg comme suit.
ffmpeg -i video.avi -r 1 -f image2 -q 1 %05d.jpg
Cependant, comment puis-je obtenir les informations d'horodatage de chaque image extraite. Par exemple, je voudrais enregistrer le fichier jpg avec le nom de fichier sous le nom hh_mm_ss.jpg?
00_01_30.jpg
- plutôt que l'horodatage de l'heure système à laquelle le fichier a été créé.Réponses:
Eh bien, il semble que ffmpeg ne puisse pas gérer cela (pas plus que d’autres solutions populaires telles que VLC Media Player). Une solution de contournement que j'ai utilisée consiste à obtenir la durée de la vidéo
ffmpeg -i video_file.mp4
et à la diviser par le nombre d'images.À titre d'exemple, voici un script bash que j'ai écrit: le traitement par lots traite un ensemble de vidéos, les divise en images (@ 30 ips) et renomme les fichiers afin qu'ils aient à la fois l'horodatage de la vidéo (en millisecondes à compter du début de la vidéo) et le numéro de l'image. à l'origine.
Je suis sûr que le script pourrait être plus efficace, mais il fonctionne assez bien pour mes besoins, donc j'espère qu'il trouvera une utilisation (puisque cette question est à venir dans les recherches sur Google):
la source