HTML5和Web音频API:从浏览器到服务器的流式传输麦克风数据.理想的传输和数据压缩

 电信学院团总支沈天宇 发布于 2023-02-08 13:57

我希望从浏览器中获取音频输入并将其传输到多个侦听器.预期用途是音乐,所以质量必须mp3标准或左右.

我尝试了两种方法,都产生了不成功的结果:

的WebRTC

直接在浏览器之间流式传输音频工作正常,但音频质量似乎是不可定制的,尽管我已经看到了.(我已经看到它正在使用Opus音频编解码器,但似乎没有暴露任何控件).

有没有人对如何提高WebRTC流的音频质量有任何了解?

的WebSockets

问题是从浏览器到服务器的传输.我通过以下方法获取的PCM音频数据已被证明太大,无法通过websockets重复流式传输到服务器.该流在高速互联网环境中完美运行,但在较慢的wifi上它无法使用.

var context = new webkitAudioContext()
navigator.webkitGetUserMedia({audio:true}, gotStream)

function gotStream (stream)
{
    var source = context.createMediaStreamSource(stream)
    var proc = context.createScriptProcessor(2048, 2, 2)

    source.connect(proc)
    proc.connect(context.destination)
    proc.onaudioprocess = function(event)
    {
        var audio_data = event.inputBuffer.getChannelData(0)|| new Float32Array(2048)
        console.log(audio_data)
        // send audio_data to server
    }
}

所以主要的问题是,有没有办法压缩PCM数据,以便更容易流到服务器?或者也许有一个更简单的方法来解决这个问题?

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有