部标(JT/T1078)流媒体对接说明

1.前言

最近在配合客户开发流媒体相关的服务的时候,整理了一些对接过程资料,这里做个分享与记录。流媒体的对接主要牵扯到4个方面:
(1)平台端:业务端系统,包含前端呈现界面。

(2)JT/T808网关:部标设备接入网关,这个是非常重要的,是设备与平台进行数据交换的桥梁,流媒体相关的指令操作也必须依赖它完成。

(3)部标视频机:符合JT/T808协议的车载视频机器。

(4)流媒体服务:符合JT/T1078协议的流媒体服务,用来接收部标视频机的音视频流,并进行转发。

2.交互流程

2.1.实时音视频点播与控制流程

2.2.双向语音对讲流程

2.3.历史音视频回放流程

3.实时音视频点播与控制指令详解

3.1.平台下发拉流指令

命令采用0x9101消息

命令组包示例:

7e91010016138110121350fef70e3132342e3232332e36302e3233341b590000010001097e

 示例解释:

7e 
9101 --拉流的命令ID
0016 --消息体属性
138110121350 --设备ID,不足12位前面补0,如果是2019的协议,不足20位前面补0
fef7 --消息流水号
0e --流媒体地址IP地址长度,14个字节
3132342e3232332e36302e323334  --IP 地址(124.223.60.234)
1b59 --流媒体地址TCP端口(7001)
0000 --流媒体地址UDP端口(0)
01 --视频通道号,即:设备上的摄像头的通道号,看哪个摄像头对哪个摄像头进行拉流
00 --拉流的数据类型(0:音视频;1:视频;2:双向对讲;3:监听;4:中心广播;5:透传,视频点播用音视频或者视频,但是一般都用音视频,对讲用2
01 --码流类型(0:主码流;1:子码流),设备上报的码流类型,一般默认用子码流,流畅度会高些,但是清晰度会稍微差点
09 --校验码
7e

3.2.设备应答拉流指令

设备对拉流指令采用的是通用应答:0x0001消息进行应答

3.3.组成拉流地址

平台收到设备指令应答后,后台组成拉流地址,返回给前端,组包示例如下:

"flv": "http://apollo.aovx.com:8088/00000000018026966027/1.live.flv",
"https_flv": "https://apollo.aovx.com:18443/00000000018026966027/1.live.flv",
"ws_flv": "ws://apollo.aovx.com:8088/00000000018026966027/1.live.flv",
"wss_flv": "wss://apollo.aovx.com:18443/00000000018026966027/1.live.flv",
"fmp4": "http://apollo.aovx.com:8088/00000000018026966027/1.live.mp4",
"https_fmp4": "https://apollo.aovx.com:18443/00000000018026966027/1.live.mp4",
"ws_fmp4": "ws://apollo.aovx.com:8088/00000000018026966027/1.live.mp4",
"wss_fmp4": "wss://apollo.aovx.com:18443/00000000018026966027/1.live.mp4",
"hls": "http://apollo.aovx.com:8088/00000000018026966027/1/hls.m3u8",
"https_hls": "https://apollo.aovx.com:18443/00000000018026966027/1/hls.m3u8",
"ws_hls": "ws://apollo.aovx.com:8088/00000000018026966027/1/hls.m3u8",
"wss_hls": "wss://apollo.aovx.com:18443/00000000018026966027/1/hls.m3u8",
"ts": "http://apollo.aovx.com:8088/00000000018026966027/1.live.ts",
"https_ts": "https://apollo.aovx.com:18443/00000000018026966027/1.live.ts",
"ws_ts": "ws://apollo.aovx.com:8088/00000000018026966027/1.live.ts",
"rtmp": "rtmp://apollo.aovx.com:8935/00000000018026966027/1",
"rtsp": "rtsp://apollo.aovx.com:8554/00000000018026966027/1",
"rtsps": "rtsps://apollo.aovx.com:8332/00000000018026966027/1",

其中:apollo.aovx.com是服务器的IP或者域名,后面是每种拉流方式对应的端口
00000000018026966027:对应的是设备的ID,为了兼容JT/T808-2019的协议,所以返回默认20位(前面补0即可)
1.live.flv:其中1指的是通道号,.live.flv流媒体的后缀,不同的拉流方式可能不一样。
前端通过这个地址拉流即可。

3.4.流控制命令

流控制命令采用的是0x9102命令

流控制命令组包示例:

7e91020004138110121350c52e01000001af7e

 示例解释:

7e
9102 --流控制的命令ID
0004 --消息体属性
138110121350 --设备ID,不足12位前面补0,如果是2019的协议,不足20位前面补0
c52e --消息流水号
01 --视频通道号,即:设备上的摄像头的通道号
00 --控制指令(0:关闭音视频传输指令;1:切换码流;2:暂停该通道所有流的发送;3:回复暂停前流的发送;4:关闭双向对讲)
00 --关闭音视频类型(0:关闭该通道有关的音视频数据;1:只关闭该通道有关的音频;2:只关闭该通道的视频)
01 --切换码流类型(0:新申请码流为主码流;1:新申请码流为子码流)
af --校验码
7e

3.5.设备应答流控制命令

设备流控制命令采用的是通用应答:0x0001消息进行应答

4.双向语音对讲指令详解

 4.1.平台下发语音对讲指令

命令采用0x9101消息,语实时拉流一致主要区别是数据类型采用2双向对讲

命令组包示例:

7e9101001601802696602709fc0e3132342e3232332e36302e3233341b590000010201527e

 示例解释:

7e
9101 --对讲的命令ID
0016 --消息体属性
018026966027 --设备ID,不足12位前面补0,如果是2019的协议,不足20位前面补0
09fc --消息流水号
0e --流媒体地址IP地址长度,14个字节
3132342e3232332e36302e323334 --IP 地址(124.223.60.234)
1b59 --流媒体地址TCP端口(7001)
0000 --流媒体地址UDP端口(0)
01 --对讲通道号
02 --数据类型
01 --码流类型(0:主码流;1:子码流),设备上报的码流类型,一般默认用子码流,流畅度会高些,但是清晰度会稍微差点
52 --校验码
7e

4.2.设备应答对讲指令

设备对拉流指令采用的是通用应答:0x0001消息进行应答

4.3.组成推流与拉流地址

平台收到设备指令应答后,后台组成拉流地址,返回给前端,组包示例如下:

"flv": "http://apollo.aovx.com:8088/00000000018026966027/1.live.flv",
"https_flv": "https://apollo.aovx.com:18443/00000000018026966027/1.live.flv",
"ws_flv": "ws://apollo.aovx.com:8088/00000000018026966027/1.live.flv",
"wss_flv": "wss://apollo.aovx.com:18443/00000000018026966027/1.live.flv",
"fmp4": "http://apollo.aovx.com:8088/00000000018026966027/1.live.mp4",
"https_fmp4": "https://apollo.aovx.com:18443/00000000018026966027/1.live.mp4",
"ws_fmp4": "ws://apollo.aovx.com:8088/00000000018026966027/1.live.mp4",
"wss_fmp4": "wss://apollo.aovx.com:18443/00000000018026966027/1.live.mp4",
"hls": "http://apollo.aovx.com:8088/00000000018026966027/1/hls.m3u8",
"https_hls": "https://apollo.aovx.com:18443/00000000018026966027/1/hls.m3u8",
"ws_hls": "ws://apollo.aovx.com:8088/00000000018026966027/1/hls.m3u8",
"wss_hls": "wss://apollo.aovx.com:18443/00000000018026966027/1/hls.m3u8",
"ts": "http://apollo.aovx.com:8088/00000000018026966027/1.live.ts",
"https_ts": "https://apollo.aovx.com:18443/00000000018026966027/1.live.ts",
"ws_ts": "ws://apollo.aovx.com:8088/00000000018026966027/1.live.ts",
"rtmp": "rtmp://apollo.aovx.com:8935/00000000018026966027/1",
"rtsp": "rtsp://apollo.aovx.com:8554/00000000018026966027/1",
"rtsps": "rtsps://apollo.aovx.com:8332/00000000018026966027/1",
"ws_tts": "ws://apollo.aovx.com:7002/00000000018026966027/1?type=0&pt=pcm&vendorType=0",
"wss_tts": "wss://apollo.aovx.com:4443/00000000018026966027/1?type=0&pt=pcm&vendorType=0"

平台端对音频采集通过ws_tts或者wss_tts进行推流,并通过拉流地址进行音频拉流。

4.4.对讲控制命令

对讲控制命令采用的是0x9102命令,当控制指令为4的时候关闭双向对讲

流控制命令组包示例:

7e91020004138110121350c52e01040001ab7e

 示例解释:

7e
9102 --流控制的命令ID
0004 --消息体属性
138110121350 --设备ID,不足12位前面补0,如果是2019的协议,不足20位前面补0
c52e --消息流水号
01 --视频通道号,即:设备上的摄像头的通道号
04 --控制指令(0:关闭音视频传输指令;1:切换码流;2:暂停该通道所有流的发送;3:回复暂停前流的发送;4:关闭双向对讲)
00 --关闭音视频类型(0:关闭该通道有关的音视频数据;1:只关闭该通道有关的音频;2:只关闭该通道的视频)
01 --切换码流类型(0:新申请码流为主码流;1:新申请码流为子码流)
ab --校验码
7e

4.5.设备应答对讲控制命令

设备对讲控制命令采用的是通用应答:0x0001消息进行应答

5.历史音视频回放指令详解

5.1.获取视频回放列表

视频回放列表获取采用的是:0x9205命令

指令示例: 

7e920500140186805708619f160124091800000024091823595900000000000100107e

 示例解释:

7e
9205 --查询设备视频列表的命令ID
0014 --消息体属性
018680570861 --设备ID,不足12位前面补0,如果是2019的协议,不足20位前面补0
9f16 --消息流水号
01 --视频通道号,即:设备上的摄像头的通道号
240918000000 --查询时间段的开始时间(yyMMddHHmmss)
240918235959 --查询时间段的结束时间(yyMMddHHmmss)
00000000 --报警标志
00 --音视频类型(0:音视频,1:音频,2:视频,3:视频或音视频)
01 --码流类型(0:主码流或子码流;1:主码流;2:子码流)
00 --存储器类型(0:主存储器或者灾备存储器,1:主存储器;2:灾备存储器)
10 --校验码
7e

5.2.设备应答视频列指令

设备对获取视频列表的应答采用的是:0x1205消息进行应答

 应答示例:

7E1205000601868057086104B39F1600000000167E

 示例解释:

7E 
1205 --设备应答查询设备视频列表的命令ID
0006 --消息体属性
018680570861 --设备ID,不足12位前面补0,如果是2019的协议,不足20位前面补0
04B3 --消息流水号
9F16 --应答查询命令的消息流水号
00000000 --音视频资源总数(需要设备插入TF卡或者硬盘才有视频记录,这个需要注意)
16 --校验码
7E

5.3.历史视频点播

历史视频点播采用的是:0x9201命令

 

指令示例:

7e9201002513811012135011190e3132342e3232332e36302e3233341b5900000100000000002404301356182404301439236d7e

 示例解释:

7e
9201 --进行历史视频回放命令ID
0025 --消息体属性
138110121350 --设备ID,不足12位前面补0,如果是2019的协议,不足20位前面补0
1119 --消息流水号
0e --流媒体地址IP地址长度,14个字节
3132342e3232332e36302e323334  --IP 地址(124.223.60.234)
1b59 --流媒体地址TCP端口(7001)
0000 --流媒体地址UDP端口(0)
01 --视频通道号,即:设备上的摄像头的通道号,看哪个摄像头对哪个摄像头进行拉流
00 --音视频类型(0:音视频,1:音频,2:视频,3:视频或音视频)
00 --码流类型(0:主码流或子码流;1:主码流;2:子码流)
00 --存储器类型(0:主存储器或者灾备存储器,1:主存储器;2:灾备存储器)
00 --回放类型(0:正常回放;1:快进回放;2:快退回放;3:关键帧播放;4:单帧上传)
00 --快进或者快退倍数;0:无效;1:1倍;2:2倍;3:4倍;4:8倍;5:16倍
240430135618 --对应的历史视频列表中某个录像文件的开始时间(yyMMddHHmmss)
240430143923 --对应的历史视频列表中某个录像文件的结束时间(yyMMddHHmmss)
6d --校验码
7e

5.4.设备应答拉流指令

设备对拉流指令采用的是通用应答:0x0001消息进行应答

5.5.组成拉流地址

平台收到设备指令应答后,后台组成拉流地址,返回给前端,组包示例如下,与实时视频一致:

        "flv": "http://apollo.aovx.com:8088/00000000018026966027/1.live.flv","https_flv": "https://apollo.aovx.com:18443/00000000018026966027/1.live.flv","ws_flv": "ws://apollo.aovx.com:8088/00000000018026966027/1.live.flv","wss_flv": "wss://apollo.aovx.com:18443/00000000018026966027/1.live.flv","fmp4": "http://apollo.aovx.com:8088/00000000018026966027/1.live.mp4","https_fmp4": "https://apollo.aovx.com:18443/00000000018026966027/1.live.mp4","ws_fmp4": "ws://apollo.aovx.com:8088/00000000018026966027/1.live.mp4","wss_fmp4": "wss://apollo.aovx.com:18443/00000000018026966027/1.live.mp4","hls": "http://apollo.aovx.com:8088/00000000018026966027/1/hls.m3u8","https_hls": "https://apollo.aovx.com:18443/00000000018026966027/1/hls.m3u8","ws_hls": "ws://apollo.aovx.com:8088/00000000018026966027/1/hls.m3u8","wss_hls": "wss://apollo.aovx.com:18443/00000000018026966027/1/hls.m3u8","ts": "http://apollo.aovx.com:8088/00000000018026966027/1.live.ts","https_ts": "https://apollo.aovx.com:18443/00000000018026966027/1.live.ts","ws_ts": "ws://apollo.aovx.com:8088/00000000018026966027/1.live.ts","rtmp": "rtmp://apollo.aovx.com:8935/00000000018026966027/1","rtsp": "rtsp://apollo.aovx.com:8554/00000000018026966027/1","rtsps": "rtsps://apollo.aovx.com:8332/00000000018026966027/1",

5.6.历史视频回放拉流控制

历史视频回放拉流控制采用的是:0x9202命令

 

 指令示例:

7e92020009138110121350f7b90102002404180000003f7e

 示例解释:

7e
9202 --进行历史视频回放控制命令ID
0009 --消息体属性
138110121350 --设备ID,不足12位前面补0,如果是2019的协议,不足20位前面补0
f7b9 --消息流水号
01 --视频通道号
02 --回放控制类型(0:开始回放;1:暂停回放;2:结束回放;3:快进回放;4:关键帧快退回放;5:拖动回放;6:关键帧播放)
00 --如果是快进或者快退(快进或者快退倍数;0:无效;1:1倍;2:2倍;3:4倍;4:8倍;5:16倍)
240418000000 --如果是拖动回放,则是拖动到的时间(yyMMddHHmmss)
3f --校验码
7e

5.7.设备应答控制指令

设备对视频回放控制采用的是通用应答:0x0001消息进行应答

6.结语

对接过程中有很多的坑,特别是双向对讲,如果采集音频并通过流媒体抓发给设备,还有设备使用的那种编码格式,如何兼容海思头等等,如有兴趣的朋友可以一起交流沟通。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/146557.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Transformer宝藏入门教程,五天肝疯了—Transformer最全面的入门指南

随着 BERT、GPT 等大规模语言模型的兴起,越来越多的公司和研究者采用 Transformers 库来构建 NLP 应用。本文档教程里包括了自然语言处理、Transformer模型、注意力机制、pytorch、微调预训练模型、翻译任务、序列标注任务、文本摘要等等模块 一、内容介绍 《Tran…

【正点原子K210连载】第三十九章 YOLO2人脸检测实验 摘自【正点原子】DNK210使用指南-CanMV版指南

第三十九章 YOLO2人脸检测实验 从本章开始,将通过几个实例介绍Kendryte K210上的KPU,以及CanMV下KPU的使用方法,本章将先介绍YOLO2网络的人脸检测应用在CanMV上的实现。通过本章的学习,读者将学习到YOLO2网络的人脸检测应用在Can…

数字人直播带货火了,只要有了这个工具,就可以打造数字人,建议新手小白赶紧尝试!

经济下行,普通人应该尽早认清一个事实,没有一技之长,没有核心竞争力,即便是打工皇帝,年入百万也只是浮云。 一定要保证主业的稳定,再探索新的机会,要多从”1-10",而不是反复”…

2024/9/21黑马头条跟学笔记(十)

1)今日内容 1.1)定时计算流程 1.不想用户看到的全是最新的,实时计算最火的推送 2.定时计算热度最高,存redis,推送到推荐页面 1.2)使用schedule 多个服务部署,多次执行 硬编码定时时间在cron…

群晖使用Docker部署WPS Office并实现异地使用浏览器制作办公文档

文章目录 前言1. 本地环境配置2. 制作本地分享链接3. 制作公网访问链接4. 公网ip地址访问您的分享相册5. 制作固定公网访问链接 前言 想象一下这个场景:如果遇到周末紧急需要改方案,但团队成员都在各自家中,这个时候如果大家能够轻松访问这个…

海洋大地测量基准与水下导航系列之二国外海底大地测量基准和海底观测网络发展现状(上)

海底大地控制网建设构想最先由美国斯克里普斯海洋研究所(Scripps Institution of Oceanography,SIO)提出,目前仅有少数发达国家具备相应技术条件。美国、日本、俄罗斯和欧盟等发达国家通过布测先进的海底大地控制网,不断完善海洋大地测量基准基础设施&am…

SpringCloud Alibaba五大组件之——Sentinel

SpringCloud Alibaba五大组件之——Sentinel(文末附有完整项目GitHub链接) 前言一、什么是Sentinel二、Sentinel控制台1.下载jar包2.自己打包3.启动控制台4.浏览器访问 三、项目中引入Sentinel1.在api-service模块的pom文件引入依赖:2.applic…

一堆让你眼界大开的实用工具网站——搜嗖工具箱

和图书 https://www.hetushu.com/ 一个好用的免费看小说网站。和图书是一个提供各种热门电子书,书籍,小说免费在线阅读的网站,涵盖网游、玄幻、穿越、科幻、仙侠、都市、武侠、历史、竞技、军事灵异等多个种类的小说。在这个网站看小说最大的感触简单干净&#xff…

C++速通LeetCode中等第15题-搜索二维矩阵II(两种方法)

方法一&#xff1a;二分法按行遍历查找&#xff1a; class Solution { public:bool searchMatrix(vector<vector<int>>& matrix, int target) {for (const auto& row: matrix) {auto it lower_bound(row.begin(), row.end(), target);if (it ! row.end()…

【C++掌中宝】在正式学习C++之前,你还应该了解哪些东西?

文章目录 前言1. C发展历史1.1 C版本更新1.2 关于C23的一个小故事 2. C参考文档3. C的重要性3.1 编程语言排行榜3.2 C在工作领域中的应用 4. C学习建议和书籍推荐4.1 C学习难度4.2 C学习建议4.3 学习书籍推荐 5. C第一个程序结语 前言 在正式学习C之前&#xff0c;我觉得应该先…

Linux:make,Makefile

hello&#xff0c;各位小伙伴&#xff0c;本篇文章跟大家一起学习《Linux&#xff1a;make&#xff0c;Makefile》&#xff0c;感谢大家对我上一篇的支持&#xff0c;如有什么问题&#xff0c;还请多多指教 &#xff01; 如果本篇文章对你有帮助&#xff0c;还请各位点点赞&…

Java面试篇-AOP专题(什么是AOP、AOP的几个核心概念、AOP的常用场景、使用AOP记录操作日志、Spring中的事务是如何实现的)

文章目录 1. 什么是AOP2. AOP的几个核心概念3. AOP的常用场景4. 使用AOP记录操作日志4.1 准备工作4.1.1 引入Maven依赖4.1.2 UserController.java4.1.3 User.java4.1.4 UserService.java 4.2 具体实现&#xff08;以根据id查询用户信息为例&#xff09;4.2.1 定义切面类&#x…

基于uni-app的计算机类面试宝设计与实现(毕业论文)

目 录 1 前言 1 1.1 研究目的与意义 1 1.2 研究现状 1 1.3 论文结构 2 2 可行性分析 3 2.1 经济可行性 3 2.2 法律可行性 3 2.3 技术可行性 4 2.4 市场可行性 4 2.5 可行性分析结论 4 3 系统需求分析 4 3.1 用户需求分析 4 3.2 系统功能分析 5 3.3 系统性能需求分析 6 4 概要设…

【网络安全 | 靶机搭建】修改镜像源、更新软件源、安装git、更改python版本等

文章目录 0x00、必要准备0x01、修改镜像源0x02、更新软件源并清除缓存0x03、安装git0x04、更改默认Python版本为python30x05、安装增强功能0x06、vmware虚拟机导出iso0x00、必要准备 安装虚拟机时必须保存用户名、密码,用于后续操作,可以截图保存: 以下内容按个人需要进行配…

重生奇迹MU 强化玩法套路多 极品装备由你打造

欢迎来到重生奇迹MU的强化玩法指南&#xff01;想要打造极品装备吗&#xff1f;不可错过这篇文章&#xff0c;我们将为您揭开最多套路的强化技巧和窍门&#xff0c;帮您节省时间和资源&#xff0c;并带来最高效的升级结果。无论您是新手还是老玩家&#xff0c;本文适合所有级别…

AI浪潮新崛起:借助AI+实景/视频直播创新魅力,开启无人自动直播新时代!

AI浪潮新崛起&#xff1a;借助AI实景/视频直播创新魅力&#xff0c;开启无人自动直播新时代&#xff01; 在科技日新月异的今天&#xff0c;人工智能&#xff08;AI&#xff09;已不再仅仅是科幻电影中的桥段&#xff0c;它正以不可阻挡之势渗透到我们生活的方方面面&#xff…

工业物联网的海量数据如何呈现,可视化设计来助力

工业物联网产生的海量数据需要通过可视化设计来呈现&#xff0c;以帮助用户更好地理解和分析数据。 数据汇总和聚合&#xff1a; 对于大量的数据&#xff0c;可以通过汇总和聚合的方式来减少数据的数量&#xff0c;同时保留关键的信息。例如&#xff0c;将时间序列数据按照小…

Excel 冻结多行多列

背景 版本&#xff1a;office 2021 专业版 无法像下图内某些版本一样&#xff0c;识别选中框选的多行多列。 如下选中后毫无反应&#xff0c;点击【视图】->【冻结窗口】->【冻结窗格】后自动设置为冻结第一列。 操作 如下&#xff0c;要把前两排冻结起来。 选择 C1&a…

2024华为杯研赛D题保姆级教程思路分析+教程

2024年中国研究生数学建模竞赛D题保姆级教程思路分析 D题&#xff1a;大数据驱动的地理综合问题&#xff08;数学分析&#xff0c;统计学&#xff09; 关键词&#xff1a;地理、气候、统计&#xff08;细致到此题&#xff1a;统计指标、统计模型、统计结果解释&#xff09; …

视频压缩篇:适用于 Windows 的 10 款最佳视频压缩器

视频压缩器现在对许多想要减小视频大小的视频编辑者来说非常有名。但是&#xff0c;并非所有可以在网上找到的视频压缩器都能产生最佳输出。因此&#xff0c;我们搜索了可以无损压缩视频的最出色的视频压缩器应用程序。本文列出了您可以在离线、在线和手机上使用的十大最佳视频…