2017-01-27 2 views
2

En utilisant avconv (ou même ffmpeg, donc je peux l'utiliser comme référence), comment puis-je créer une vidéo time-lapse en prenant uniquement des images d'ancrage/référence d'une autre vidéo? La plupart des informations que je trouve sur la façon de créer une vidéo en accéléré en combinant des images, et je voudrais le faire en extrayant des images d'une vidéo. Par exemple, si une vidéo dure 30 secondes à 30 images par seconde, je voudrais prendre 60 images sur ces 900 images (900/60 = toutes les 15 secondes) pour produire une vidéo de 2 secondes.Créer une vidéo time-lapse à partir d'une autre vidéo

Répondre

2

Pour prendre tous les 15 châssis, utilisez

ffmpeg -i in.mp4 -vf select='not(mod(n,15))',setpts=N/FRAME_RATE/TB out.mp4 

Une autre méthode consiste à utiliser le filtre framestep

ffmpeg -i in.mp4 -vf framestep=15,setpts=N/FRAME_RATE/TB out.mp4 
+0

obtenu des erreurs différentes en cours d'exécution de ces deux commandes: « Missing «) » ou trop args dans 'mod (n' "et" Option 'framestep' non trouvé " – odigity

+0

Pour la première erreur, vous avez probablement besoin d'échapper la virgule, donc' n \, 15' et pour la 2ème, revérifiez la chaîne de commande. en utilisant un très ancien ffmpeg (avant que le filtre de frametep ne soit ajouté), il se serait plaint "pas un tel filtre" mais vous obtenez une erreur 'option', qui indique une commande mal formée. L'utilisez-vous dans un shell ou un wrapper? Quelle est la chaîne exacte? – Mulvya

+0

Je cours Ubuntu 16.10 avec ffmpeg 3.0.7, et je copie et colle textuellement vos deux lignes de commande, en changeant seulement les noms de fichier dedans et dehors. – odigity