Хобрук: Ваш путь к мастерству в программировании

Meteor.JS CollectionFS Video to Image Thumbnails (Graphics Magick)

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

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

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

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

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

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

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

    }
  })
]
});

Что здесь происходит: видео загружается в папку «видео», а один PNG создается в разделе «videosthumbs» с 0 байтами, а миниатюра не создается.

Я также прочитал: https://github.com/aheckmann/gm#custom-arguments< /а>

которую мы можем использовать: 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;
});
27.08.2015
  • Спасибо, я пробовал, но так и не смог решить эту проблему 28.08.2015
  • Новые материалы

    Блоги, которые обязательно нужно прочитать специалистам по обработке и анализу данных :
    Добро пожаловать в 2020! Новый год и новое десятилетие. Поскольку мы начинаем новый и захватывающий год в науке о данных, важно, чтобы профессионалы открыли для себя лучшие блоги по науке о..

    Универсальный базовый доход
    Универсальный базовый доход В последние годы концепция всеобщего базового дохода (УБД) набирает обороты как все более эффективное решение для борьбы с растущим неравенством доходов и..

    Освоение Python для анализа финансовых данных: руководство по получению данных о доходах от акций
    Если вы хотите научиться получать данные о доходах от акций с помощью Python, то это руководство для вас! В этой статье мы рассмотрим несколько примеров сбора данных о доходах от акций. Мы..

    Абсолютно имеет смысл.
    Абсолютно имеет смысл. Мой репетитор даже предложил то же самое. Одна проблема, с которой я столкнулся, заключается в том, что для каждой из категорий не было ярлыка «хорошо». Если я перебираю..

    МАШИННОЕ ОБУЧЕНИЕ И EDA
    Каковы шаги в машинном обучении Определение проблемы Генерация гипотез Извлечение данных Исследование данных Прогнозное моделирование Развертывание модели Зачем нам ЭДА? Идентификация..

    В чем основные различия между ReactJS и React-Native?
    В чем основные различия между ReactJS и React-Native? Что я узнал, создавая веб-приложения, а затем мобильные приложения на React React-Native существует уже около 2 лет и стал..

    LeetCode — Умножение строк
    Постановка задачи Даны два неотрицательных целых числа num1 и num2 , представленные в виде строк, вернуть произведение num1 и num2 , а также представлен в виде строки. Примечание . Вы..