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

前端之家收集整理的这篇文章主要介绍了如何在javascript中设置音频blob的编解码器,采样率和比特率?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我刚刚创建了一个blob: @H_403_2@const audioBlob = new Blob(audioChunks,{ 'type' : 'audio/wav; codecs=0' });

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

@H_403_2@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.如何在节点(或角度)中实现它?

Here是我的前端代码链接.

解决方法

此行仅提供mime信息,但不影响实际输出 @H_403_2@const audioBlob = new Blob(audioChunks,{ 'type' : 'audio/wav; codecs=0' });

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

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

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

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

猜你在找的JavaScript相关文章