安卓GB28181-2022 RTP over TCP

news2024/11/26 0:51:57

     使用TCP传输RTP包,GB28181-2016和GB28181-2022 都是按IETF RFC4571来的。使用TCP发送RTP包,前面加个16位无符号长度字段就好(网络字节序)。具体定义格式如下:

   需要注意的是LENGTH值可以是0,0的话表示空包; 另外UDP传输RTP包,整个RTP包的长度一般就1000多个字节。TCP的话,LENGTH最大可以到0xFFFF, 对于视频帧或PS包可以考虑把RTP包切的大一点,这样可以少传一些RTP包头(RTP Header至少12个字节)。

   SDP也要做相应调整.

   媒体行定义如下(m=):

  "m=" media SP port ["/" integer] SP proto 1*(SP fmt) CRLF

   其中<proto>值为:"TCP/RTP/AVP"

   "setup" 属性:

"setup"属性值有:{ "active" , "passive"};

a=setup:active 表示主动发起连接.

a=setup:passive 表示被动accept连接.

   给出一个安卓端发起连接的SDP例子:

 v=0
 o=31020000011310000027 0 0 IN IP4 192.168.0.107
 s=Play
 c=IN IP4 192.168.0.107
 t=0 0
 m=video 15012 TCP/RTP/AVP 96
 a=rtpmap:96 PS/90000
 a=setup:active
 a=connection:new
 a=sendonly
 y=0200000001

   GB/T 28181 附录中给出了基于TCP协议的音视频媒体传输描述,相对于GB/T 28181-2016, GB/T 28181-2022增加了TCP客户端首次连接重连机制要求,如果首次TCP连接失败,需要尝试重连接,重连必须间隔一段时间再尝试(间隔时间应不小于1秒), 至少要尝试重连3次以上。

   首次重连机制,我自己的代码已经加上了, 接口如下:

    /*
    * Copyright (C) 1130758427@qq.com. All rights reserved.
    */


	/**
	 * 设置国标TCP连接超时时间
	 *
	 * @param timeout_ms, 单位是毫秒, 必须大于0, 不设置的话SDK将用默认值
	 * @return {0} if successful
	 */
	public native int SetGBTCPConnectTimeout(long handle, int timeout_ms);


	/**
	 * GB/T 28181-2022 附录D: TCP流媒体传输时, 首次TCP连接失败时, 应间隔一段时间进行重连, 重连间隔应不小于1秒, 此接口设置首次重连间隔时间
	 *
	 * @param interval_ms, 单位是毫秒, 必须大于等于0, SDK默认值是1000毫(1秒)
	 * @return {0} if successful
	 */
	public native int SetGBInitialTCPReconnectInterval(long handle, int interval_ms);


	/**
	 * GB/T 28181-2022 附录D: TCP流媒体传输时, 首次TCP连接失败时, 应间隔一段时间进行重连,重连次数应不小于3次, 此接口设置首次最大重连次数
	 *
	 * @param attempts, 最大重连次数, 必须大于等于0, SDK默认值是0, 如果对接的是GB/T 28181-2022 server,建议设置为3或更大的值
	 * @return {0} if successful
	 */
	public native int SetGBInitialTCPMaxReconnectAttempts(long handle, int attempts);

   GB28181-2022 相对于2016有些调整,基于国标的安卓执法记录仪要对接2022版服务端的话,代码也做相应调整更新, 更多问题可以联系qq: 1130758427

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

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

相关文章

【华为云主机迁移服务SMS,使用指南 (linux版本)】

文章目录 华为云主机迁移服务SMS,使用指南 (linux版本)1.迁移前准备工作1.1 必要条件1.2 准备 (注意切换浏览器) 2.在源端(A服务器)安装Agent (linux版), 连接到B的华为云SMS3.设置目的端(B服务器)--在B浏览器内操作4.开始服务器复制5.启动目的端 (B)6.其他非必要操作 华为云主…

KDZD地埋线短路漏电试扎器

一、产品背景 多年以来&#xff0c;电力电缆的维护迁移过程中的识别与刺孔&#xff0c;均按照行业标准DL409-91《电业安全工作规程&#xff08;电力线路部分&#xff09;》第234条要求&#xff0c;采用人工刺孔&#xff0c;一旦电缆识别出错&#xff0c;误刺孔带电电缆将对人身…

就现在!体验高科技的虚拟孪生

01 行业创新已成大势所趋 世界进入工业复兴大约已有十余载&#xff0c;众多行业开始向数字化转型&#xff0c;尖端技术取代了老旧的数字技术。对于制造商而言&#xff0c;在将运营控制在预算范围内的同时&#xff0c;保持满足这些需求所需的产量&#xff0c;是一项巨大的挑战。…

JS-11G/11端子排静态时间继电器 JOSEF约瑟 导轨安装

JS-11G系列端子排静态时间继电器品牌&#xff1a;JOSEF约瑟名称&#xff1a;端子排静态时间继电器型号&#xff1a;JS-11G工作电压&#xff1a;48,110,220V返回时间&#xff1a;≤20mS延时范围&#xff1a;0.02S~999M 系列型号&#xff1a; JS-11G1端子排静态时间继电器&…

【英语】2023 全国大学生英语竞赛NECCS相关准备

文章目录 1、比赛基本信息2、大赛题型和分值3、如何准备4、2023年全国大学生英语竞赛样题(C级)&#xff0c;满分150Part1. 听力&#xff08;30分钟&#xff0c;30分&#xff0c;1题1分&#xff09;Part2/3. 词语|语法&#xff0c;完型填空&#xff08;20分钟&#xff0c;25分&a…

《程序员面试金典(第6版)》面试题 16.07. 最大数值(移位 + 整形提升)

题目描述 编写一个方法&#xff0c;找出两个数字a和b中最大的那一个。不得使用if-else或其他比较运算符。 示例&#xff1a; 输入&#xff1a; a 1, b 2输出&#xff1a; 2 解题思路与代码 我真的觉得这道题很智障&#xff0c;但是你先别急。 这道题目的意义在于让你使用一…

老男孩读 pcie

之一1 2 RC的内部实现很复杂,PCIe Spec也没有规定RC该做什么,还是不该做什么。我们也不需要知道那么多,只需清楚:它一般实现了一条内部PCIe总线(BUS 0),以及通过若干个PCIe bridge,扩展出一些PCIe Port,如下图所示: PCIe Endpoint,就是PCIe终端设备,比如PCIe SSD…

Selenium:WebDriver简介及元素定位

目录 一、WebDriver原理 二、WebDriver定位方法 三、WebElement接口常用方法 一、WebDriver原理 1、关于WebDriver 设计模式&#xff1a;按照Server-Client的经典设计模式设计&#xff1b; Server端&#xff1a;即Remote Server&#xff08;远程服务器&#xff09;&#x…

@Autowired与@Resource原理知识点详解

文章目录 前言springIOC依赖注入的三种方式属性注入&#xff08;字段注入&#xff09;构造方法注入setter注入用哪个&#xff1f; Autowired实现原理 Resource实现原理结论 Autowired与Resource的不同来源不同参数不同使用不同装配顺序 前言 现在spring可以说是一统天下了&…

idea自带database连接mysql失败问题

idea2023.1版连接mysql失败 DBMS: MySQL (ver. 5.7.13) Case sensitivity: plainexact, delimitedexact Driver: MySQL Connector Java (ver. mysql-connector-java-5.1.47 ( Revision: fe1903b1ecb4a96a917f7ed3190d80c049b1de29 ), JDBC4.0) [08S01]Communications link fai…

【Python】漏斗模型--生成漏斗案例 Demo实例

文章目录 背景一、漏斗模型二、漏斗模型案例1. 电商购物流程2. AARRR模型 三、如何绘制漏斗模型&#xff1f;总结 背景 很早之前就知道漏斗模型&#xff0c;但没有做更多的了解和运用&#xff0c;后来对漏斗模型的了解稍加深入之后&#xff0c;觉得它不仅仅是一个模型&#xf…

优思学院:什么是快速改善方法(Kaizen Blitz)?

什么是快速改善方法&#xff08;Kaizen Blitz&#xff09;&#xff1f; Kaizen blitz是精益管理中的一种方法&#xff0c;指通过集中一段时间内的团队努力来实现快速改进的方法。 Kaizen是一个日语词汇&#xff0c;意为“改善”&#xff0c;是一种广泛应用于企业管理的哲学&a…

软考(中/高级)高频考点——进度管理

现在距离2023年上半年软考仅有一个多月时间了&#xff0c;相信很多考友都进入火热的备考状态了。 为了给备考的考友们减轻备考难点&#xff0c;小编特意为大家整理了软考&#xff08;中/高级&#xff09;的一些高频考点——进度管理&#xff0c;希望对正在备考软考的你有所帮助…

Redis在linux下安装

1.下载安装包 redis官网: Download | Redis 2.解压 2.1在目录下解压压缩包 tar -zxvf redis-7.0.11.tar.gz 2.2将redis移至另一目录下并改名为redis mv redis-7.0.11 /usr/local/redis 3.编译 进入到redis目录下&#xff0c;make命令编译 [rootVM-24-15-centos local]# cd…

直动式球形止回阀DCV-080-PB、DCV-100-PB

特性 导通型。 硬质阀芯和阀座寿命更长。 工业化通用阀腔。 紧凑的尺寸。 直动球形止回阀 ZCO-42 0类 直动提升止回阀 ZCP6 0类 直动球形止回阀 ZC-62 0类 直动式球形止回阀 DCV-080-B 系列8 直动式球形止回阀 DCV-100-B 系列10 直动式球形止回阀 DCV-080-PB 系列8 …

【HAL库】STM32F407----CAN通信----中断详解

CAN通信----基本原理 CAN通信----电路图 一、CAN通信----中断简介 STM32F407的CAN通信一共有四个专用中断&#xff0c;分别是&#xff1a; 发送中断FIFO0 接收中断FIFO1 接收中断错误中断 具体如下图所示&#xff1a; 二、CAN通信----中断寄存器 CAN中断使能寄存器&#x…

颠覆Android开发行业未来,让Kotlin成为您的新宠

会Java还要学习kotlin吗&#xff1f; 看看这位老哥的回答&#xff1a; kotlin语言有前景吗&#xff1f; 看看在职高级开发怎么说的&#xff1a; Kotlin是什么&#xff1f; Kotlin是一种基于Java虚拟机&#xff08;JVM&#xff09;的静态类型编程语言&#xff0c;可以与Java代…

天,地,人,伤寒六经概述

天&#xff0c;地&#xff0c;人&#xff0c;伤寒六经概述 人天地天地气机伤寒六经三阳:三阴:太阳&#xff0c;少阳&#xff0c;阳明&#xff0c;太阴&#xff0c;少阴&#xff0c;厥阴 人 人之所以是一个活着的人&#xff0c;就在于人能够不断地与外界进行物质交换&#xff0…

CSDN周赛第48期

不知不觉又过去两期周赛&#xff0c;相应地&#xff0c;题解也落下了。而当我再回去想下载考试报告时。。。 现在更新的速度有这么快了么&#xff1f; 可惜题目还是考过的旧题&#xff0c;尤其对我们这种老油子来说&#xff0c;最大的好处是省去了阅读理解的烦恼。 平心而论&…

【论文阅读】CubeSLAM: Monocular 3D Object SLAM

一、基于单目图像的3d目标检测 这一部分是论文中最难理解的一章&#xff0c;作者的主要想法&#xff0c;是利用2d图像来生成3d的目标包围框&#xff08;bounding box&#xff09;&#xff0c;一方面这个思路本身就不是很好懂&#xff0c;另一方面&#xff0c;作者写这一章还是…