2012-02-14 12 views
0

私は現在、私の場所から別の遠隔地にある別のサーバーにカメラでキャプチャした画像を送信しようとしています。 そして、遠隔地にあるサーバーは受信した画像を送り返し、画像をローカルに表示します。 私はpython tcp socketを使用しています。 2つのカメラで撮影した画像を表示します。 1つはローカルエリアネットワーク経由で、1つはリモートサーバーを経由します。地元のものはうまくいく。問題は、遠隔地から取得した画像が非常に遅く表示され、突然速くなり、ローカル画像と同じ速度を持つことです。 パフォーマンスを測定したところ、30枚の画像をキャプチャすることができ、ローカルエリアで30枚の画像を送信することができますが、リモート部分を通過すると、20枚の画像を送信します。時間30. 誰もがその理由を知っていますか?不安定な画像転送

+0

コードを含めてくださいです。さもなければ私達は助ける方法を知らない。 –

+0

送信者:size = len(image) sock.send(struct.pack( 'I'、socket.htonl(size))) sock.sendall(image) –

+0

受信者:data = conn.recv(4、socket。 str = struct.unpack( "I"、data) size = socket.ntohl(str [0]) data = conn.recv(size、socket.MSG_WAITALL) –

答えて

0

ライブビデオを転送しているので、1つまたは2つのフレームを緩める余裕があると思います。はいの場合は、UDPプロトコルを使用してビデオフレームを転送することをお勧めします。 TCPは実際に配信を保証しますが、時にはデータ配信にかかる時間が長くなります。

はここでカメラからのライブ映像を転送するために使用することができるプロトコルに関するいくつかのinfo

+0

はい、それはそれを行う良い方法です。 しかし、私の問題は私がローカルエリアネットワークにいることです。私がUDPを使用している場合、着信msgはLAN上のメインマシンに送られます。イメージを受信して​​ローカルマシンに転送するサーバーを確立する必要があります。 それで、私はTCPを使用しています。なぜなら、TCPは各マシン間に個別のチャネルを作成し、サーバーを構築する必要がないからです。 しかし、tcpはうまく動かないので、UDPを使ってみるとよいでしょう。 –

関連する問題