¿Cómo generar miniatura de video en node.js?

Estoy construyendo una aplicación con node.js, subí el video con éxito, pero necesito generar una miniatura de video para él, actualmente uso un exec de nodo para ejecutar un comando del sistema de ffmpeg para hacer la miniatura

exec("C:/ffmpeg/bin/ffmpeg -i Video/" + Name + " -ss 00:01:00.00 -r 1 -an -vframes 1 -f mjpeg Video/" + Name + ".jpg") 

este código proviene de un tutorial de http://net.tutsplus.com/tutorials/javascript-ajax/how-to-create-a-resumble-video-uploade-in-node-js/

el código anterior generó un archivo jpg pero no es una miniatura, sino una captura de pantalla de video, me pregunto si hay algún otro método para generar una miniatura de video, o cómo ejecutar el comando ffmpeg para hacer una miniatura real (redimensionada), y prefiero archivo png, por favor ayuda !!!

Cambie el tamaño agregando una opción -s widthxheight a su comando.

Referencia al proyecto GitHub fluent-ffmpeg .

Ejemplo de repetición de la respuesta original de StackOverflow :

 var proc = new ffmpeg('/path/to/your_movie.avi') .takeScreenshots({ count: 1, timemarks: [ '600' ] // number of seconds }, '/path/to/thumbnail/folder', function(err) { console.log('screenshots were saved') }); 

Hay un módulo de nodo para esto: video-thumb

Básicamente simplemente envuelve una llamada a exec ffmpeg

Recomiendo usar https://www.npmjs.com/package/fluent-ffmpeg para llamar a ffmpeg desde Node.js

En su lugar, recomendaría el uso de thumbsupply . Además de proporcionarle miniaturas, las almacena en caché para mejorar significativamente el rendimiento.

 npm install --save thumbsuppply 

Después de instalar el módulo, puede utilizarlo de la siguiente manera.

 const thumbsupply = require('thumbsupply')("com.example.application"); thumbsupply.generateThumbnail('some-video.mp4') .then(thumb => { // serve thumbnail })