В настоящее время я пытаюсь обработать звук, используя узел, но в качестве входного сигнала используется буфер.Вот как выглядит код до сих пор.
let uLawArguments = [ // arguments for ulaw extention
'-c',
`ffmpeg -ac 1 -ar 8000 -f mulaw -i -`
];
const ffMpeg = spawn('sh', uLawArguments);
ffMpeg.stdin.write(audioBuffer);
ffMpeg.stdin.end();
ffMpeg.stderr.pipe(process.stdout);
Ffmpeg принимает -i -
в качестве аргумента для приема ввода через стандартный ввод.После прохождения через буфер, который имеет тип Channel: 1, frequency: 8000
, я получаю следующий вывод:
Input #0, mulaw, from 'pipe:':
Duration: N/A, bitrate: 64 kb/s
Stream #0:0: Audio: pcm_mulaw, 8000 Hz, mono, s16, 64 kb/s
Мне нужно очистить продолжительность, но прежде чем я смогу даже отформатировать ее, янужно вернуть фактическую продолжительность аудио.Я думаю, что проблема в настоящее время в том, что ffmpeg выводит это в stderr, прежде чем он сможет даже полностью обработать буфер.