我制作了一个程序,使用新的HTML5 getusermedia api
从录制中生成blob(包含PCM数据);这些录音可以变得非常大,我希望在将它们发送到服务器之前压缩这些文件。我知道mp3/ogg compression
超出了浏览器可以处理的范围(我认为),所以我在其他地方寻找。
有些人谈论http compression
(也会使用Gzip),但这不是浏览器服务器在设置通信时的决定吗?
我找到了https://github.com/olle/lz77-kit;它有一个客户端的javascript实现和服务器的PHP,但这甚至会制作音频传感器?
是否有人在客户端压缩音频方面有任何经验(不使用闪存)
答案 0 :(得分:4)
由于您使用的是getUserMedia
,我认为您想要从用户的麦克风录制语音。
特定于音频的压缩算法应该比通用数据压缩算法更有效。音频代码的缺点,如MP3,是有损的。
现在,Speex可能是一个很好的编解码器。实际上,有一个完整的JavaScript Speex编码器/解码器,例如:speex.js。
答案 1 :(得分:1)
我知道我回答得很晚,这是我在不使用flash的情况下尝试客户端音频压缩:https://github.com/Mido22/recordOpus,
我使用opus数据包通过套接字将编码的opus数据包发送到服务器(nodejs),我将其转换为用户请求的任何格式,并为他提供链接......
答案 2 :(得分:0)
原始(或压缩)音频很难压缩,我强烈建议编写压缩音频的浏览器插件或服务器端。一般的压缩算法,zip,gz等将无法为您带来任何有价值的带宽节省。