当前位置:文档之家› RTP协议及编解码

RTP协议及编解码


标识(M) 载荷类型(PT)
RTP头域(2-2)
名称 说明
系列号
16位,系列号随每个RTP数据包而增加1,由接 收者用来探测包损失,系列号初值是随机的, 使对加密的文本攻击更难 32位,时标反映RTP数据包中第一个八进制数的 采样时刻,采样时刻必须从单调、线性增加的 时钟导出,以允许同步与抖动计算 32位,标识同步源,此标识不是随机选择的, 目的在于使同一RTP包连接中没有两个同步源有 相同的SSRC标识 0到15项,每项32位。CSRC列表表示包内的对载 荷起作用的源。标识数量由CC段给出。如超出 15个作用源,也仅标识15个
实时流传输
实时流式传输保证媒体信号带宽能够与当前网络状 况相匹配,从而使得流媒体数据总是被实时地传 送,因此特别适合于现场事件。实时流传输支持随 机访问,即用户可以通过快进或者后退操作来观看 前面或者后面的内容。从理论上讲,实时流媒体一 经播放就不会停顿,但事实上仍有可能发生周期性 的暂停现象,尤其是在网络状况恶化时更是如此。 与顺序流传输不同的是,实时流传输需要用到特定 的流媒体服务器,而且还需要特定网络协议的支持。
USER_LOGIN_REQ USER_LOGIN_RES
USER_PRIVATE_TEXT USER_BROAD_TEXT USER_LOGOFF SRV_USER_LIST SRV_BROAD_TEXT SRV_PRIVAT_TEXT SRV_BROAD_USR_LOGIN SRV_BROAD_USR_LOGOFF
G729编解码
编码初始化 va_g729a_init_encoder(); 编码函数 va_g729a_encoder(short *,(unsigned char*) 解码初始化 va_g729a_init_decoder() 解码函数 va_g729a_decoder(unsigned char *, short *, int)
RTP协议
RTP是一种提供端对端传输服务的实时传输协 议,用来支持在单目标广播和多目标广播网络 服务中传输实时数据
RTP是传输层上的协议
RTP可以看成是传输 层的子层。由多媒体 应用程序生成的声音 和电视数据块被封装 在RTP信息包中,每 个RTP信息包被封装 在UDP消息段中,然 后再封装在IP数据包 中

流(Streaming)是近年在Internet上出现的新概 念,其定义非常广泛,主要是指通过网络传输多媒 体数据的技术总称。流媒体包含广义和狭义两种内 涵:广义上的流媒体指的是使音频和视频形成稳定 和连续的传输流和回放流的一系列技术、方法和协 议的总称,即流媒体技术;狭义上的流媒体是相对 于传统的下载-回放方式而言的,指的是一种从 Internet上获取音频和视频等多媒体数据的新方 法,它能够支持多媒体数据流的实时传输和实时播 放。
流媒体传输实现
实现流媒体传输主要有两种方法: 顺序流(progressive streaming)传输 实时流(realtime streaming)传输
顺序流传输
顺序流传输采用顺序下载的方式进行传输,在下载 的同时用户可以在线回放多媒体数据,但给定时刻 只能观看已经下载的部分,不能跳到尚未下载的部 分,也不能在传输期间根据网络状况对下载速度进 行调整。由于标准的HTTP服务器就可以发送这种形 式的流媒体,而不需要其他特殊协议的支持,因此 也常常被称作 HTTP流式传输。顺序流式传输比较 适合于高质量的多媒体片段,如片头、片尾或者广 告等。
应用层 RTP UDP IP 数据链路层 物理层
RTP和UDP之间的接口
从应用开发人员的角度来看,可把RTP执行程序看 成是应用程序的一部分,因为开发人员必需把 RTP 集成到应用程序中。 在发送端,开发人员必需把执行RTP协议的程序写 入到创建RTP信息包的应用程序中,然后应用程序 把RTP信息包发送到UDP的套接接口
USER_LOGIN_REQ USER_LOGIN_RES USER_PRIVATE_TEXT USER_BROAD_TEXT USER_LOGOFF SRV_USER_LIST SRV_PRIVAT_TEXT SRV_BROAD_TEXT SRV_BROAD_USR_LOGIN
SRV_BROAD_USR_LOGO FF
负载类型
标明RTP负载的格式,包括所采用的编码算法、采 样频率、承载通道等。例如,类型2表明该RTP数据 包中承载的是用ITU G.721算法编码的语音数据,采 样频率为8000Hz,并且采用单声道
序列号
用来为接收方提供探测数据丢失的方法,但如何处 理丢失的数据则是应用程序自己的事情,RTP协议 本身并不负责数据的重传。
时标
SSRC
CSRC列表
CSRC记数(CC)
表示CSRC标识的数目。CSRC标识紧跟在RTP固 定头部之后,用来表示RTP数据报的来源,RTP协 议允许在同一个会话中存在多个数据源,它们可以 通过RTP混合器合并为一个数据源。例如,可以产 生一个CSRC列表来表示一个电话会议,该会议通 过一个 RTP混合器将所有讲话者的语音数据组合为 一个RTP数据源。
编解码及RTP协议
回顾
SIP协议概述 SIP消息 OSIP库的使用
本章目标
音频编解码 RTP协议概述 对RTP协议进行封装
流媒体简介
随着Internet 的日益普及,在网络上传输的数据已 经不再局限于文字和图形,而是逐渐向声音和视频 等多媒体格式过渡。目前在网络上传输音频/视频 (Audio/Video,简称A/V)等多媒体文件时,基本 上只有下载和流式传输两种选择。
用户私聊消息流程
用户A
服务器端 USER_PRIVATE_TEXT
用户B
SRV_PRIVAT_TEXT
用户公聊消息流程
用户A USER_BROAD_TEXT
服务器端
用户B..C...Z
SRV_BROAD_TEXT
用户下线消息流程
用户A USER_LOGOFF
服务器端
用户B..C...Z
SRV_BROAD_LOGOFF
sequence number
RTP头域(2-1)
名称 说明
版本(v) 填充标识(P) 扩展(X) CSRC计数(CC)
2位,标识RTP版本 1位,如设置填充位,在包尾将包含附加填充字, 它不属于有效载荷 1位,如设置扩展位,固定头后跟一个扩展头 4位,CSRC计数包括紧接在固定头后CSRC标识符 个数 1位,标识解释由设置定义,目的在于允许重要 事件在包流中标识出来, 7位,记录后面资料使用哪种codec,接收端找 出相应的decoder解码出来
多方聊天室服务器端模块
数据 接收 线程
消息 解包 模块
消息 处理 模块
用户 管理 模块
网络接口层
多方聊天室客户端模块划分
UI层
系统 消息 队列
用户 管理 模块
数据 接收 线程
消息 解包 模块
消息 处理 模块
网络接口层
用户登录消息流程
用户端A 服务器端 用户端B
USER_LOGIN_REQ USER_LOGIN_RES SRV_USER_LIST SRV_BROAD_USR_LOGIN
时间戳
记录了负载中第一个字节的采样时间,接收方根据 时间戳能够确定数据的到达是否受到了延迟抖动的 影响,但具体如何来补偿延迟抖动则是应用程序自 己的事情。
音频编解码类型
G7231编解码 G729编解码
G7231编解码用法
编码初始化 Init_Coder() • 编码函数 Coder(short*, char *) 解码初始化 Init_Decod() 解码函数 Decod(short*, char *, short)
服务器端广播某个用户离线
多方聊天室协议具体描述
名称 协议描述 用户名称:16 字节 登录结果:1字节 0x00: 表示登录成功 0x01: 登录失败 私聊对象用户名: 16字节 私聊内容: 1024字节以下 发言内容: 1024字节以下 用户名称: 16字节 成员个数: 4字节 成员名称:16字节(有多少个成员,就有多少个该单元) 文本内容:1024字节以下 发起方用户名: 16字节 文本内容: 1024字节以下 用户名:16字节 用户名:16字节
网际通信的前提
A机
• 通信双方 • 双方约定即协议 B机
通 信 一 方
协议
通 信 一 方
协议
为进行网络中的数据交换(通信) 而建立的规则、标准或约定。 (=语义+语法+规则)
通信中常见的协议
• • • • • • • • IP协议/ICMP协议 TCP/UDP协议 FTP协议 SMTP/POP3协议 HTTP协议 Telnet协议 ARP协议 …
流媒体传输协议
实时传输协议RTP和TRCP:RTP是用于 Internet/Intranet针对多媒体数据流的一种 传输协议。RTP被定义为在一对一或一对多传 输的情况下工作,其目的是提供时间信息和实 现流同步。RTP通常使用UDP来传送数据,但 RTP也可以在TCP或ATM等其他协议上工作。 整个RTP协议由两个密切相关的部分组成:RTP 数据协议和RTP控制协议
多方聊天室服务器端类图
CSrvLi人聊天室客户端类图
CUsrRecvThd
CMsgTranslate
CUsrManager
总结 音频编解码 RTP协议概述 对RTP协议进行封装
RTP头
0 V=2 P X CC M 1 PT timestamp synchronization source (SSRC) identifier contributing source (CSRC) identifier „„„„„„ payload(audio video) „„„„„„„ 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
相关主题