基于 ZeroMQ 的数据(图像)传输系统
Foreword
- 硬件平台 Nvidia Jetson Xavier NX, 系统 Ubuntu 18.04
- 一开始用准备用 udp,卡在cmake升级
- cmake
- make、cmake、make install 区别
- htop查看进程
libzmq 编译安装
libzmq下载4.3.4版本
解压libzmq
注:-D***修改安装路径(cmake-gui也可以改)1
2
3
4
5mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/home/***指定的文件夹路径 ..
make
make install -j4
两个点代表上级目录(CMakeLists.txt)
home后跟用户名才是任务管理器里的home(ctrl+L查看路径,文件管理器刷新ctrl+R)
编译output脚本
- 解压 output.tar.gz
- 修改CMakeLists.txt 里ZeroMQ路径,改成/home/<>/lib/CMake/ZeroMQ
33行的OpenCV_DIR可以注释掉,如果后边自己编译了opencv库(就像这个libzmq一样),也可以指定路径
- 缺少minunit.h(提取码6666)头文件,将其放在3rd-party文件夹下面
将 CV_LOAD_IMAGE_COLOR 改成1
1
2
3
4mkdir build
cd build
cmake ..
make
RTSP取流
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
using namespace cv;
int main()
{
VideoCapture capture;
capture.open("../../bin/data/1.mp4");
//capture.open("rtsp://admin:admin123@192.168.1.164:554/cam/realmonitor?channel=1&subtype=0");
int frameH = capture.get(4);
int frameW = capture.get(3);
std::cout << "frameH:" << frameH << " frameW:" << frameW << std::endl;
while (1)
{
Mat frame;
capture >> frame;
if (frame.empty())
{
break;
}
imshow("test", frame);
waitKey(30);
}
}
端口配置
配置发布订阅端的tcp地址,如:
1
2
3
4
5
6
7
8
9
10
11
12{
"PUB": [
{
"id": "0xABA2",
"length": 0,
"port": "tcp://192.168.137.88:5555"
}
],
"SUB": [
]
}tcp地址为设备ip地址加一个四位端口号(不重复即可);同时注意一台设备可以同时充当发布订阅端(自发自收)
测试
运行output下编译通过的demo,帧率通过waitkey等调节。