如何使用python通过互联网从网络摄像头传输输入?

时间:2013-12-24 17:24:47

标签: python sockets udp webcam

我一直在网上搜索好几个小时试图找到一个好方法。

我无法使用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 = ''

1 个答案:

答案 0 :(得分:0)

您可能想看一下这个问题:Python send and receive RTP packets 此外,Farstream有python绑定,你可能也想检查一下: http://www.freedesktop.org/wiki/Software/Farstream/