Я использую этот код в nodejs:
function spawnFfmpeg(input, output){
var args = [
'-i', input,
'-b:v', '2M',
'-b:a', '192k',
'-vcodec', 'libx264',
'-crf', '27',
'-preset', 'veryfast',
'-filter:v',
'scale=w=1280:h=720',
'-f', 'mpegts',
'-blocksize', '16384',
'-flush_packets', '1',
output,
'-y'
];
var ffmpeg = spawn('ffmpeg', args);
return ffmpeg;
}
function test(){
for(var i = 0; i <= 100; i++){
let ffmpeg = spawnFfmpeg('test.ts', 'output_'+i+'.ts');
ffmpeg.on('exit', () => {
console.log('EXITED');
});
}
}
setInterval(() => {
console.log('OK');
test();
}, 4000);
Я загружаю видеофайлы TS через HTTP и работаю на моем HTTP-сервере (пока он работает), но когда я хочу изменить размер видеоразмер скрипта высокий cpu и ram (потому что слишком много процесса ffmpeg).
Поскольку я делаю 100 запросов каждые 4 секунды, каждый запрос был разным источником, я создал эту тестовую функцию и обнаружил, что проблема заключается в том, что ffmepgне может обработать это большое число спавна;
Примечание: Когда я обслуживаю только файл TS без изменения размера (используя ffmpeg), сценарии работают нормально только с центральным процессором 0,4% и оперативной памятью 40 МБ, но проблема возникает, когда я ставлюffmpeg в скрипте nodejs.
Так что я подумал, что проблему можно решить с помощью jfaspg-версии ffmepg (в backend nodejs), возможно ли это?