Meteor.JS CollectionFS Миниатюры видеоизображений к изображениям (графика Magick)

Я работаю над одним приложением Meteor, где я использую CollectionFS для загрузки файлов.

Я могу загружать и создавать миниатюры для изображений.

Но моя проблема: как мне создавать эскизы для видео?

Я вижу, что это возможно через командную строку: https://superuser.com/questions/599348/can-imagemagick-make-thumbnails-from-video

Но как я могу применить это к моему Метеорному коду.

Вот что я делаю:

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);

    }
  })
]
});

Здесь происходит то, что видео загружается в папку "videos", а один PNG создается под "videosthumbs" с 0 байтами, а миниатюра не генерируется.

Я также читал по адресу: https://github.com/aheckmann/gm

что мы можем использовать: gm().command() - Пользовательская команда, такая как определить или преобразовать

Кто-нибудь может посоветовать мне, что можно сделать, чтобы справиться с этой ситуацией?

Спасибо и С уважением

1 ответ

Проверил добавленную вами ссылку, и вот примерное решение, которое может вам помочь

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

Вот функция, которую я сделал.

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;
});
Другие вопросы по тегам