¿Cómo generar miniaturas de video en node.js?
Estoy creando una aplicación con node.js, subí el video con éxito, pero necesito generar una miniatura del video. Actualmente uso node exec para ejecutar un comando del sistema de ffmpeg para crear 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-resumable-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 existe algún otro método para generar una miniatura de video o cómo ejecutar el comando ffmpeg para crear una miniatura real (redimensionada), y prefiero archivo png.
Referencia al proyecto GitHub fluent-ffmpeg .
Ejemplo repetido 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')
});
Cambie el tamaño agregando una opción -s anchoxalto a su comando.
Hay un módulo de nodo para esto: video-thumb
Básicamente, simplemente envuelve una llamada al ejecutivo ffmpeg.