如何在 javascript 中的音频 blob 上设置编解码器、采样率和比特率?
How to setup codec, samplerate and bitrate on an audio blob in javascript?
我刚刚创建了一个 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 是我的前端代码的 link。
这一行只提供 mime 信息,不影响实际输出
const audioBlob = new Blob(audioChunks, { 'type' : 'audio/wav; codecs=0' });
要select正确的音频编解码器和比特率,请使用以下选项开始录制
var options = {
audioBitsPerSecond : 128000,
mimeType : 'audio/ogg'
}
var mediaRecorder = new MediaRecorder(stream, options);
据我所知,在 WebRTC 中默认支持 ogg 编解码器,因此它是跨浏览器兼容的
稍后,在后端,您需要将 ogg
音频流转换为您想要使用的任何其他内容,例如 fluent-ffmpeg
我刚刚创建了一个 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 是我的前端代码的 link。
这一行只提供 mime 信息,不影响实际输出
const audioBlob = new Blob(audioChunks, { 'type' : 'audio/wav; codecs=0' });
要select正确的音频编解码器和比特率,请使用以下选项开始录制
var options = {
audioBitsPerSecond : 128000,
mimeType : 'audio/ogg'
}
var mediaRecorder = new MediaRecorder(stream, options);
据我所知,在 WebRTC 中默认支持 ogg 编解码器,因此它是跨浏览器兼容的
稍后,在后端,您需要将 ogg
音频流转换为您想要使用的任何其他内容,例如 fluent-ffmpeg