Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 通过套接字从opencv流式传输到多个用户_Python 3.x_Opencv_Sockets - Fatal编程技术网

Python 3.x 通过套接字从opencv流式传输到多个用户

Python 3.x 通过套接字从opencv流式传输到多个用户,python-3.x,opencv,sockets,Python 3.x,Opencv,Sockets,我正在尝试使用opencv python和sockets将视频流从我的usb摄像头发送到同一网络上的其他设备,这应该通过运行服务器脚本来完成,该脚本为连接到它的任意数量的客户端发送视频流,但是,当我尝试接受多个客户端时,问题很明显,opencv一次只能连接到一个客户端 为True时: clientSocket,clientAddr=serverSocket.accept() 打印(“从”,ClientAddress获得连接) 如果客户端套接字: cap=cv2.视频捕获(0) 而cap.isOp

我正在尝试使用opencv python和sockets将视频流从我的usb摄像头发送到同一网络上的其他设备,这应该通过运行服务器脚本来完成,该脚本为连接到它的任意数量的客户端发送视频流,但是,当我尝试接受多个客户端时,问题很明显,opencv一次只能连接到一个客户端

为True时:
clientSocket,clientAddr=serverSocket.accept()
打印(“从”,ClientAddress获得连接)
如果客户端套接字:
cap=cv2.视频捕获(0)
而cap.isOpened():
ret,frame=cap.read()
codedFrame=pickle.dumps(帧)
msg=struct.pack(“Q”,len(codedFrame))+codedFrame
尝试:
clientSocket.sendall(msg)
除例外情况外:
打印(“连接丢失,正在退出流”)
第1章释放()
clientSocket.close()
打印(“启动流”)
我如何能够将流发送到多个连接,而不让它们彼此切断流

这应该是一个简单的脚本,但就我的一生而言,如果不使用带有gstreamer或web服务器的复杂系统,我就找不到任何类似的脚本,这与它是一个简单脚本的目的背道而驰


服务器是一个非常古老的raspberry pi 3b,正在运行一个自定义版本的raspbian,这使得设置除简单python环境之外的任何东西都成为一场噩梦,这就是为什么简单脚本是最好的解决方法,它是通过使用udp流而不是tcp来解决的,这使得在没有tcp的情况下发送数据变得非常容易需要连接


如果您面临同样的问题或渴望实现同样的目标,请在此处查看“我的解决方案”的代码

将您的框架发布到Redis这样的代理,并允许客户在需要时订阅,如何?Pub/sub架构。这本来是一个干净的解决方案,但这里的目标服务器是一个pi 3b,它运行的是raspbian的自定义版本,这使得设置内容成为一场噩梦,因此必须使用一个简单的小脚本@MarkSetchell