ファンタジーリモートにおける音の遅延について
ファンタジーリモートにおける音声転送の遅延を計測してみました。
計測方法は、サーバー側で適当な音を鳴らし、オーディオケーブルとファンタジーリモートの2つの経路によりクライアント側で再生される音を観察します。
オーディオケーブルによる再生は殆ど遅延が無いはずなので、コレを基準にファンタジーリモートの音がどの程度遅れるか見ていきます。また、ファンタジーリモートの設定でオーディオfpsを変更した場合に遅延がどうなるかも見ていきます。
1.測定条件
1)ネットワークは有線LANでハブを一つ介してサーバーとクライアントを接続しています。
2)ファンタジーリモートの設定は初期値。
3)サーバー側で再生する音はSWaveを使って1秒間に2回、正弦波を再生します。
4)クライアント側ではAudacityを使ってミキサーを録音して解析します。
5)ファンタジーリモートのオーディオfpsを変更して遅延の変化を調べます。
2.結果
オーディオfps | 遅延時間ms |
30 | 75 |
10 | 141 |
5 | 251 |
3.考察
30fpsの場合の動作は1/30秒(=約33ms)録音してからネットワークで転送します。ここまでが遅延となりますので、75ms遅延があったということは
録音遅延:約33ms
ネットワーク遅延:約42ms
と言う事になります。同様に他のfpsについてもまとめると次のようになります。
オーディオfps | 遅延時間ms | 録音遅延ms | ネットワーク遅延ms |
30 | 75 | 33 | 42 |
10 | 141 | 100 | 41 |
5 | 251 | 200 | 51 |
以上より今回の測定ではネットワークによる遅延が約40~50ms発生している事が分かります。
また、このネットワークによる遅延は映像転送にも当てはまります。但し、録音遅延に相当する部分が映像転送にはないので通常は映像の方が少し早く再生される事となります。
追記(2009.7.27)
「ファンタジーリモートのレスポンスが悪い」にて遅延を調べたときに最短で10~20msだったことから、ネットワークそのものによる遅延は往復(Client→Sever→Client)で10ms以下のようです。
この事から、音声転送では録音遅延(fps30の場合33ms)とネットワーク遅延(推定10ms以下)のほかに30~40ms程度の遅延が発生している。
この遅延は断定できませんがサーバー側で録音されたデータがファンタジーリモートに通知されるまでの遅延と、クライアント側でバッファにセットしたデータが実際に再生されるまでの遅延によるもの(オーディオデバイスによる遅延)かと思います。
- 関連記事
trackback
コメントの投稿
No title
ただ、ネットワークの遅延ということですが、ネットワークの接続形態(有線か無線か、およびその規格)はなんでしたか?
あと、よろしければ。pingの結果についても転送中と、非転送中(ネットワークリソースがあいている状態)の2パターンで測定していただけると、参考になるのではないかと思います。
Re: No title
> ただ、ネットワークの遅延ということですが、ネットワークの接続形態(有線か無線か、およびその規格)はなんでしたか?
> あと、よろしければ。pingの結果についても転送中と、非転送中(ネットワークリソースがあいている状態)の2パターンで測定していただけると、参考になるのではないかと思います。
どもども。ネットワークはこんな感じでいいのかな
・有線LAN
・サーバー1000Mbps
・クライアント100Mbps
・ハブ1000Mbps
※ping 10ms以下、min0ms、max0ms、avg0ms
※pingの結果はファンタジーリモート使用中でも変わらず
LAN内のpingはほぼゼロになるんだろうか