nodejs ffmpeg работает локально, но не работает - PullRequest
0 голосов
/ 24 октября 2019
var proc = 
ffmpeg()
.input('./public/img/capture/photoframe.png')
.input( scenePath + '%04d.png')
.inputFPS(15)
.input( msgPath + '%04d.png')
.inputFPS(15)
.input( path + data + '.' + ext )
.complexFilter([
    "[3:v]scale=668:-1[scaledUGC]",
    "[0]overlay=66:155[output0]",
    "[output0][scaledUGC]overlay=66:155[output1]",
    "[output1][1]overlay=66:155[output2]",
    "[output2][2]overlay=66:155[output3]",
    "[output3][0]overlay=0:0[output4]"  
], 'output4')
.outputFPS(15)
.on('start', function(command) {
    if (env === 'development') {
        console.log(new Date());
        console.log('Start with command:'+command);
    }
})
// .on('progress', function(progress) {
//     if (env === 'development') {
//         console.log(progress.percent + "% done");
//     }
// })
.on('end', function() {
    if (env === 'development') {
        console.log(new Date());
        console.log('file has been converted succesfully');
    }

    var gifMaker = 
    ffmpeg()
    .input('./public/_ugc/' + data + '.mp4')
    .save('./public/_ugc/' + data + '.gif');

    res.send({
        status: "success",
        uid: data
    });

})
.on('error', function(err) {
    console.log('an error happened: ' + err.message);

    res.send({
        status: "err",
        uid: "err_video"
    });
})
.save('./public/_ugc/' + data + '.mp4');

У меня есть приведенный выше код, который может успешно генерировать видео 5s на моем локальном Mac.

Однако, когда я отправляю код в производственную Ubuntu, он может генерировать только видео 1s.

На стороне Ubuntu нет ошибок. Интересно, пропустил ли я что-нибудь.

Мне также интересно, стоит ли предварительно предварительно загрузить исходные изображения?

узел v12.13.0

ffmpeg версия 2.8.15-0

ubuntu0.16.04.1

...