# TPlayer **Repository Path**: security-service_1/tplayer ## Basic Information - **Project Name**: TPlayer - **Description**: 基于wvp的视频播放客户端 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-24 - **Last Updated**: 2026-06-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # TPlayer 面向 **GB/T 28181**(视频监控联网)与 **GB 35114**(公共安全视频监控联网安全技术要求)的 **桌面客户端**。能力规划包括目录检索、点播、录像回放及与平台协议、安全、解码链相关的国标配套;当前代码持续迭代,基于 **Qt Quick** 主界面、**FFmpeg** 与 **SVAC / p35114** 等三方库,并逐步对接 HTTP 资源树、实时预览等模块。 ## 功能概览(以代码与版本为准) | 方向 | 说明 | |------|------| | 登录与配置 | 登录页走 p35114_sdk 初始化与登录;配置见仓库根目录 `tplayer_sdk.ini.example`(复制为 `tplayer_sdk.ini` 置于可执行文件旁) | | 资源树 | `GbResourceClient` 拉取与 WVP / 若依前端类似的 HTTP 接口(组织树、通道、启停播),供 QML 展示 | | 媒体 | FFmpeg 拉流/解码路径与 SVAC PS 流路径(`svac/`、`ffmpeg_player` 等);具体编解码与平台对接以当前实现为准 | 应用入口:`QQmlApplicationEngine::loadFromModule("TPlayer", "Login")`。登录成功后加载 `Main.qml`。向 QML 注入的对象:`thirdParty`(三方版本信息)、`triSdkAuth`(SDK 认证)、`gbResource`(国标资源与播控 HTTP 客户端)。 ## 技术栈 | 类别 | 说明 | |------|------| | 语言与构建 | C++17,CMake ≥ 3.21 | | UI | **Qt 6**(≥ 6.2),**Qt Quick / QML**,QML 模块 URI:`TPlayer`,风格 `Basic` | | Qt 模块(CMake) | Core、Gui、**Network**、Qml、Quick、QuickControls2、**QuickDialogs2** | | 媒体 | **FFmpeg**(`3rdpart/ffmpeg` 预编译头文件与导入库) | | 国标视频扩展 | **SVAC**:`ZxSvacDecLib` 等(Windows 下按目标位数使用 `3rdpart/svac/Windows/x64/sdk` 或 `x86/sdk`) | | 安全/SDK | **p35114_sdk**(`3rdpart/sdk`,链接 `p35114_sdk.lib`,运行期 DLL 与 ini 配置) | 日志使用 **Easylogging++**(`ELPP_THREAD_SAFE`);Windows 下退出时调用 `SvacTriSdkDecryptor::shutdownGlobal()`。 ## 仓库布局 ``` tplayer/ CMakeLists.txt # 构建与 Windows 下 DLL 拷贝规则 qml/ # Login.qml、Main.qml、资源 src/ # main、QML 后端类型、FFmpeg/SVAC、gb_resource_client 等 docs/ # 需求与演进说明(见下文「文档」) 3rdpart/ # FFmpeg、SVAC、p35114_sdk(见下表;通常由制品或在内网准备) tplayer_sdk.ini.example ``` ## 第三方目录(与 `CMakeLists.txt` 一致) 在仓库根目录准备以下结构,否则 **Windows 下链接或运行** 会不完整: | 路径 | 用途 | |------|------| | `3rdpart/ffmpeg/` | `include/`、`lib/`;**`bin/`**(构建后 `POST_BUILD` 整目录拷到 `tplayer.exe` 旁) | | `3rdpart/sdk/` | **p35114**:`inc/`、`lib/p35114_sdk.lib`、**`bin/`**(运行期 DLL,`POST_BUILD` 拷贝) | | `3rdpart/svac/Windows/x64/sdk` 或 `x86/sdk` | SVAC 解码库:`ZxSvacDecLib.lib` 及同级/`FRI`/`WTG1` 下 **DLL**(构建后按需拷贝) | - 若缺少 `3rdpart/ffmpeg/bin` 或 `3rdpart/sdk/bin`,CMake 会 **WARNING**,不会自动带上对应 DLL。 - **`tplayer_sdk.ini.example`** 会在 Windows 构建后复制到输出目录;使用 SDK 时需复制/改名为 **`tplayer_sdk.ini`**。键值说明见示例文件内注释;其中提到 `3rdpart/sdk/README.md` 时,以你手头的 SDK 文档为准(仓库未必包含该文件)。 - `.gitignore` 中曾预留忽略 `3rdpart/` 的规则(**当前为注释**)。若团队不把大体积 SDK 纳入 Git,可自行取消该行注释或由制品流水线下发 `3rdpart`。 ## 构建要求 - **Qt 6.2+**,并安装上与 `find_package` 一致的组件(含 Network、QuickDialogs2)。 - **Windows**:推荐使用 **MSVC**;工程对 SVAC 头文件中 GBK 注释与 MSVC `/utf-8` 已通过 `/wd4828` 降噪。 - **非 Windows**:`CMakeLists.txt` 现阶段**未**配置 FFmpeg/SVAC/p35114 的完整链接与非 Win 运行时拷贝;若需 Linux/macOS 构建,须在 CMake 与依赖侧自行补全(`thirdparty_info` 在非 Windows 上为占位说明)。 ### 配置与编译(Windows 示例) ```bash cmake -B build -S . -DCMAKE_PREFIX_PATH="C:/Qt/6.x.x/msvc2022_64" cmake --build build --config Debug ``` 发布后若缺 DLL:确认 `3rdpart/ffmpeg/bin`、`3rdpart/sdk/bin`、SVAC 各子目录是否与目标架构(x64/x86)一致,且构建已成功执行拷贝步骤。 ### macOS `CMakeLists.txt` 中为可执行文件设置了 `MACOSX_BUNDLE`,但链路仍以 Windows 三方库为主;在 Apple 平台上完整运行需另行集成对应 SDK 与 FFmpeg。 ## 文档 ## 规划方向(国标客户端) - 平台目录 / 资源树检索与展示(HTTP 客户端已开端) - 实时 / 点播播放(FFmpeg + SVAC 链路演进中) - 录像回放、时间轴(对接平台策略) - GB 35114 相关证书、密码与扩展解码能力随集成落地 ## 许可与第三方 FFmpeg、OpenSSL(若随 SDK 引入)、SVAC、p35114 及设备相关库均为**第三方**;再分发与授权以各许可证及采购/合同为准,发布前请完成合规核对。 --- **版本**:`CMakeLists.txt` 中 `project(tplayer VERSION 0.1.0 ...)`。