nodejs быстро получает миниатюру файла mp4

Я хочу получить миниатюру 0,0 секунды видео. В настоящее время я использую node-fluent-ffmpeg для создания эскиза. Ниже приведен код:

ffmpeg(tempLocalFile)
          .screenshots({
            timestamps: [0.0],
            filename: 'xx.png',
            folder: tempFilePath
          }).on('end', function() {
            console.log('done');
          });

Но проблема в том, что на выполнение этого процесса уходит слишком много времени. Обычно создание эскиза занимает 30 секунд. Что продолжает увеличиваться, если размер файла mp4 увеличивается.

Итак, мой вопрос: есть ли какой-нибудь быстрый способ создать миниатюру. Можем ли мы улучшить приведенный выше код для повышения производительности.

ps: машина, на которой работает этот код, имеет 512 МБ ОЗУ 800 МГц


person user1590595    schedule 24.08.2017    source источник
comment
800МГц это скорость процессора? Используйте более быструю машину :)   -  person posit labs    schedule 24.08.2017
comment
Перешил на машину 2.5ГГц .. Сейчас меньше занимает .. Но не производственный уровень. Есть ли альтернативная библиотека / метод .. Что я могу использовать?   -  person user1590595    schedule 25.08.2017


Ответы (1)


Есть уловка, позволяющая заставить ffmpeg декодировать только один кадр. Вы просто определяете флаг -ss перед вводом. Это заставит его декодировать только указанный кадр, а не все видео.

ffmpeg -ss 0 -i input.mp4 -vframes 1 output.jpg

Я не уверен, как это можно сделать в fluent-ffmpeg, и возможно ли это вообще. Вы можете сообщить о проблеме

person posit labs    schedule 28.08.2017