我一直在网上搜索好几个小时试图找到一个好方法。
我无法使用TCP,因为流中不会有明显的延迟。当我使用UDP时,它显示图像的损坏版本,因为它是如此不可靠。更不用说有很多人告诉我UDP不是用于传输文件而你不应该尝试添加到UDP上以避免重新创建TCP。
这是我使用服务器端进行UDP测试的代码的一小部分。
def datagramReceived(self, datagram, address):
while True:
image = webcam.get_image()
sio = StringIO(tostring(image, 'RGB'))
while True:
temp = sio.read(1024)
if not temp: break
self.transport.write(temp, address)
稍微可怕的客户端代码的片段:
def datagramReceived(self, datagram, host):
if len(self.buff) != 921600:
self.buff += datagram
else:
image = fromstring(self.buff, (640,480), 'RGB')
screen.blit(image, (0,0))
display.flip()
self.buff = ''
答案 0 :(得分:0)
您可能想看一下这个问题:Python send and receive RTP packets 此外,Farstream有python绑定,你可能也想检查一下: http://www.freedesktop.org/wiki/Software/Farstream/