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

Resuelto paynestrike asked hace 12 años • 8 respuestas

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.

paynestrike avatar Oct 26 '12 08:10 paynestrike
Aceptado

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')
  });
Risadinha avatar Jun 18 '2014 13:06 Risadinha

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

av501 avatar Oct 26 '2012 03:10 av501

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

Básicamente, simplemente envuelve una llamada al ejecutivo ffmpeg.

Matt Palmerlee avatar Jan 15 '2013 22:01 Matt Palmerlee