c语言rtp协议,RTP系列:RTP协议详解和分析

c语言rtp协议,RTP系列:RTP协议详解和分析1、RTP概述实时传输协议(Real-timeTransportProtocol或简写RTP)是一个网络传输协议,作为因特网标准在RFC3550(该文档的旧版本是RFC1889)有详细说明。RFC3551(STD65,旧版本是RFC1890)详细描述了使用最小控制的音频和视频会议。RTP协议详细说明了在互联网上传递音频和视频的标准数据包格式。它一开始被设计为一个多播协议,但后来被用在…

大家好,又见面了,我是你们的朋友全栈君。

1、RTP概述

实时传输协议(Real-time Transport Protocol或简写RTP)是一个网络传输协议,作为因特网标准在RFC 3550(该文档的旧版本是RFC 1889)有详细说明。RFC 3551(STD 65,旧版本是RFC 1890)详细描述了使用最小控制的音频和视频会议。

RTP协议详细说明了在互联网上传递音频和视频的标准数据包格式。它一开始被设计为一个多播协议,但后来被用在很多单播应用中。RTP协议常用于流媒体系统(配合RTSP协议),视频会议和一键通(Push to Talk)系统(配合H.323或SIP),使它成为IP电话产业的技术基础。RTP协议和RTP控制协议RTCP一起使用。

2、RTP协议格式

RTP包结构 = RTP包头 + payload载荷数据(媒体数据),包头结构如下(粗体字段,重点关注):

c059f72eb0bb

RTP包头

1. V:RTP协议的版本号,占2位,当前协议版本号为2。

2. P:填充标志,占1位,如果P=1,则在该报文的尾部填充一个或多个额外的八位组,它们不是有效载荷的一部分。

3. X:扩展标志,占1位,如果X=1,则在RTP报头后跟有一个扩展报头。

4. CC:CSRC计数器,占4位,指示CSRC 标识符的个数。

5. M: 标记,占1位,不同的有效载荷有不同的含义,对于视频,标记一帧的结束;对于音频,标记会话的开始。

6. PT: 有效载荷类型,占7位,用于说明RTP报文中有效载荷的类型,如GSM音频、JPEM图像等,在流媒体中大部分是用来区分音频流和视频流的,这样便于客户端进行解析。

7. 序列号:占16位,用于标识发送者所发送的RTP报文的序列号,每发送一个报文,序列号增1。这个字段当下层的承载协议用UDP的时候,网络状况不好的时候可以用来检查丢包。

8. 时间戳(Timestamp):占32位,反映了该RTP报文的第一个八位组的采样时刻。接收者使用时戳来计算延迟和延迟抖动,并进行同步控制。使用的是采样时间。

9. 同步信源(SSRC)标识符:占32位,用于标识同步信源。该标识符是随机选择的,参加同一视频会议的两个同步信源不能有相同的SSRC。

10. 特约信源(CSRC)标识符:每个CSRC标识符占32位,可以有0~15个。每个CSRC标识了包含在该RTP报文有效载荷中的所有特约信源。

3、抓包分析

c059f72eb0bb

RTP包

相关的参数在软件已经分析出来,其中RTP数据中包含了两种数据,PT为96的为视频;PT为97的为音频。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/153983.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Python:Python学习总结

    Python:Python学习总结背景PHP的$和->让人输入的手疼(PHP确实非常简洁和强大,适合WEB编程),Ruby的#、@、@@也好不到哪里(OO人员最该学习的一门语言)。Python应该是写起来最舒服的动态语言了,一下

  • Java设计模式之迭代子模式

    本文继续介绍23种设计模式系列之观察者模式。定义在软件构建过程中,集合对象内部结构常常变化各异,但对于这些集合对象,我们希望在不暴露其内部结构的同时,可以让外部客户代码透明地访问其中包含的元素;同时这种“透明遍历”也为同一种算法在多种集合对象上进行操作提供了可能。使用面向对象技术将这种遍历机制抽象为“迭代器对象”为“应对变化中的集合对象”提供了一种优雅的方式。迭代子(Iterator)模式又叫游标

  • 蓝鲸自动化运维平台

    蓝鲸自动化运维平台蓝鲸自动化运维平台1.蓝鲸简介官网:https://bk.tencent.com/docs/腾讯蓝鲸智云,简称蓝鲸,是腾讯互动娱乐事业群(InteractiveEntertainmentGroup,简称IEG)自研自用的一套用于构建企业研发运营一体化体系的PaaS开发框架,提供了aPaaS(DevOps流水线、运行环境托管、前后台框架)和iPaaS(持续集成、CMDB、作业平台、容器管理、数据平台、AI等原子平台)等模块,帮助企业技术人员快速构建基础运营PaaS。2.蓝鲸部署2

  • SMTP协议分析[通俗易懂]

    感谢原作者:http://blog.csdn.net/bripengandre/article/details/2191048SMTP协议分析第1章.    SMTP概述1.1. SMTP在邮件通信中的位置SMTP,即简单邮件传送协议,所对应RFC文档为RFC821。同http等多数应用层协议一样,它工作在C/S模式下,用来实现因特网上的邮件传送。SMTP在整个电子邮件通

  • RTP协议分析

    RTP协议分析整理记录版本时间内容整理人

  • Pytest(15)pytest分布式执行用例「建议收藏」

    Pytest(15)pytest分布式执行用例「建议收藏」前言平常我们功能测试用例非常多时,比如有1千条用例,假设每个用例执行需要1分钟,如果单个测试人员执行需要1000分钟才能跑完当项目非常紧急时,会需要协调多个测试资源来把任务分成两部分,于是执行时间

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号