2010-02-02 24 views
5

Ok, il semble que chaque fois que je le dis ffmpeg de prendre un cap écran à mi-chemin que le clip (clip peut être aussi longtemps que 10 heures), il utilise 100% de 1 core cpu et prend les âges ... alors que si je laisse faire un cadre au début, ça se passe très vite, comme si la vidéo balayait la vidéo pour arriver au milieu au lieu de simplement sauter dessus!Comment capturer des captures d'écran d'un clip vidéo 50 minutes dans le clip et le faire rapidement?

Voici le code im utilisant actuellement:

ffmpeg -y -itsoffset -“500" -i “clipname.mov" -vcodec png -vframes 1 -an -f rawvideo “clipScreenshot001.png” 

Cela peut prendre plusieurs minutes.

Ce sont des vidéos HD aussi, 720p/1080p et Allot du temps, ils sont des clips non édités premières (par exemple très long).

J'espérais pour un meilleur logiciel qui fera des captures d'écran de la vidéo beaucoup plus rapide (doit être linux et scriptable).

+1

Je trouve cela => http://www.fengcool.com/2008/12/ffmpeg- capture-screenshot-from-a-video-file/Il pourrait vous aider avec votre problème. – brozo

+2

Votre vidéo ne contient probablement pas assez de cadres de référence ou n'est pas indexée. Capturer une image à l'avance dans le flux nécessitera toujours un balayage et un décodage complets: opérations d'E/S intensives et calculs coûteux. Cela prend toujours beaucoup de temps. À moins que vous ne le prépariez à l'avance, vous devez traiter la vidéo au moins une fois. Essentiellement, vous pouvez (1) réencoder la vidéo avec un autre format avec des cadres de référence indexés (.avi mpeg par exemple), vous pouvez ensuite capturer l'écran aux endroits désirés beaucoup plus rapidement. Ou, (2) vous pouvez capturer, disons un par seconde, et conserver tous les écrans capturés. –

Répondre

7

Essayez d'utiliser seek (le drapeau -ss) au lieu de retarder (le -itsoffset), à savoir:

ffmpeg -y -ss 3000 -i "clipname.mov" -vframes 1 "clipScreenshot001.png" 
+1

hein, je pensais que j'avais essayé cela, devinez pas. Il fait maintenant une capture d'écran en moins d'une seconde, ce qui prendrait environ 5 minutes avant, MERCI! Pour être honnête, je ne pensais pas que quelqu'un figurerait cette question, mais Im un gars heureux maintenant qu'il est (et mes remerciements CPU vous aussi :)) – Mint

+0

Cool! Vous et votre CPU sont les bienvenus: p –

+0

Excellent, j'utilisais -itsoffset mais -ss fonctionne beaucoup plus vite – MondKin