# endless_device_discovery **Repository Path**: endless22/endless_device_discovery ## Basic Information - **Project Name**: endless_device_discovery - **Description**: PC端设备搜索工具,基于QT5开发 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 5 - **Created**: 2025-03-17 - **Last Updated**: 2025-12-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Endless Device Discovery ## 📋 项目简介 Endless Device Discovery 是一个基于Qt开发的网络设备发现客户端应用程序,支持设备发现、视频流播放、设备管理等功能。该项目集成了FFmpeg进行音视频处理,使用LibUV进行网络通信,提供了完整的网络设备管理解决方案。 ## ✨ 主要功能 - 🔍 **设备发现**: 支持网络设备自动发现和搜索 - 支持多播(Multicast)设备发现 - **多网卡支持**: 可选择特定网络接口进行设备搜索 - 📹 **视频播放**: 基于FFmpeg的高性能音视频解码播放 - 🌐 **网络通信**: 支持WebSocket、UDP多播等多种网络协议 - 🔧 **设备管理**: 设备连接、状态监控、参数配置 - 🔄 **固件升级**: 支持远程固件升级功能 - 📱 **跨平台**: 支持Windows平台,架构可扩展至其他平台 ## 🛠️ 技术栈 - **UI框架**: Qt 5.14+ (Core, GUI, Widgets, Network, WebSockets) - **音视频处理**: FFmpeg 4.x - **网络库**: LibUV 1.51.0 - **编译器**: MSVC 2017/2019 - **架构**: x64 ## 🚀 快速开始 ### 环境要求 - Windows 7/8/10/11 (64位) - Qt 5.14.0 或更高版本 - Visual Studio 2017/2019 - CMake 3.16+ (可选) ### 编译构建 ```bash # 使用qmake qmake endless_device_discovery.pro make # 或使用Visual Studio # 打开 endless_device_discovery.vcxproj 文件 ``` ### 运行应用 ```bash # 直接运行 ./bin/endless_device_discovery.exe # 或运行已打包版本 ./deploy/endless_device_discovery.exe ``` ## 📁 项目结构 ``` endless_device_discovery/ ├── src/ # 源代码目录 │ ├── main.cpp # 程序入口 │ ├── core/ # 核心功能模块 │ │ ├── device/ # 设备管理 │ │ ├── discovery/ # 设备发现 │ │ └── network/ # 网络通信 │ ├── media/ # 媒体处理 │ │ └── ffmpeg/ # FFmpeg封装 │ ├── ui/ # 用户界面 │ │ ├── devicesearchwidget.* # 设备搜索界面 │ │ └── firmwareupgradedialog.* # 固件升级对话框 │ └── utils/ # 工具类 ├── third_party/ # 第三方库 │ ├── ffmpeg4/ # FFmpeg库 │ └── libuv/ # LibUV网络库 ├── docs/ # 文档 │ └── protocol.md # 通信协议文档 ├── deploy/ # 部署包目录 ├── bin/ # 编译输出 └── build/ # 编译中间文件 ``` ## 🎉 部署打包 应用程序已经成功打包到 `deploy` 文件夹中,包含了运行所需的所有文件。 ## 📁 部署文件夹内容 ```text deploy/ ├── endless_device_discovery.exe # 主程序 ├── Qt5Core.dll # Qt核心库 ├── Qt5Gui.dll # Qt GUI库 ├── Qt5Network.dll # Qt网络库 ├── Qt5WebSockets.dll # Qt WebSocket库 ├── Qt5Widgets.dll # Qt控件库 ├── Qt5Svg.dll # Qt SVG库 ├── libEGL.dll # OpenGL库 ├── libGLESV2.dll # OpenGL ES库 ├── avcodec-58.dll # FFmpeg编解码库 ├── avformat-58.dll # FFmpeg格式库 ├── avfilter-7.dll # FFmpeg滤镜库 ├── avutil-56.dll # FFmpeg工具库 ├── swresample-3.dll # FFmpeg重采样库 ├── swscale-5.dll # FFmpeg缩放库 ├── platforms/ # Qt平台插件 │ └── qwindows.dll ├── imageformats/ # 图像格式插件 │ ├── qjpeg.dll │ ├── qgif.dll │ └── ... ├── iconengines/ # 图标引擎 ├── bearer/ # 网络承载插件 └── styles/ # 样式插件 ``` ## 🚀 如何使用 ### 在当前机器上测试 直接双击 `deploy/endless_device_discovery.exe` 即可运行。 ### 部署到其他机器 1. 将整个 `deploy` 文件夹复制到目标机器 2. 在目标机器上双击 `endless_device_discovery.exe` 运行 ## ⚠️ 系统要求 目标机器需要满足以下条件: - Windows 7/8/10/11 (64位) - Visual C++ Redistributable 2017/2019 (通常系统已安装) ## 🔧 重新打包 如果需要重新打包(例如代码更新后),只需运行: - `deploy.bat` - 批处理版本 - `deploy.ps1` - PowerShell版本 ## 📋 打包脚本功能 我们的打包脚本自动完成了以下工作: 1. ✅ 清理旧的部署目录 2. ✅ 复制主程序和FFmpeg依赖库 3. ✅ 自动查找Qt安装路径 4. ✅ 使用windeployqt工具部署Qt依赖 5. ✅ 生成完整的独立运行包 ## 📝 技术细节 - **Qt版本**: Qt 5.14.0 (MSVC 2017 64-bit) - **FFmpeg版本**: 4.x - **编译器**: MSVC 2017 - **架构**: x64 部署包大小约 100MB,包含了所有必要的运行时库,可以在没有安装Qt和FFmpeg的机器上独立运行。 ## 📚 相关文档 - [通信协议文档](docs/protocol.md) - 详细的API协议说明 - [网络接口选择](docs/network_interface_selection.md) - 多网卡环境下的网络接口选择功能说明 - [开发指南](docs/development.md) - 开发环境配置和代码规范 - [常见问题](docs/faq.md) - 常见问题解答 ## 🤝 贡献指南 欢迎提交Issue和Pull Request来帮助改进项目! ### 开发环境设置 1. 克隆项目到本地 2. 安装Qt 5.14+和Visual Studio 2017+ 3. 配置FFmpeg和LibUV依赖 4. 使用qmake构建项目 ### 代码规范 - 遵循Qt编码规范 - 提交前确保代码通过编译 - 添加必要的注释和文档 ## 📄 许可证 本项目采用 [MIT License](LICENSE) 开源协议。 ## 🎊 致谢 感谢以下开源项目的支持: - [Qt](https://www.qt.io/) - 跨平台UI框架 - [FFmpeg](https://ffmpeg.org/) - 音视频处理库 - [LibUV](https://libuv.org/) - 跨平台异步I/O库 --- **祝贺!你的Qt应用程序已经准备好分发了!** 🎊