TCP客户端上的视频
FireEye的Python项目详细描述
火眼
安装
node.js安装:
npm install fireeye
python安装:
pip install FireEye
这些库是并行开发的,并设计为一起使用。
功能
FireEye支持node.js服务器和Python进程之间的实时双向通信。它专门设计用于在这两个进程之间在不同设备上运行时传输视频。
它的主要功能是:
速度
使用tcp套接字进行连接,可以非常快速、可靠地从进程传递信息。FireEye使用IPv4进行操作。
易于使用
这个图书馆的设计目的是尽可能降低进入的障碍。因此,它有一个内置的包装器来将图像从一个进程发送到另一个进程。
如何使用-node.js
下面的示例在node.js中导入并创建数据套接字,然后设置侦听器事件。
constFireEye=require('fireeye');varsocket=newFireEye();socket.on('image',(data)=>{/* your code here */})
上面的示例可用于接收从python发送的整个图像。
FireEye还可以用于通过TCP套接字发送任意信息。可以发送任何json可序列化对象:
constFireEye=require('fireeye');varsocket=newFireEye();varchannel='channel_1';socket.write(channel,'Hello from Node.js!');socket.on(channel,(data)=>{/* your code here */});
任何频道名称都可以使用,除了image
保留用于从python→node.js发送图像
如何使用-python
下面是如何在python中使用fireeye的简单示例:
fromFireEyeimportFireEyeimportcv2importbase64socket=FireEye.FireEye()cap=cv2.VideoCapture(0)#Camera Number Heredefencode_img(img):success,encoded_img=cv2.imencode('.jpg',img)returnbase64.b64encode(encoded_img)ret,frame=cap.read()socket.writeImg(encode_img(frame))
请注意:在python中创建fireeye套接字是一个blocking操作,只有打开套接字才能完成。
如上所示,任意数据可以通过FireEye发送。下面是python中的一个与上面的例子相匹配的示例:
fromFireEyeimportFireEyesocket=FireEye.FireEye()channel='channel_1'socket.write(channel,'Hello from Python!')response=socket.get(channel)
FireEye将自动存储通过通道接收的最新数据。可通过get
方法访问此数据。FireEye运行在一个与程序其他部分不同的线程上,因此将不断地从数据套接字中读取数据。