- ベストアンサー
javascriptで音声データ圧縮
http://qiita.com/HirokiTanaka/items/56f80844f9a32020ee3b このあたりを参考にwavデータをmp3に変換することは出来ました。 ただ残念なことに、今回やりたい事がリアルタイム性が欲しく、上記の方法で普通のPCではどうしても音の長さ以上に変換に時間がかかってしまいます。 なーんか良いアイディアは無いでしょうか。。。 ※wavのままだとデータが大きすぎて今度は回線での転送が間に合いません。 ブラウザでやるなって話ですよね(汗
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
うむ、 >ブラウザでやるなって話ですよね(汗 これに尽きる。 端末の処理速度に依存しちゃうし。 ソフトでMP3に変換するのだってそれなりに時間かかるんだから。
その他の回答 (3)
- b0a0a
- ベストアンサー率49% (156/313)
ANO.2より そういうことでしたら、WebRTCを用いて転送を行ってください。 自動的に圧縮してくれます。
お礼
ありがとうございます。 今回P2Pでの転送をせずに、一旦データを数か所経由させたいのですが、可能でしょうか?
補足
http://qiita.com/udonchan/items/77ca19f9aa8420e769c8 WebRTC の映像ストリームからデータを取得する仕組みは現状では存在しません ※データ受け取った側がWebRTC 対応してなくても再生可能なものを模索していました。 情報ありがとうございました。
『クライアントで録音した WAV をアップロードする際に、転送速度をあるためにサイズを小さくしたい』というニーズなら、MP3 にこだわらずに ZIP なり LZ4 (Google 製の高速圧縮形式) なりを試してみては? ZIP や LZ4 なら Javascript の高速圧縮ライブラリもあるでしょうし。 最終的にサーバ上に MP3 で保存する必要があるのであれば、アップロード後にサーバ上で非同期で MP3 に変換すれば良いでしょうし。サーバ上で変換なら、Javascript にこだわらずにもっと高速なライブラリを使えますよね。
お礼
LZ4試してみたいと思います。
- b0a0a
- ベストアンサー率49% (156/313)
まず何がしたいのかが分かりません。 ブラウザでwavをmp3に変換するにはまずブラウザでwavをダウンロードしないといけませんよね。 それなのにwavのままだとデータが大きすぎて回線での転送が間に合いませんという話が出てくるのは矛盾しているように見えます。
お礼
navigator.getUserMedia 、audioContext にてHTMLを表示しているPCのマイクから波形データ取れます。これをwavに変換出来ます。なので音源データゲットは、どことも通信いりませぬ。この音声データを別のPCに何らかの方法でお届けし、そこで再生したいのです。簡易電話です。その際に生音声データwavだとデータサイズがでかいので、圧縮したかったのです。
お礼
ですよねー