javascript - 如何在 javascript 中的音频 blob 上设置编解码器、采样率和比特率?

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

我刚刚创建了一个 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,比特率=N/A,采样率=48000。我想将这些值更改为编解码器=wav、比特率=256kbps 和采样率=16000。如何在node(或angular)中实现?

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

最佳答案

这一行只提供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

关于javascript - 如何在 javascript 中的音频 blob 上设置编解码器、采样率和比特率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53500454/

相关文章:

node.js - Jade 模板引擎中的 IE 条件语句

JavaScript - 声音不随随机值一起播放

java - 如何在Android中创建音量流控件

node.js - 服务器可以检查请求是否来自 iframe (Node.js)?

node.js - Node Body Parser 和 cookie parser 有什么作用?我应该使用它们吗?

java - 你如何从Java中的声卡捕获声音?

javascript - D3.js:向具有负值的条形图添加时间轴

javascript - 计算总价

javascript - php-js的执行顺序是什么?

javascript - 您可以在 JS 库代码结构中混合 JavaScript 对象文字和原型(prototype)吗?