node.js meteor graphicsmagick collectionfs node-gm

node.js - Meteor.JS CollectionFS Video a las imágenes en miniatura(Graphics Magick)



graphicsmagick node-gm (1)

Comprueba el enlace que has agregado y aquí hay una solución aproximada que podría ayudarte

ffmpeg -ss 600 -i input.mp4 -vframes 1 -s 420x270 -filter:v ''yadif'' output.png

Aquí hay una función que hice.

var im = require(''imagemagick''); var args = [ "ffmpeg", "-ss", "600", "-i", "input.mp4", "-vframes", " 1", "-s", "420x270", "-filter:v", "''yadif''", "output.png" ]; // Function to convert and im.convert(args, function(err) if (err) throw err; });

Estoy trabajando en una aplicación Meteor donde estoy usando CollectionFS para cargar archivos.

Puedo subir y generar miniaturas para Imágenes.

Pero mi problema es: ¿cómo debo crear miniaturas para videos?

Puedo ver que es posible a través de la línea de comandos: https://superuser.com/questions/599348/can-imagemagick-make-thumbnails-from-video

Pero, ¿cómo puedo aplicar esto a mi código Meteor?

Esto es lo que estoy haciendo:

VideoFileCollection = new FS.Collection("VideoFileCollection", { stores: [ new FS.Store.FileSystem("videos", {path: "/uploads/videos"}), new FS.Store.FileSystem("videosthumbs", {path: "/uploads/videosthumbs", beforeWrite: function(fileObj) { // We return an object, which will change the // filename extension and type for this store only. return { extension: ''png'', type: ''image/png'' }; }, transformWrite: function(fileObj, readStream, writeStream) { gm(readStream, fileObj.name()).stream(''PNG'').pipe(writeStream); } }) ] });

Lo que sucede aquí es que el video se sube a la carpeta "videos" y se crea un archivo PNG en "videosthumbs" con 0 bytes y no se genera una miniatura.

También he leído en: https://github.com/aheckmann/gm#custom-arguments

que podemos usar: gm (). command () - Comando personalizado como identificar o convertir

¿Alguien puede aconsejarme sobre qué se puede hacer para manejar esta situación?

Gracias y saludos