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