その4(最終回)

圧縮+暗号化+無音検知を全部含めて自分のライブラリの圧縮クラスを使用しました。
そして圧縮効率から音質を決定しました。
8bit+22,100/44,200Hzを選択できます。

ダウンロード


・ファイル転送機能付きボイスチャット
http://d.hatena.ne.jp/nepo_n/voice_chat.zip

OS : Windows95以降(Win2000、XPで確認)
CPU : 300MHz以上
回線: 60KB/s(22,100Hz時)または110KB/s(44,200Hz時)以上
(CD並に音質に設定してるので帯域を結構使います)

ホスト側のみポート番号7900(TCP)、8900(TCP)、9900(UDP)を使用します。
詳しくは付属のReadme.txtをご覧ください。
3/1追記 : 上の記事で書いてた新しい圧縮アルゴリズムを適用しました。CPUパワーをほとんど使わないように。

ソースコード

app.h
type.h
connect.h
file_io.h
audio_io.h
app.cpp
connect.cpp
file_io.cpp
audio_io.cpp


音声チャット、IP電話はWinAPIだけでこんなに短く書けるのだo(`ω´*)o

今後の課題

現在は双方サーバ式で、両方のポートが開いていないと使えません。
それを片方のみに変更します。

2/27追記 : 実装しました(´▽`)
クライアント側はファイヤーウォール等のポート設定をさわらずに使用できるようになりました。
グローバルIPを持てない環境でも動作します)


そして今回2つのPCで試験したのですが、同じ回線を使っていることもあり遅延はほぼ0です。
なので、例えば日本+アメリカなど、ping値150ms±の差がでる地域での試験が必要です。
ping値分の遅延がでるだけだとは思いますが(・ω・))

2/27追記 : サウンドカード直にCD音源を流した所、向こうでもそのまま綺麗に聴こえたそうです。大丈夫な模様(´▽`*)
軽く負荷テストも行ってみましたが、それも特に問題はなかったみたいです。


あとは様々なライン入力の環境で、無音検知の精度などを改善する感じですね。


追記。
あと現在はP2Pですがskypeみたいにサーバーを介するとポート設定とか楽ですよね。