2012-11-15 92 views
1

但是,我製作了一個程序,該程序使用新的HTML5 getusermedia api從記錄中生成一個blob(包含PCM數據)這些錄製文件可能會變得非常大,我希望這些文件可以在發送到服務器之前進行壓縮。我知道,mp3/ogg compression是一種瀏覽器可以處理(我想)的方式,所以我看了別處。在javascript中包含音頻PCM數據的壓縮blob

有些人談到http compression(這也會使用Gzip),但是在建立通信時不是瀏覽器服務器的決定嗎?

我找到了https://github.com/olle/lz77-kit;它有一個爲客戶端和服務器的PHP實現的JavaScript實現,但這甚至會使音頻傳感器?

有誰有因爲使用getUserMedia在客戶端壓縮音頻(不使用閃光燈)

回答

3

任何經驗,我想你想從用戶的麥克風錄製語音。

音頻專用壓縮算法應該比一般數據壓縮算法更有效率。音頻編碼(如MP3)的缺點是,它們是有損的。

現在,Speex可能是一個很好的編解碼器。正如它發生的那樣,有一個完整的JavaScript Speex編碼器/解碼器,完整的例子如下:speex.js

+0

問題是我們沒有錄製語音,而是從現場樂器錄製音頻;但我會嘗試thx – Thomas

+0

不知道你是否仍然需要這方面的幫助,但ogg.js也存在,這是你想要編碼音頻,因爲speex是專爲語音而設計的。 https://github.com/devongovett/ogg.js –

0

原始(或壓縮)音頻非常難以壓縮,我強烈建議要麼編寫壓縮音頻的瀏覽器插件,要麼做服務器端。一般的壓縮算法,zip,gz等將無法爲您帶來任何有價值的帶寬節省量。

+0

thx;這可能是我最終會做的 – Thomas

1

我知道我回答得比較晚,這是我在客戶端的音頻壓縮嘗試不使用閃光燈的:https://github.com/Mido22/recordOpus

我通過socket,其中使用OPUS數據包發送編碼OPUS包到服務器(的NodeJS)我把它轉換爲用戶要求的任何格式,併爲他提供鏈接...