如何在JavaScript中的音频Blob上设置编解码器,采样率和比特率?

时间:2018-11-27 13:08:24

标签: javascript node.js audio audio-streaming audio-recording

我刚刚创建了一个Blob:

ImageView imageView = findViewById(R.id.m_imageview);
imageView.setImageResource(AppUtils.getAvtarFromGender(mContext));

并将其以base64格式发送到后端。我使用以下代码将其保存到名为“ test.wav”的文件中:

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

在输出的“ test.wav”文件上,我得到编解码器为opus,比特率= N / A,采样率= 48000。我想将这些值更改为codec = wav,比特率= 256kbps和采样率= 16000。如何在节点(或角度)上实现它?

Here是我的前端代码的链接。

1 个答案:

答案 0 :(得分:2)

此行仅提供mime信息,但不影响实际输出

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

要选择正确的音频编解码器和比特率,请使用以下选项开始录制

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

据我所知,WebRTC默认支持ogg编解码器,因此它与跨浏览器兼容

稍后,在后端,您需要将ogg音频流转换为您想要使用的其他任何内容,例如fluent-ffmpeg