Как настроить кодек, частоту дискретизации и битрейт на аудио-BLOB-объектов в JavaScript? - PullRequest
0 голосов
/ 27 ноября 2018

Я только что создал BLOB-объект:

const audioBlob = new Blob(audioChunks, { 'type' : 'audio/wav; codecs=0' });

и отправил его на сервер в формате base64.Я сохранил это в файл с именем «test.wav», используя следующий код:

await writeFile('./temp/test.wav', Buffer.from(filename.replace('data:audio/wav; codecs=0;base64,', ''), 'base64'), 'base64');

В выходном файле «test.wav» я получаю кодек как opus, bitrate = N / A и образецскорость = 48000.Я хочу изменить эти значения на codec = wav, bitrate = 256kbps и частота дискретизации = 16000.Как добиться этого в узле (или в угловом выражении)?

Здесь - ссылка на мой код внешнего интерфейса.

1 Ответ

0 голосов
/ 03 декабря 2018

Эта строка просто предоставляет информацию о пантомиме, но не влияет на фактический вывод

const audioBlob = new Blob(audioChunks, { 'type' : 'audio/wav; codecs=0' });

Чтобы выбрать правильный аудиокодек и битрейт, пожалуйста, начните запись со следующими параметрами

var options = {
  audioBitsPerSecond : 128000,
  mimeType : 'audio/ogg'
}
var mediaRecorder = new MediaRecorder(stream, options);

НасколькоКак я знаю, кодек ogg по умолчанию поддерживается в WebRTC, поэтому он совместим с различными браузерами

Позже, на стороне сервера, вам нужно будет преобразовать ogg аудиопоток во что-либо еще, используя, например, свободно-FFmpeg

...