我刚刚创建了一个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.如何在节点(或角度)中实现它?
解决方法
此行仅提供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