2016-03-17 2 views
3

Я использую свободно-FFmpeg и FFmpeg в узле:NodeJS - ищет быстрые способы создания FFmpeg эскизов

var ffmpeg = require('fluent-ffmpeg'); 
var src = "http://upload.wikimedia.org/wikipedia/commons/7/79/Big_Buck_Bunny_small.ogv"; 
ffmpeg(src) 
.on('filenames', function(filenames) { 
    console.log('Will generate ' + filenames.join(', ') + ' into tempfiles.') 
}) 
.on('end', function() { 
    console.log('1 Screenshot successfully taken'); 

}) 
.on('error', function(err, stdout, stderr) { 
console.log("ffmpeg stdout:\n" + stdout); 
console.log("ffmpeg stderr:\n" + stderr); 
}) 
.screenshots({ 
    filename: randomResult, 
    timemarks: [520.929831], 
    folder: '/' 
}); 

Обычно это занимает 2-3 секунд, чтобы принять одну миниатюры. Мне нужно, чтобы он составлял 0,5-1 секунды для разработки в реальном времени. Я имею в виду, в чем проблема: загрузка одного png-файла на моем компьютере занимает менее 2-3 секунд для завершения, почему ffmpeg отстает так много? что-то просто не кажется правильным.

+1

Знаете ли вы, что ffmpeg делает для создания этого PNG? Я думаю, он должен найти правильный кодек для декодирования этого файла OGV, найти первый кадр, который не является черным, а затем преобразовать его в PNG. Не то же самое, что и загрузка файла. –

+0

Да, но все же я считаю, что это можно сделать быстрее. – RunningFromShia

+0

Ну, тогда вам нужно будет найти программное обеспечение, которое сделает это быстрее. Я не знаю ничего, но все равно будет не так быстро, как загрузка файла. –

ответ

0

За бегство-ffmpeg docs «Он не будет работать на входные потоки». поэтому я подозреваю, что весь файл пытается загрузить.

Вы можете попробовать запустить ffmpeg в качестве дочернего процесса напрямую, используя ключ -ss, как описано в этом post. Это должно повысить производительность.

Смежные вопросы