qt ONVIF 摄像头监控客户端demo支持安卓和ubuntu平台其他暂未实现
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/cff078e6f0894d4183943ae4b4701cf2.png#pic_center开源地址https://gitee.com/ma-congxin/onv.gitONVIF 摄像头监控客户端基于 Qt 和 FFmpeg 的 ONVIF 摄像头监控客户端支持视频流播放和 PTZ 控制。功能特性✅ RTSP 视频流播放✅ FFmpeg 低延迟解码✅ ONVIF PTZ 控制缩放✅ 设备自动扫描✅ 网络断线重连✅ 绿色十字准心显示技术栈Qt 5.14.2- GUI 框架FFmpeg- 视频解码ONVIF 库- 摄像头控制C11- 编程语言编译说明依赖库确保以下库文件存在于对应目录libs/linux-x86/lib/ ├── libonvifmedia.so ├── libonvifdevice.so ├── libonvifcommon.so ├── libonvifptz.so ├── libonvifdiscovery.so └── FFmpeg 相关库编译步骤打开 Qt Creator加载onv.pro项目文件配置 Qt 5.14.2 GCC 64-bit 编译器点击构建使用说明1. 扫描设备点击“Scan Devices”按钮自动扫描局域网内的 ONVIF 摄像头设备。2. 连接摄像头修改代码中的摄像头信息第 18-20 行mCameraIp192.168.2.74;mUsernameadmin;mPasswordabcd1234;点击“connect”按钮连接摄像头。3. PTZ 控制Zoom In- 按住放大长按连续放大Zoom Out- 按住缩小长按连续缩小Zoom Stop- 停止缩放项目结构onv/ ├── widget.cpp # 主窗口逻辑 ├── widget.h # 主窗口头文件 ├── widget.ui # UI 界面设计 ├── ffmpegplayer.cpp # FFmpeg 播放器 ├── ffmpegplayer.h # FFmpeg 播放器头文件 ├── onv.pro # Qt 项目文件 └── libs/ # 第三方库 ├── linux-x86/ # Linux 库 └── android/ # Android 库关键代码说明视频流播放使用 FFmpeg 进行低延迟解码支持 PTS 同步和帧同步。PTZ 控制使用 ONVIF 协议通过 ContinuousMove 命令实现连续缩放控制。设备发现使用 WS-Discovery 协议扫描局域网内的 ONVIF 设备。常见问题视频延迟已优化 FFmpeg 配置使用低延迟模式禁用缓冲PTS 同步丢帧处理PTZ 控制失败确保摄像头支持 ONVIF PTZ用户名密码正确使用媒体 profile token不是 PTZ configuration token