标题:Qt音视频开发06-海康sdk内核linux客户端
作者:liudianwu
日期:2022-12-19 11:09
内容:
## 一、前言
海康sdk的示例在官方是提供了的,但是无论UI还是交互简直是宇宙无敌的垃圾,猜测应该是初学者编写的,估计练手用的,所以老早就想把这个linux支持集成到自己的示例中,既然已经支持了windows的版本,对于linux版本只需要引入linux上的sdk的库即可。官方的sdk开发库也是不断更新升级的,最新的版本基本的头文件都统一了可以共用,之前的旧版本基本上各自为战,估计是不同的研发团队,没有统一的头文件约定导致的。现在基本上windows上的库和linux库在解码的时候唯一的不同点就是回调数据的用户数据指针,win上已经是void *指针了,而linux上的还是long类型,其实应该换成void *作为用户数据才是最佳的设计,期待后期的版本修复这个问题。
## 二、效果图
## 三、体验地址
1. 国内站点:[https://gitee.com/feiyangqingyun](https://gitee.com/feiyangqingyun)
2. 国际站点:[https://github.com/feiyangqingyun](https://github.com/feiyangqingyun)
3. 个人作品:[https://blog.csdn.net/feiyangqingyun/article/details/97565652](https://blog.csdn.net/feiyangqingyun/article/details/97565652)
4. 体验地址:[https://pan.baidu.com/s/1d7TH_GEYl5nOecuNlWJJ7g](https://pan.baidu.com/s/1d7TH_GEYl5nOecuNlWJJ7g) 提取码:01jf 文件名:bin_video_demo/bin_linux_video。
## 四、相关代码
```cpp
bool HaiKangThread::openRtsp(QWidget *widget)
{
//可以根据实际需求启用过滤非海康设备(有部分第三方厂家的设备也兼容海康私有协议)
if (!HaiKangHelper::isHaiKangDevice(videoUrl)) {
debug("地址有误", "原因: 不是海康设备地址");
//return false;
}
//从视频地址取出设备信息和用户信息等
QString ip, userName, userPwd;
int port, channel, streamType;
HaiKangHelper::getDeviceInfo(videoUrl, ip, port, channel, streamType, userName, userPwd);
QString msg = QString(" ..