# 流媒体平台 **Repository Path**: 1502207/streaming-media-platform ## Basic Information - **Project Name**: 流媒体平台 - **Description**: 用于1078/808的流媒体平台 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-05-04 - **Last Updated**: 2026-05-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 流媒体平台 ## 介绍 用于1078/808的流媒体平台 [JT/T 808-2019,交通部在线阅读](https://jtst.mot.gov.cn/kfs/file/read/8736c9f4c7448cf07f643aa1c3cd6a76) [JT/T 1078-2016,交通部在线阅读](https://jtst.mot.gov.cn/kfs/file/read/638523dd6b19243c468ded227708d24d) [服务端--源代码学习](https://gitee.com/yezhihao/jt808-server) [客户端--源代码学习](https://gitee.com/lingxcom/jt808-client) ## 知识点 |偏移| 长度| 字段| 说明| |--- |---|---|--- | |0 |4 |帧头标识 |固定 0x30 0x31 0x63 0x64('01cd')| |4 |1 |RTP 头(V+P+X+CC) |固定 0x80(V=2,P=0,X=0,CC=1)| |5 |1 |M+PT |M = 分片边界,PT = 负载类型(视频 = 96) = 0x60| |6 |2 |序列号 SN |每包递增| |8 |6 |SIM 卡号 |BCD 码,6 字节| |14 |1 |逻辑通道号 |摄像头号:1、2、3…| |15 |1 |数据类型 + 分包标记 |高 4 位 = 帧类型;低 4 位 = 分片标记| |16 |8 |时间戳|当数据类型是0100时,每隔这个字段 |24|2|Last I Frame Interval|与上一个I帧的时间间隔,当数据类型为非视频的时候,没有该字段 |26|2|Last frame Interval|与上一个帧的时间间隔,当数据类型为非视频的时候,没有该字段 |28 |2 |数据体长度 |后面 H.264 数据长度(≤950)| |30|n|数据体| H.264 数据<=950| 参考两个网站 http://lib.cvtsp.com/video/CVNetVideoJs/test/tstrtvs.html https://gitee.com/vanjoge/RTVS ## 小金提供的参考 > ip:81.69.10.7 > 端口:9300 > > http://lib.cvtsp.com/video/CVNetVideoJs/test/tstrtvs.html > > 控件参数填写:81.69.10.7 端口填写:17000 > SIM卡填写:111123456789 ## 管小刚提供的参考 > 183.162.199.107 7000 > > http://183.162.199.107:9999/ > > admin 123456 > > 终端标识:12345678910 SIM卡号:12345678910 # 0x9101前需要做什么 要收到平台下发的 **0x9101(实时音视频请求)**,终端必须先完成 **JT808 基础登录流程** + **JT1078 视频能力准备**,缺一不可。下面按“必做指令+流程顺序”讲清楚(含消息ID和作用)。 --- ## 一、核心前提:JT808 必须先完成(强制) ### 1. TCP 连接建立 终端 → 平台:三次握手,建立长连接。 ### 2. 终端注册(0x0100)——首次/换车/换终端时 - 消息ID:**0x0100**(终端注册) - 终端上报:终端ID、手机号、制造商ID、型号、车牌、颜色等。 - 平台应答:**0x8100**(注册应答),返回**鉴权码**(关键,必须本地保存)。 ### 3. 终端鉴权(0x0102)——每次重连都要发(重点) - 消息ID:**0x0102**(终端鉴权) - 终端上报:**鉴权码**(来自0x8100)+ 终端信息。 - 平台应答:**0x8001**(通用应答),鉴权成功后才允许后续通信。 - 规则:**鉴权成功前,平台不会下发任何业务指令(含0x9101)**。 ### 4. 心跳保持(0x0002)——长连接维持 - 消息ID:**0x0002**(终端心跳) - 周期:30s~60s(平台配置) - 作用:防止连接被踢,维持在线状态,否则平台会断开连接,自然收不到0x9101。 --- ## 二、视频相关前置(JT1078+808扩展,必做) ### 1. 终端参数上报(含视频能力) - 终端可主动上报,或平台查询(0x8106)。 - 关键参数:**是否支持视频、摄像头数量、分辨率、编码格式(H.264/H.265)**等。 - 目的:平台确认终端具备视频能力,才会下发0x9101。 ### 2. 音视频参数设置(平台→终端,可选但常用) - 消息ID:**0x9103**(音视频参数设置) - 平台下发:通道号、码率、分辨率、帧率、I帧间隔等。 - 终端应答:**0x0001**(通用应答),确认参数生效。 ### 3. 摄像头状态上报(可选,提升稳定性) - 终端上报:摄像头在线/离线、信号正常/异常。 - 作用:平台知道哪个通道可用,下发0x9101时指定正确通道。 --- ## 三、完整流程顺序(一步都不能乱) 1. TCP 连接 → 2. 0x0100 注册(首次) → 3. 0x8100 应答(拿鉴权码) → 4. 每次重连发 0x0102 鉴权 → 5. 0x8001 鉴权成功 → 6. 心跳 0x0002 维持在线 → 7. 上报视频能力 → 8.(可选)0x9103 参数设置 → 9. 平台下发 **0x9101**(实时视频请求)。 --- ## 四、常见失败原因(收不到0x9101) - ❌ 没发 **0x0102 鉴权**:平台直接忽略所有后续消息。 - ❌ 鉴权码错误:0x8100 返回的鉴权码未保存或传错。 - ❌ 没发心跳:连接被平台断开。 - ❌ 未上报视频能力:平台认为终端无视频功能。 - ❌ 转义错误:7E/7D 转义不对,平台解析失败,直接丢包。 --- ## 五、一句话总结 **0x9101 之前,终端必须完成:TCP连接 → 0x0100注册 → 0x0102鉴权 → 心跳维持 → 视频能力上报**。鉴权是核心门槛,没鉴权成功,一切业务指令都免谈。 需要我把这个流程整理成一份可直接编码的**Netty消息发送顺序清单**吗? #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)