基于RTP协议的浏览器通用视频插件的实现

基于RTP协议的浏览器通用视频插件的实现

蒋 勇,杜中军,鞠 飞

(四川大学计算机系,四川成都610065)

摘 要:提出了一种在L inux平台下实现浏览器通用视频插件的方法,此插件既能接收来自视频电话的RTP 流,也能接收来自流媒体的RTSP流;给出了不同流的实现原理,并具体阐述了浏览器插件技术在视频电话中的实现。此插件能解决当前嵌入式设备中要求多种视讯功能,但同时要求资源占用少的矛盾。

关键词:RTP;RT CP;浏览器;插件;视频

中图法分类号:TP31111 文献标识码:A 文章编号:100123695(2005)0420152203

I m p le mentati on of A ll2Pur pose V ideo Plug2in for B rowser Based on RTP Pr ot ocol

J I A NG Yong,DU Zhong2jun,JU Fei

(D ept.of Co m puter Science,S ichuan U niversity,Chengdu S ichuan610065,China)

Abstract:Pr oposes a method of an i m p lementati on of an all2pur pose video p lug2in f or br owser,which can take over not only RTP strea m fr om videophone but als o RTSP strea m fr om strea m media.D iscusses the p rinci p le of realizati on of different strea m,and surveys the technol ogy of p lug2in for br owser in videophone.This p lug2in is a good s oluti on for e mbedded device that require a multi p licate video functi onality and little res ource.

Key words:RTP;RT CP;B r owser;Plug2in;V ideo

1 引言

随着计算机技术、网络技术、视频压缩编码技术等关键技术的飞速发展,特别是宽带网络的迅速普及,网络视频传输系统以及其实时性和直观性得到了越来越多的重视。目前视频传输技术正迅速被应用于视频会议、视频点播、I P可视电话、I nternet远程教育等领域。同时,随着大量智能终端的兴起,浏览器技术得到了广泛的应用,基于W eb的应用在未来的智能终端中将会成为主流。考虑到当今的嵌入式系统处理能力不高及资源的限制,本文将探讨一种可以播放视频点播和可视电话的视频流的浏览器插件技术,此方法利用一般视频播放器强大的解码能力,将视频电话的视频流进行转换,从而在视频播放器中播放。这在一定程度上减轻了对系统的资源消耗,还解决了在微小系统中不同程序间的焦点问题。经过实践证明,将不同的视频流整合在一个播放器中,以浏览器插件的方式实现,在基于W eb的微小系统中可以取得良好的视讯效果。

2 R TP及R TC P协议的构成

RTP协议是用于I nternet上,针对多媒体数据流的一种实时传输协议,其目的是提供时间信息和基本的差错纠正信息,并能实现流的同步。RTP协议包头的格式组成如图1所示。其中,M域占用1bit,含义由使用者确定;Sequence Nu mber域代表发送的RTP包计数,占用16bits;Ti m estamp域占用32bits,它反映了RTP包中数据采样的间隔;PT域代表载荷类型,占用7bits;SSRC域占用32bits,标志了会议中不同于其余的信息源,由系统随机产生;CSRC域占用32bits,为负载识别作用源,在混合器中设定

图1 RTP协议包头的格式

RTCP是RTP协议的控制协议,用于拥塞控制和流控制,主要功能包括提供数据传送的质量反馈、建立标志、根据参与者数量决定控制包传输。RTCP协议定义RTCP包类型:源描述包(S DES)、发送者报告(SR)和接收者报告(RR)、BYE包和特殊应用的APP包。RTCP会话中的每个参与者都有一个全局唯一的标志符C NAME用于标志和跟踪每个参与者,进行流间同步以及计算参与者数目。在RT CP会话中,随时掌握与会者数目十分重要,所有与会者都必须使用该值来计算自己发RTCP帧的间隔,以保持RTCP数据流带宽恒定。在RTCP会话中,每个与会者都根据这个间隔周期发送RTCP控制报文。3 实现不同R TP流的应用模型

本文主要讨论的是视频客户端的实现,对视频的采集和发送不作阐述。本文将以分模块的方式对同一视频播放器中如何实现来源于视频电话和流媒体的视频流的应用模型进行阐述,其应用模型如图2所示。

?

2

5

1

?计算机应用研究2005年

收稿日期:2004204208;修返日期:2004205228

图2 视频流的应用模型

图2中RTSP 服务器和视频电话分别为不同的视频流的数据源。RTSP 服务器提供符合RFC 2326的标准媒体流,所能支持的媒体格式有R M ,MPEG 24,WMV,MP3;视频电话的媒体格式可以在能力集约束中进行调整。在RTSP 处理模块和电话RTP 处理模块接收到RTP 包后的一般处理步骤如下:

(1)分析RTP 包头,判断版本、负载类型等信息;

(2)更新Source 对象中的RTP 信息,包括收到的视频帧

数、包数、序列号等信息;

(3)进行信源同步,重构视频帧;

(4)根据负载类型进行解码,回放图像。同时,在处理模

块中的定时器触发下,将会周期性发送RTCP 报文,目的是同步协商和带宽调整;客户端在收到RTCP 控制报文后将会进行如RTP 类似的步骤,首先分析RT CP 包头,找出对应的RTP 源,然后根据收到的反馈信息采取相应的策略。

播放器采取的是预解码方式。在RTP 流到达前播放器应知道流的负载类型。对于RTSP 流,因协议的规定,在RTP 流到达以前客户端和服务器端有一个协商过程,服务器以Op 2

ti ons 方法通知视频播放器流的负载类型,过程参考RFC 2326,

此处将不再赘述。

对于视频电话,媒体的协商过程在H.323协议栈里完成,在RTP 流到达之前播放器不知道流的负载类型。这里采用的方式是修改协议栈的能力集,使H.323协议栈以一种固定媒体格式与对方尽力协商,协商成功后将RTP 流传给视频播放器,在播放器中以一种固定的解码器等待接收流。这种方式在实际中已经能够满足需求,此方案应用模型如图3所示。协商过程采用H.245协议,电话端首先设定客户端能力集Set Ca 2

pability (0,1,ne wH323_H263Capability (0,0,1,0,0,videoB i 2t Rate,videoFra mesPS ));然后进行双方能力交换、主从确定、单

向逻辑信道打开和双向逻辑信道打开;在视频媒体通道打开以后,电话端就开始发送和接收RTP 流。

图3 视频电话应用模型

在H.323协议中,音频和视频是以不同的RTP 流实现的,因此音频的处理和视频的采集、发送仍采用以前电话端的处理模块,只在电话端的RTP 分组接收处H323_RTPChannel::Re 2

ceive ()修改原有的对视频RTP 分组的处理,将接收到的视频RTP 分组经过帧重组后转发给视频播放器。RTP 包的组帧算

法采用大缓冲区法,即开辟一个足够大的缓冲区,将接收到的

RTP 分组按一定规则插入队列,然后从链表的首部开始根据时

间戳和包序号进行组帧或淘汰。经过此方法处理后的分组已经是有序分组,播放器中只用一个缓冲区处理接收来的数据包。播放器预指定H.263解码器,载荷类型(Payl oad Type )固定为34,时钟频率(Cl ock Rate )固定为90000(根据RFC 1890修订版)。电话RTP 流处理模块伪代码如下

:

4 浏览器视频插件的实现

随着PC 的普及,多媒体应用越来越广泛,但在L inux 下的多媒体功能却显得单调和缺乏灵活性。网络的兴起和浏览器技术的成熟,使基于W eb 的应用趋于主流,插件技术将在W eb 的多媒体应用中显得举足轻重。本文将就L inux 下的浏览器插件技术进行探讨,并将前面所讨论的视频播放器嵌入到网页里面实现。

不同于布局引擎Gecko 所广泛采用的组件对象模型XP 2

COM 那样的动态载入和对象注册机制,插件以原生码的动态

链接库形式存在。浏览器和插件之间的交流通过固定的应用程序接口(AP I ),分为两类和一个共享数据结构集:

(1)插件方函数。在插件中定义,由Gecko 调用,以“NPP _”为前缀。这里有两个特殊的接口类型NP_,为Gecko 直接访

问入口,在实例生成以前使用,下面将进行具体阐述。

(2)浏览器方函数。在Gecko 中定义,由插件方调用,以

“NP N_”为前缀。

(3)数据结构集。浏览器生成该数据结构,两方形式统

一,主要用于两方数据流的传递,以NP 为前缀。

浏览器启动时Gecho 会在Plug 2in 目录下搜索插件库,读出和注册每个插件所能处理的媒体类型(M I M E );当打开一个含有嵌入数据的网页时,浏览器会根据其中M I M E 搜索相应的插件,如果没有找到可用插件则使用独立的帮助程序(Hel p

App licati on ),提示是保存还是选择其他的应用程序处理。如

果找到插件,则将插件代码载入内存,初始化插件,然后创建一个插件实例。当插件最后一个实例被删除以后,插件的整个代码段被从内存中释放,体系结构如图4所示

图4 体系结构

?

351?第4期 蒋 勇等:基于RTP 协议的浏览器通用视频插件的实现 

(1)获取Plug2in描述信息和M I M E类型这两个过程是在Gecko启动时进行的,浏览器会根据提供的信息对插件进行注册。

(2)初始化资源。浏览器调入Plug2in代码时,调用接口NP_I nitialize,在这里分配内存和初始化以后各个实例将要使用的资源。初始化过程中,浏览器为Plug2in传递了两个函数指针表:NP NetscapeFuncs和NPPluginFuncs。第一个表列举了所有在Plug2in里调用的浏览器方的函数地址,这个表在初始化以前由浏览器填写;第二个表列举了所有Plug2in提供给浏览器调用的函数地址,在Plug2in的初始化过程中填写。在初始化以前所有的Plug2in函数调用都是非法的,因为函数的地址还没有传给浏览器。

(3)初始化实例。在初始化资源完成以后,浏览器调用NPP_New创建实例,NPP_Ne w会以指定的M I M E类型创建实例。在这里定义实例私有的数据。浏览器传递一个特定的结构NPP给Plug2in,代表实例本身,此结构体由浏览器创建,可以将实例私有的数据地址保存于此,在以后对同一Plug2in的函数调用时,浏览器将这些实例私有数据依次传下去。

(4)绘制窗口和消息循环。当窗体被创建、移动、改变大小或者销毁时,浏览器调用NPP_Set W indow处理。调用时,一个含有实例窗口大小、位置和特定系统信息的对象NP W indow 传给Plug2in,在Plug2in中根据这些信息绘制窗口。窗口类型分为两类:①有窗体Plug2in,浏览器为Plug2in创造一个Motif 窗口部件,并留出一块专用区域。此类Plug2in有自己的消息循环,可以接收所有来自窗口部件的消息。②无窗体Plug2in,没有专用区域并且所有消息都是通过浏览器接口NPP_Han2 dleEvent传递。

(5)销毁实例和释放资源。当退出网页、关闭窗口或退出浏览器时,调用NPP_Destr oy销毁实例。在这里释放所有初始化实例时所分配的资源。如果有必要也可以通过结构NPSave Data保存实例中的信息,在生成同一URL的新实例时浏览器将这些信息原样传入。在所有实例都销毁后,浏览器调用NP_Shutdown释放所有实例共享的资源。

以上阐述了L inux下浏览器插件的框架结构和标准接口,结合本文前面所讨论的视频播放器,在插件的NPP_Set W indow 中以管道调用的方式实现视频插件。在网页中的嵌入数据里M I M E类型指定为video/x2h263,URL指定为rt p://(端口号),浏览器会根据这些信息调用以上讨论的视频插件在指定端口接收视频流。

5 结束语

本文在阐明RTP/RTCP协议原理的基础上提出了如何实现在一个播放器中播放来自不同源的视频流,并探讨了在L inux下以浏览器插件的方式实现播放。此应用是在原媒体播放器和视频电话基础上进行的重大改进,而且结合插件技术,使L inux下的多媒体功能更加丰富灵活;在资源消耗上,此项改进利用了媒体播放器原有的强大的解码功能,使视频电话从中脱离出来,避免了对资源的重复占用。

参考文献:

[1]H Schulzrinne,S Casner,R Frederick.RTP:A Trans port Pr ot ocol for

Real2ti m e App licati ons[S].RFC1889,1996.

[2]H Schulzrinne.RTP,Pr ofile for Audi o and V ideo Conferences with

M ini m al Contr ol[S].RFC1890,1996.

[3]I T U Telecommunicati on.Standardizati on Sect or of I T U,V ideo Coding

f or Low B it Rate Communicati on[R].D raft I T U2T Recommendati on.

263Versi on2,1997.

[4]Netscape Communicati ons.Mozilla Plug2in AP I Guid[EB/OL].ht2

t p://https://www.360docs.net/doc/3d6382117.html,/library/manuals/2002/p lugin/1.0/,

2002205210.

[5]H Schulzrinne,R Lanphier.Real2ti m e Strea m ing Pr ot ocol[S].RFC

2326,1998.

[6]Equivalence Pty.L td.Open H.323L ibrary Reference[EB/OL].ht2

t p://https://www.360docs.net/doc/3d6382117.html,/docs/OpenH323/,2001210.

作者简介:

蒋勇,硕士研究生,研究方向为数据库与管理信息系统;杜中军,副教授,硕士生导师,研究方向为数据库与管理信息系统;鞠飞,硕士研究生,研究方向为计算机网络。

(上接第151页)设计分系统与仿真系统为例说明信息共享的过程:设计人员通过该平台查询设计系统向仿真系统申请的DT D定义,找到有共享需求的DT D;此后,通过平台提供的“文档另存为”功能由客户端从文件服务器上保存DT D和X ML文档,或者直接通过FTP下载该DT D和X ML文档。设计分系统获取DT D和X ML文档后,对文档解析,结合DT D从文档内提取所需要的数据,实现数据共享。提取信息的工作由设计分系统完成,DT D及X ML文档的编写在各应用系统明确其提供和需求信息后,由信息集成小组和用户合作编写。

4 结束语

基于X ML的信息集成为并行环境下各个分系统之间的信息传递和共享提供了有效的集成手段,它可以很好地解决企业各个分系统信息的分布性、自治性和异构性。通过信息集成平台,分系统之间的协同运行得到了实现。本文结合具体的工程背景,采用X ML进行信息建模,把统一数据访问平台作为信息集成平台,实现CAPE各个分系统的信息集成。

参考文献:

[1]谢金崇.支持并行工程的产品信息集成[D].北京:清华大学(博

士后出站报告),2001.12213.

[2]胡洁.多学科并行协同设计理论、方法与应用研究[D].北京:清

华大学(博士后出站报告),2003.829.

[3]X ML中国论坛.X ML实用进阶教程[M].北京:清华大学出版

社,2001.37238.

[4]CAPE项目初步设计报告[R].北京:清华大学自动化系C I M S中

心并行工程研究室,2002.45249.

作者简介:

刘科研(19782),男,河南郑州人,博士研究生,研究方向为分布式系统仿真、机电控制;万丽荣(19652),女,山东栖霞人,副教授,研究方向为并行工程、产品信息集成等;曾庆良(19652),男,教授,研究方向为CAD/CAM、并行工程、虚拟样机;范文慧(19662),男,副教授,研究方向为并行工程、P DM、产品信息建模。

?

4

5

1

?计算机应用研究2005年

RTP协议分析

RTP协议分析 第1章. RTP概述 1.1. RTP是什么 RTP全名是Real-time Transport Protocol(实时传输协议)。它是IETF提出的一个标准,对应的RFC文档为RFC3550(RFC1889为其过期版本)。RFC3550不仅定义了RTP,而且定义了配套的相关协议RTCP(Real-time Transport Control Protocol,即实时传输控制协议)。RTP用来为IP网上的语音、图像、传真等多种需要实时传输的多媒体数据提供端到端的实时传输服务。RTP为Internet上端到端的实时传输提供时间信息和流同步,但并不保证服务质量,服务质量由RTCP来提供。 1.2. RTP的应用环境 RTP用于在单播或多播网络中传送实时数据。它们典型的应用场合有如下几个。 简单的多播音频会议。语音通信通过一个多播地址和一对端口来实现。一个用于音频数据(RTP),另一个用于控制包(RTCP)。 音频和视频会议。如果在一次会议中同时使用了音频和视频会议,这两种媒体将分别在不同的RTP会话中传送,每一个会话使用不同的传输地址(IP地址+端口)。如果一个用户同时使用了两个会话,则每个会话对应的RTCP包都使用规范化名字CNAME(Canonical Name)。与会者可以根据RTCP包中的CNAME来获取相关联的音频和视频,然后根据RTCP 包中的计时信息(Network time protocol)来实现音频和视频的同步。 翻译器和混合器。翻译器和混合器都是RTP级的中继系统。翻译器用在通过IP多播不能直接到达的用户区,例如发送者和接收者之间存在防火墙。当与会者能接收的音频编码格式不一样,比如有一个与会者通过一条低速链路接入到高速会议,这时就要使用混合器。在进入音频数据格式需要变化的网络前,混合器将来自一个源或多个源的音频包进行重构,并把重构后的多个音频合并,采用另一种音频编码进行编码后,再转发这个新的RTP包。从一个混合器出来的所有数据包要用混合器作为它们的同步源(SSRC,见RTP的封装)来识别,可以通过贡献源列表(CSRC表,见RTP的封装)可以确认谈话者。 1.3. 相关概念 1.3.1. 流媒体 流媒体是指Internet上使用流式传输技术的连续时基媒体。当前在Internet上传输音频和视频等信息主要有两种方式:下载和流式传输两种方式。 下载情况下,用户需要先下载整个媒体文件到本地,然后才能播放媒体文件。在视频直播等应用场合,由于生成整个媒体文件要等直播结束,也就是用户至少要在直播结束后才能看到直播节目,所以用下载方式不能实现直播。 流式传输是实现流媒体的关键技术。使用流式传输可以边下载边观看流媒体节目。由于Internet是基于分组传输的,所以接收端收到的数据包往往有延迟和乱序(流式传输构建在UDP上)。要实现流式传输,就是要从降低延迟和恢复数据包时序入手。在发送端,为降低延迟,往往对传输数据进行预处理(降低质量和高效压缩)。在接收端为了恢复时序,采用了接收缓冲;而为了实现媒体的流畅播放,则采用了播放缓冲。

RTP协议全解(H264码流和PS流)-2015-4-22

RTP协议全解(H264码流和PS流) 写在前面:RTP的解析,网上找了很多资料,但是都不全,所以我力图整理出一个比较全面的解析, 其中借鉴了很多文章,我都列在了文章最后,在此表示感谢。 互联网的发展离不开大家的无私奉献,我决定从我做起,希望大家支持。 原创不易,转载请附上链接,谢谢https://www.360docs.net/doc/3d6382117.html,/chen495810242/article/details/39207305 1、RTP Header解析 图1 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的时候,网络状况不好的时候可以用来检查丢包。同时出现网络抖动的情况可以用来对数据进行重新排序,序列号的初始值是随机的,同时音频包和视频包的sequence是分别记数的。 8) 时戳(Timestamp):占32位,必须使用90 kHz 时钟频率。时戳反映了该RTP报文的第一个八位组的采样时刻。接收者使用时戳来计算延迟和延迟抖动,并进行同步控制。 9) 同步信源(SSRC)标识符:占32位,用于标识同步信源。该标识符是随机选择的,参加同一视频会议的两个同步信源不能有相同的SSRC。 10) 特约信源(CSRC)标识符:每个CSRC标识符占32位,可以有0~15个。每个CSRC标识了包含在该RTP报文有效载荷中的所有特约信源。 注:基本的RTP说明并不定义任何头扩展本身,如果遇到X=1,需要特殊处理 取一段码流如下: 80 e0 00 1e 00 00 d2 f0 00 00 00 0041 9b 6b 49 €?....??....A?kI e1 0f 26 53 02 1a ff06 59 97 1d d2 2e 8c 50 01 ?.&S....Y?.?.?P. cc 13 ec 52 77 4e e50e 7b fd 16 11 66 27 7c b4 ?.?RwN?.{?..f'|? f6 e1 29 d5 d6 a4 ef3e 12 d8 fd 6c 97 51 e7 e9 ??)????>.??l?Q?? cfc7 5e c8 a9 51 f6 82 65 d6 48 5a 86 b0 e0 8c ??^??Q??e?HZ???? 其中,

RTP-RTCP协议

Southwest university of science and technology 视频信息处理与传输 实验报告 报告名称RTP-RTCP协议 专业班级电子1002班 学生姓名 学号 指导教师

实验四RTP-RTCP协议 一、实验目的 1、了解实时传输协议RTP和实时传输控制协议RTCP的基本原理; 2、学习使用RTP数据报发送实时数据,并接收重组; 3、学会使用Wireshark进行抓包,并分析数据。 二、实验内容 1、RTP协议报文段的说明语句 RTP(Real-time Transport Protocol,实时传输协议)是一个网络传输协议。RTP报文由两部分组成:报头和有效载荷。RTP报头格式如图1所示,其中: 图1 RTP报头格式 V:RTP协议的版本号,占2位,当前协议版本号为2。 P:填充标志,占1位,如果P=1,则在该报文的尾部填充一个或多个额外的八位组,它们不是有效载荷的一部分。 X:扩展标志,占1位,如果X=1,则在RTP报头后跟有一个扩展报头。 CC:CSRC计数器,占4位,指示CSRC 标识符的个数。 M: 标记,占1位,不同的有效载荷有不同的含义,对于视频,标记一帧的结束;对于音频,标记会话的开始。 PT: 有效载荷类型,占7位,用于说明RTP报文中有效载荷的类型,如GSM 音频、JPEM图像等。 序列号:占16位,用于标识发送者所发送的RTP报文的序列号,每发送一个报文,序列号增1。接收者通过序列号来检测报文丢失情况,重新排序报文,恢复数据。 时戳(Timestamp):占32位,时戳反映了该RTP报文的第一个八位组的采样时刻。接收者使用时戳来计算延迟和延迟抖动,并进行同步控制。 同步信源(SSRC)标识符:占32位,用于标识同步信源。该标识符是随机选择的,参加同一视频会议的两个同步信源不能有相同的SSRC。 特约信源(CSRC)标识符:每个CSRC标识符占32位,可以有0~15个。每个CSRC标识了包含在该RTP报文有效载荷中的所有特约信源。 2、RTCP协议报文段的说明语句 RTCP(RTP Control Protocol,控制协议)——监控服务质量并传送正在进行的会话参与者的相关信息。RTCP包括五种数据包类型(RFC3550 Page69):

RTP RTCP协议简介

即時傳輸協議RTP(Realtime Transport Protocol):是針對Internet上多媒體資料 流程的一個傳輸協定, 由IETF(Internet工程任務組)作為RFC1889發佈。RTP被定義為在一對一或一對多的傳輸情況下工作,其目的是提供時間資訊和實現流同步。RTP的典型應用建立在UDP上,但也可以在TCP或ATM等其他協議之上工作。RTP本身只保證即時資料的傳輸,並不能為按順序傳送資料包提供可靠的傳送機制,也不提供流量控制或擁塞控制,它依靠RTCP提供這些服務。 即時傳輸控制協議RTCP(Realtime Transport Control Protocol):負責管理傳輸品 質在當前應用進程之間交換控制資訊。在RTP會話期間,各參與者週期性地傳送RTCP包,包中含有已發送的資料包的數量、丟失的資料包的數量等統計資料, 因此,伺服器可以利用這些資訊動態地改變傳輸速率,甚至改變有效載荷類型。RTP和RTCP配合使用,能以有效的回饋和最小的開銷使傳輸效率最佳化,故特 別適合傳送網上的即時資料。 RTCP主要有4個功能: (1)用回饋資訊的方法來提供分配資料的傳送品質,這種回饋可以用來進行流量的擁塞控制,也可以用來監視網路和用來診斷網路中的問題; (2)為RTP源提供一個永久性的CNAME(規範性名字)的傳送層標誌,因為在發現衝突或者程式更新重啟時SSRC(同步源標識)會變,需要一個運作痕跡,在一組相關的會話中接收方也要用CNAME來從一個指定的與會者得到相聯繫的資料流程(如音頻和視頻); (3)根據與會者的數量來調整RTCP包的發送率; (4)傳送會話控制資訊,如可在用戶介面顯示與會者的標識,這是可選功能。 4.2 RTP/RTCP工作過程 工作時,RTP協議從上層接收流媒體資訊碼流(如H.263),裝配成RTP資料包發送給下層,下層協定提供RTP和RTCP的分流。如在UDP中,RTP使用一個偶 數號埠,則相應的RTCP使用其後的奇數號埠。RTP資料包沒有長度限制,它的 最大包長只受下層協議的限制。 4.3 伺服器的演算法 伺服器軟體模型主要有兩種,即併發伺服器和迴圈伺服器。迴圈伺服器(Iterative

RTP协议介绍

3.1. RTP协议分析 3.1.1. RTP是什么 RTP全名是Real-time Transport Protocol(实时传输协议)。它是IETF提出的一个标准,对应的RFC文档为RFC3550(RFC1889为其过期版本)。RFC3550不仅定义了RTP,而且定义了配套的相关协议RTCP(Real-time Transport Control Protocol,即实时传输控制协议)。RTP用来为IP网上的语音、图像、传真等多种需要实时传输的多媒体数据提供端到端的实时传输服务。RTP为Internet上端到端的实时传输提供时间信息和流同步,但并不保证服务质量,服务质量由RTCP 来提供。 3.1.2. RTP的协议层次 ——传输层的子层 RTP被划分在传输层,它建立在UDP上。同UDP协议一样,为了实现其实时传输功能,RTP也有固定的封装形式。RTP用来为端到端的实时传输提供时间信息和流同步,但并不保证服务质量。服务质量由RTCP来提供。

3.1.3. RTP协议原理 RTP协议原理比较简单,负责对流媒体数据进行封包并实现媒体流的实时传输,即它按照RPT数据包格式来封装流媒体数据,并利用与它绑定的协议进行数据包的传输,具体见本文2.2.1RTP数据格式;RTP本身只保证实时数据的传输,并不能为按顺序传送数据包提供可靠的传送机制,也不提供流量控制或拥塞控制,它依靠RTCP提供这些服务。 3.1.3.1. RTP的封装 版本号(V):2比特,用来标志使用的RTP版本。 填充位(P):1比特,如果该位置位,则该RTP包的尾部就包含附加的填充字节。 扩展位(X):1比特,如果该位置位的话,RTP固定头部后面就跟有一个扩

RTP与RTCP协议

信令与协议分册目录 目录 第2章RTP与RTCP协议...................................................................................................... 2-1 2.1 概述................................................................................................................................... 2-1 2.2 RTP/RTCP协议应用.......................................................................................................... 2-1 2.3 报文格式和含义................................................................................................................. 2-2 2.3.1 RTP报头的格式 ...................................................................................................... 2-2 2.3.2 RTCP包格式........................................................................................................... 2-3 2.3.3 RTCP的主要功能.................................................................................................... 2-3 2.3.4 RTCP发送间隔 ....................................................................................................... 2-4

实时传输协议RTP

实时传输协议RTP 1.RTP协议: RTP( Real-time Transport Protocol)协议最初是在70年代为了尝试传输声音文件,把包分 成几部分用来传输语音,时间标志和队列号。经过一系列发展,RTP第一版本在 1991年8月由美国的一个实验室发布了。到本世纪1996年形成了标准的的版本。很多著名的公司如Netscape ,就宣称“Netscape LiveMedia”是基于RTP协议的。Microsoft 也宣称他们的“NetMeeting”也是支持RTP协议. RTP被定义为传输音频、视频、模拟数据等实时数据的传输协议。最初设计是为了数据传输的多播,但是它也用于单播的。与传统的注重的高可靠的数据传输的运输层协议相比,它更加侧重 的数据传输的实时性。此协议提供的服务包括时间载量标识、数据序列、时戳、传输控制等。RTP与辅助控制协议RTCP一起得到数据传输的一些相关的控制信息。 2.RTP协议的工作原理: 如上所说明的,影响多媒体数据传输的一个尖锐的问题就是不可预料数据到达时间。但是流媒体的传输是需要数据的适时的到达用以播放和回放。RTP协议就是提供了时间标签,序列号以及 其它的结构用于控制适时数据的流放。 在流的概念中‘时间标签’是最重要的信息。发送端依照即时的采样在数据包里隐蔽的设置了时间标签。在接受端收到数据包后,就依照时间标签按照正确的速率恢复成原始的适时的数据。不同的媒体格式调时属性是不一样的。但是RTP本身并不负责同步,RTP只是传输层协议,为了 简化了运输层处理,提高该层的效率。将部分运输层协议功能(比如流量控制)上移到应用层 完成。同步就是属于应用层协议完成的。它没有运输层协议的完整功能,不提供任何机制来保 证实时地传输数据,不支持资源预留,也不保证服务质量。RTP报文甚至不包括长度和报文边界的描述。同时RTP协议的数据报文和控制报文的使用相邻的不同端口,这样大大提高了协议的灵活性和处理的简单性。 RTP协议和UDP二者共同完成运输层协议功能。UDP协议只是传输数据包,是不管数据包传输的时间顺序。RTP的协议数据单元是用UDP分组来承载的。在承载RTP数据包的时候,有时候一帧数据被分割成几个包具有相同的时间标签,则可以知道时间标签并不是必须的。而UDP的多路复用让RTP协议利用支持显式的多点投递,可以满足多媒体会话的需求。 RTP协议虽然是传输层协议但是它没有作为OSI体系结构中单独的一层来实现。RTP协议通常根据一个具体的应用来提供服务, RTP只提供协议框架,开发者可以根据应用的具体要求对协议进行充分的扩展。目前,RTP的设计和研究主要是用来满足多用户的多媒体会议的需要,另外它也适用于连续数据的存储,交互式分布仿真和一些控制、测量的应用中。基于RTP的实验和商业产品也层出不穷。最常用的协议是RTMP(Real Time Messaging Protocol,实时消息传送协议),RTMP是Adobe Systems公司为Flash播放器和服务器之间音频、视频和数据传输开发的开放协议。还有RTSP,HLS等。 实时传输控制协议RTCP协议 1. RTCP协议: RTCP(Real-time Transpor、Control Protocol)是设计和RTP一起使用的进行流量控制和拥塞控制的服务控制协议。 2. RTCP协议如何工作: 当应用程序开始一个RTP会话时将使用两个端口:一个给RTP,一个给RTCP。RTP本身并不能为按顺序传送数据包提供可靠的传送机制,也不提供流量控制或拥塞控制,它依靠RTCP提供这些服务。在RTP的会话之间周期的发放一些RTCP包以用来传监听服务质量和交换会话用户信息等功能。RTCP包中含有已发送的数据包的数量、丢失的数据包的数量等统计资料。因此,服务器可以利 用这些信息动态地改变传输速率,甚至改变有效载荷类型。RTP和RTCP配合使用,它们能以有效的反馈和最小的开销使传输效率最佳化,因而特别适合传送网上的实时数据。根据用户间的数

(完整版)RTP协议分析

RTP协议分析 一.RTP协议背景 (2) 二.RTP协议原理及工作机制 (2) 2.1 RTP协议原理 (3) 2.1.1 RTP协议原理 (3) 2.1.2 RTCP协议原理 (3) 2.2 RTP数据包格式 (4) 2.2.1 RTP数据包格式 (4) 2.2.2 RTCP数据包格式 (6) 2.3 RTP工作机制 (9) 2.3.1 RTP工作机制 (9) 2.3.2 RTCP工作机制 (9) 三.RTP协议关键技术指标 (10) 3.1 时间戳 (10) 3.2时延 (10) 3.3 抖动 (11) 3.4丢包率 (11) 3.5 会话和流两级分用 (11) 3.6 多种流同步控制 (12) 四.RTP协议应用方案 (12) 4.1 RTP协议应用方案之单播 (12) 4.2 RTP协议应用方案之广播 (12) 4.3 RTP协议应用方案之组播 (13) 4.3.1 RTP协议组播方案总体概述 (13) 4.3.2 RTP协议组播方案服务器端实现 (14) 4.3. 3RTP协议组播方案客户端实现 (14) 4.3. 4RTP协议视频帧率和质量调整策略 (15) 五.RTP协议移植计划 (16) 六.RTP协议安全方面考虑 (16)

一.RTP协议背景 流(Streaming)是近年在Internet上出现的新概念,其定义非常广泛,主要是指通过网络传输多媒体数据的技术总称。流媒体包含广义和狭义两种内涵:广义上的流媒体指的是使音频和视频形成稳定和连续的传输流和回放流的一系列技术、方法和协议的总称,即流媒体技术;狭义上的流媒体是相对于传统的下载-回放方式而言的,指的是一种从Internet上获取音频和视频等多媒体数据的新方法,它能够支持多媒体数据流的实时传输和实时播放。通过运用流媒体技术,服务器能够向客户机发送稳定和连续的多媒体数据流,客户机在接收数据的同时以一个稳定的速率回放,而不用等数据全部下载完之后再进行回放。 流式传输有顺序流式传输(Progressive Streaming)和实时流式传输(Realtime Streaming)两种方式。实时流式传输是实时传送,特别适合现场事件,实时流式传输必须匹配连接带宽,这意味着图像质量会因网络速度降低而变差,以减少对传输带宽的需求。“实时”的概念是指在一个应用中数据的交付必须与数据的产生保持精确的时间关系,这需要相应的协议支持,这样RTP和RTCP就相应的出现了。 实时传输协议RTP(Realtime Transport Protocol):是针对Internet上多媒体数据流的一个传输协议, 由IETF作为RFC1889发布,现在最新的为RFC3550。RTP被定义为在一对一或一对多的传输情况下工作,其目的是提供时间信息和实现流同步。RTP的典型应用建立在UDP上,但也可以在TCP等其他协议之上工作。RTP本身只保证实时数据的传输,并不能为按顺序传送数据包提供可靠的传送机制,也不提供流量控制或拥塞控制,它依靠RTCP提供这些服务。 实时传输控制协议RTCP(Realtime Transport Control Protocol):负责管理传输质量,在当前应用进程之间交换控制信息,提供流量控制和拥塞控制服务。在RTP会话期间,各参与者周期性地传送RTCP包,包中含有已发送的数据包的数量、丢失的数据包的数量等统计资料,因此,服务器可以利用这些信息动态地改变传输速率,甚至改变有效载荷类型。RTP 和RTCP配合使用,能以有效的反馈和最小的开销使传输效率最佳化,故特别适合传送网上的实时数据。 二.RTP协议原理及工作机制 让我们先看一下RTP和RTCP在网络层次中的位置,以便我们更加清楚的了解该协议,如下图1-1所示:

RTP协议中文版

RFC3550 RTP:实时应用程序传输协议 摘要 本文描述RTP(real-time transport protocol),实时传输协议。RTP在多点传送(多播)或单点传送(单播)的网络服务上,提供端对端的网络传输功能,适合应用程序传输实时数据,如:音频,视频或者仿真数据。RTP没有为实时服务提供资源预留的功能,也不能保证QoS(服务质量)。数据传输功能由一个控制协议(RTCP)来扩展,通过扩展,可以用一种方式对数据传输进行监测控制,该协议(RTCP)可以升级到大型的多点传送(多播)网络,并提供最小限度的控制和鉴别功能。RTP和RTCP被设计成和下面的传输层和网络层无关。协议支持RTP标准的转换器和混合器的使用。 本文的大多数内容和旧版的RFC1889相同。在线路里传输的数据包格式没有改变,唯一的改变是使用协议的规则和控制算法。为了最小化传输,发送RTCP数据包时超过了设定的速率,而在这时,很多的参与者同时加入了一个会话,在这样的情况下,一个新加入到(用于计算的可升级的)计时器算法中的元素是最大的改变。 目录(Table of Contents) 1. 引言(Introduction) 1 1 术语(Terminology) 2 RTP使用场景(RTP Use Scenarios) 2 1 简单多播音频会议(Simple Multicast Audio Conference) 2 2 音频和视频会议(Audio and Video Conference) 2 3 混频器和转换器(Mixers and Translators) 2 4 分层编码(Layered Encodings) 3 定义(Definitions) 4 字节序,校正和时间格式(Byte Order, Alignment, and Time Format) 5 RTP数据传输协议(RTP Data Transfer Protocol) 5 1 RTP固定头域(RTP Fixed Header Fields) 5 2 多路复用RTP会话(Multiplexing RTP Sessions) 5 3 RTP头的配置文件详细变更(Profile-Specific Modifications to the RTP Header) 5 3 1 RTP报头扩展(RTP Header Extension) 6 RTP控制协议(RTP Control Protocol)-- RTCP 6 1 RTCP包格式(RTCP Packet Format) 6 2 RTCP传输间隔(RTCP Transmission Interval) 6 2 1 维护会话成员数目(Maintaining the number of session members) 6 3 RTCP包的发送与接收规则(RTCP Packet Send and Receive Rules) 6 3 1 计算RTCP传输间隔(Computing the RTCP Transmission Interval) 6 3 2 初始化(Initialization) 6 3 3 接收RTP或RTCP(非BYE)包(Receiving an RTP or Non-BYE RTCP Packet) 6 3 4 接收RTCP(BYE)包(Receiving an RTCP BYE Packet) 6 3 5 SSRC计时失效(Timing Out an SSRC)

RTSPRTP 媒体传输和控制协议

RTSPRTP 媒体传输和控制协议 1 前言 本文档主要描述了NewStream Vision 系统中前端视频服务器(DVR, 网络摄像机), 中心转发服务器以及客户端之间的多媒体通信以及控制协议. 本协议主要基于标准的IETE 的RTSP/RTP 以及相关协议, 并针对具体应用定义了部分扩展. 本协议只是当前实现的总结和整理, 具体的协议细节以实际实现为准 2 定义 RTSP实现流协议SDP会话描述协议RTP实时传输协议 H.264H.264 视频编码标准 3 RTSP 命令 3.1 Request 语法 语法: RTSP 的语法和HTTP 的语法基本相同, 具体如下。COMMAND rtsp_URL RTSP/1.0<CRLF> Headerfield1: val1<CRLF> Headerfield2: val2<CRLF> ... <CRLF>

[Body] RTSP 消息行之间用回车换行(CRLF) 分隔. 一个空行表示消息头部分的结束。 3.1.1 RTSP 方法 COMMAND 表示RTSP 命令名称, 是DESCRIBE, SETUP, OPTIONS, PLAY, PAUSE, TEARDOWN 或 SET_PARAMETER 等的任意一个. 3.1.2 RTSP URL 完整语法如下: rtsp_URL = ( "rtsp:" | "rtspu:" ) "//" host [ ":" port ] [ abs_path ] host = (A legal Internet host domain name of IP address (in dotted decimal form), as defined by Section 2.1 of RFC 1123 \cite{rfc1123}) port = *DIGIT 如: rtsp://<servername>/live.mp4[?<param>=<valu e>[&<param>=<value>...]]

基于RTP协议的打包及解包

H.264视频在android手机端的解码与播放 文/南京邮电大学张永芹龚建荣摘要:本文实现了手机终端通过移动无线网络与媒体服务器进行通信,并就开发过程中的几个技术难点的解决方法进行了说明。首先详细分析说明了rtp 打包,解包的流程,这是视频传输的基础;然后在RTP传输过程中,针对发送数据快而处理速度慢的问题,采用多线程并发机制予以解决;面对大量,而且不稳定的数据包,本文针对各个环节自己的特点,设计了多级缓冲处理机制,使得视频播放更加流畅、平稳。接着,对于分析和解码的先后次序的问题,则采用线程协作的思想,利用消费者,生产者模式,保证了视频数据的时序性。最后对于视频解码部分,则利用现有解码方法进行平台移植,深度简化代码,合理处理c 层和java层的分工。最后实践证明,采用本文提供的方法,视频传输、播放成功,而且android手机端视频播放延时短,流畅,平稳。 关键词:H.264 RTP 多级缓冲线程协作 android 随着无线网络和智能手机的发展,智能手机与人们日常生活联系越来越紧密,娱乐、商务应用、金融应用、交通出行各种功能的软件大批涌现,使得人们的生活丰富多彩、快捷便利,也让它成为人们生活中不可取代的一部分。其中,多媒体由于其直观性和实时性,应用范围越来越广,视频的解码与播放也就成为研究的热点。 H.264标准技术日渐成熟,采用了统一的VLC符号编码,高精度、多模式的位移估计,基于4×4块的整数变换、分层的编码语法等。这些措施使得H.264算法具有很高的编码效率,在相同的重建图像质量下,能够比H.263节约50%左右的码率。而且H.264的码流结构网络适应性强,增加了差错恢复能力。正好适用于带宽受限,差错率高的无线网络。 本文结合ffmpeg开源代码中的解码方法,采用多线程接收数据包,多级缓冲数据,接收和解码并行双线程操作等方法,缓解了由于传输的数据量大、速度快而导致的数据堵塞、解码出错、视频画面迟钝、延迟等问题。使得h.264视频的传输速度快,稳定性好。最终实现了pc端到android手机端的视频传输,以及在android手机端的解码播放。 该技术可以应用于视频会议、视频监控等应用中。 一、 H.264视频传输播放系统的总体结构 H.264视频传输播放系统分为服务器端和客户端2个部分,服务器端负责读取H.264的视频数据,并且以RTP/RTCP格式打包发送给客户端,并且接受客户端的反馈,对传输速度等作相应的控制。Android手机客户端主要完成从服务器端接收实时码流数据,经过缓冲,进行视频数据解析,然后送去解码,最后在手机上显示播放。服务器端采用c语言实现,客户端主要用java语言实现。 二、关键技术及其实现 1.基于RTP协议的打包及解包 (1)单个NAL打包 H.264NALU单元常由[start code][NALU header][NALU payload]三部分组成,其中start code 用于标志一个NALU单元的开始,必须是“00000001”或者是“000001”,打包时去掉开始码,把其他数据打包到RTP包就可以了。(2)分片打包 由于1500个字节是IP数据报的长度的上限,去除20个字节的数据报首部,1480字节是用来存放UDP数据报的。所以当一帧中的字节数超过这个数值时,

VC+6+RTP流媒体传输协议编程实例(jrtplib)

资源下载: https://www.360docs.net/doc/3d6382117.html,/source/444512 实时流协议RTSP(RealTimeStreamingProtocol)是由RealNetworks和Netscape共同提出的,该协议定义了一对多应用程序如何有效地通过IP网络传送多媒体数据。RTSP在体系结构上位于RTP(实时传输)和RTCP(实时控制)之上,它使用TCP或RTP完成数据传输。HTTP与RTSP相比,HTTP传送HTML,而RTP传送的是多媒体数据。HTTP请求由客户机发出,服务器作出响应;使用RTSP时,客户机和服务器都可以发出请求,即RTSP可以是双向的。 实时流协议(RTSP)是应用级协议,控制实时数据的发送。RTSP提供了一个可扩展框架,使实时数据,如音频与视频,的受控、点播成为可能。 RTSP是应用级的协议,完成多媒体服务器的远程控制,控制信息的传输可以使用TCP,控制指令包括如:Setup、Play、Record、Pause、Teardwon等等。 对于流媒体应用,用户和服务器都可以发出请求,请求包括几种连接方法:持久、每个请求/响应传输一个连接、无连接。 常见的URL流媒体地址如: rtsp://https://www.360docs.net/doc/3d6382117.html,:554 RTP 数据报组成:Header + Payload RTCP:应用程序启动RTP会话时将同时占用两个端口,供RTP和RTCP使用。 如果有必要,RTP使用时可以有两个伴随文档:1)配置文档,定义负载的编码类型和格式。2)负载格式的规范文档。 在流传输过程中,有两类服务完成对流的转发处理: 1)译流服务器Translator,进入的流在流出时发生变化,作用之一是更好地穿越防火墙。 2)混流服务器Mixer,多个流进入,合并后变成一个流流出。 由于进入的流可能有多个源,比如视频会议,会有多个话筒和视频头等等情况,对于RTP来说,就有一个同步化源的问题,因此,RTP协议中用SSRC(Synchronization Source)字段来供Mixer实现同步功能。 Translator的一个作用是多播变成多个单播。 为了提供播放和回放功能,RTP提供时间标签+序列号,在流动的概念中,时间标签是最重要的信息。 RTP报文不提供长度和报文边界的描述。 RTP虽然是传输层协议,但没有在OSI体系中作为单独的层来使用。 RTP是目前解决流媒体实时传输问题的最好办法,如果要开发,可以选择JRTPLIB库。JRTPLIB是一个面向对象的RTP库,它完全遵循RFC 1889设计。JRTPLIB是一个用C++语言实现的RTP库,目前已经可以运行在Windows、Linux、FreeBSD、Solaris、Unix和VxWorks等多种操作系统上。 了解更多RTP参考: https://www.360docs.net/doc/3d6382117.html,/zouzheng/archive/2008/01/04/38449.html 下面的例子参考jrtplib的example1,加了解析负载的部分。 // RTPClient.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include "rtpsession.h"

RTC协议和RTCP协议3

16.6.1 RTP简介 RTP是一种提供端对端传输服务的实时传输协议,用来支持在单目标广播和多目标广播网络服务中传输实时数据,而实时数据的传输则由RTCP协议来监视和控制。 RTP定义在RFC 使用RTP协议的应用程序运行在RTP之上,而执行RTP的程序运行在UDP的上层,目的是为了使用UDP的端口号和检查和。如图16-12所示,RTP可以看成是传输层的子层。由多媒体应用程序生成的声音和电视数据块被封装在RTP信息包中,每个RTP信息包被封装在UDP消息段中,然后再封装在IP数据包中。 1889中。信息包的结构包含广泛用于多媒体的若干个域,包括声音点播(audio-on-demand)、影视点播(video on demand)、因特网电话(Internet telephony)和电视会议(videoconferencing)。RTP的规格没有对声音和电视的压缩格式制定标准,它可以被用来传输普通格式的文件。例如,WAV或者GSM(Global System for Mobile communications)格式的声音、MPEG-1和MPEG-2的电视,也可以用来传输专有格式存储的声音和电视文件。 TCP/IP模型 应用层(application) 传输层 RTP UDP IP 数据链路层(data link) 物理层(physical) 图16-12 RTP是传输层上的协议 从应用开发人员的角度来看,可把RTP执行程序看成是应用程序的一部分,因为开发人员必需把RTP集成到应用程序中。在发送端,开发人员必需把执行RTP协议的程序写入到创建RTP 信息包的应用程序中,然后应用程序把RTP信息包发送到UDP的套接接口(socket interface),如图16-13所示;同样,在接收端,RTP信息包通过UDP套接接口输入到应用程序,因此开发人员必需把执行RTP协议的程序写入到从RTP信息包中抽出媒体数据的应用程序。 TCP/IP模型 应用层(application) RTP 套接接口 UDP

(完整word版)RTP与RTCP协议

HUAWEI MSOFTX3000 移动软交换中心技术手册 信令与协议分册目录 目录 第2章RTP与RTCP协议...................................................................................................... 2-1 2.1 概述................................................................................................................................... 2-1 2.2 RTP/RTCP协议应用.......................................................................................................... 2-1 2.3 报文格式和含义................................................................................................................. 2-2 2.3.1 RTP报头的格式 ...................................................................................................... 2-2 2.3.2 RTCP包格式........................................................................................................... 2-3 2.3.3 RTCP的主要功能.................................................................................................... 2-3 2.3.4 RTCP发送间隔 ....................................................................................................... 2-4 i

视频编解码和流媒体协议

RTP 参考文档 RFC3550/RFC3551 Real-time Transport Protocol)是用于Internet上针对多媒体数据流的一种传输层协议。RTP协议详细说明了在互联网上传递音频和视频的标准数据包格式。RTP协议常用于流媒体系统(配合RTCP协议),视频会议和一键通(Push to Talk)系统(配合H.323或SIP),使它成为IP电话产业的技术基础。RTP协议和RTP控制协议RTCP一起使用,而且它是建立在UDP协议上的。 RTP 本身并没有提供按时发送机制或其它服务质量(QoS)保证,它依赖于低层服务去实现这一过程。 RTP 并不保证传送或防止无序传送,也不确定底层网络的可靠性。 RTP 实行有序传送, RTP 中的序列号允许接收方重组发送方的包序列,同时序列号也能用于决定适当的包位置,例如:在视频解码中,就不需要顺序解码。 RTP 由两个紧密链接部分组成: RTP ―传送具有实时属性的数据;RTP 控制协议(RTCP)―监控服务质量并传送正在进行的会话参与者的相关信息。 RTCP 实时传输控制协议(Real-time Transport Control Protocol或RTP Control Protocol或简写RTCP)是实时传输协议(RTP)的一个姐妹协议。RTCP为RTP媒体流提供信道外(out-of-band)控制。RTCP本身并不传输数据,但和RTP一起协作将多媒体数据打包和发送。RTCP定期在流多媒体会话参加者之间传输控制数据。RTCP的主要功能是为RTP 所提供的服务质量(Quality of Service)提供反馈。 RTCP收集相关媒体连接的统计信息,例如:传输字节数,传输分组数,丢失分组数,jitter,单向和双向网络延迟等等。网络应用程序可以利用RTCP所提供的信息试图提高服务质量,比如限制信息流量或改用压缩比较小的编解码器。RTCP本身不提供数据加密或身份认证。SRTCP可以用于此类用途。 SRTP & SRTCP 参考文档 RFC3711 安全实时传输协议(Secure Real-time Transport Protocol或SRTP)是在实时传输协议(Real-time Transport Protocol或RTP)基础上所定义的一个协议,旨在为单播和多播应用程序中的实时传输协议的数据提供加密、消息认证、完整性保证和重放保护。它是由David Oran(思科)和Rolf Blom(爱立信)开发的,并最早由IETF于2004年3 月作为RFC3711发布。

RTP详细协议分析

RTP协议分析 计算机网络 2009-09-11 19:37:17 阅读1807 评论0字号:大中小订阅一.RTP协议背景 二.RTP协议原理及工作机制 2.1 RTP协议原理 2.1.1 RTP协议原理 2.1.2 RTCP协议原理 2.2 RTP数据包格式 2.2.1 RTP数据包格式 2.2.2 RTCP数据包格式 2.3 RTP工作机制 2.3.1 RTP工作机制 2.3.2 RTCP工作机制 三.RTP协议关键技术指标 3.1 时间戳 3.2时延 3.3 抖动 3.4丢包率 3.5 会话和流两级分用 3.6 多种流同步控制 四.RTP协议应用方案 4.1 RTP协议应用方案之单播 4.2 RTP协议应用方案之广播 4.3 RTP协议应用方案之组播 4.3.1 RTP协议组播方案总体概述 4.3.2 RTP协议组播方案服务器端实现 4.3. 3RTP协议组播方案客户端实现

4.3. 4RTP协议视频帧率和质量调整策略 五.RTP协议移植计划 六.RTP协议安全方面考虑 一.RTP协议背景 流(Streaming)是近年在Internet上出现的新概念,其定义非常广泛,主要是指通过网络传输多媒体数据的技术总称。流媒体包含广义和狭义两种内涵:广义上的流媒体指的是使音频和视频形成稳定和连续的传输流和回放流的一系列技术、方法和协议的总称,即流媒体技术;狭义上的流媒体是相对于传统的下载-回放方式而言的,指的是一种从Internet上获取音频和视频等多媒体数据的新方法,它能够支持多媒体数据流的实时传输和实时播放。通过运用流媒体技术,服务器能够向客户机发送稳定和连续的多媒体数据流,客户机在接收数据的同时以一个稳定的速率回放,而不用等数据全部下载完之后再进行回放。 流式传输有顺序流式传输(Progressive Streaming)和实时流式传输(Realtime Streaming) 两种方式。实时流式传输是实时传送,特别适合现场事件,实时流式传输必须匹配连接带宽,这意味着图像质量会因网络速度降低而变差,以减少对传输带宽的需求。“实时”的概念是指在一个应用中数据的交付必须与数据的产生保持精确的时间关系,这需要相应的协议支持,这样RTP和RTCP就相应的出现了。 实时传输协议RTP(Realtime Transport Protocol):是针对Internet上多媒体数据流的一个传输协议, 由IETF作为RFC1889发布,现在最新的为RFC3550。RTP被定义为在一对一或一对多的传输情况下工作,其目的是提供时间信息和实现流同步。RTP的典型应用建立在UDP上,但也可以在TCP等其他协议之上工作。RTP本身只保证实时数据的传输,并不能为按顺序传送数据包提供可靠的传送机制,也不提供流量控制或拥塞控制,它依靠RTCP提供这些服务。 实时传输控制协议RTCP(Realtime Transport Control Protocol):负责管理传输质量, 在当前应用进程之间交换控制信息,提供流量控制和拥塞控制服务。在RTP会话期间,各参与者周期性地传送RTCP包,包中含有已发送的数据包的数量、丢失的数据包的数量等统计资料,因此,服务器可以利用这些信息动态地改变传输速率,甚至改变有效载荷类型。RTP 和RTCP配合使用,能以有效的反馈和最小的开销使传输效率最佳化,故特别适合传送网上的实时数据。 二.RTP协议原理及工作机制 让我们先看一下RTP和RTCP在网络层次中的位置,以便我们更加清楚的了解该协议,如下图1-1所示: 图1-1 RTP&RTCP网络层次关系图 下面我们就从RTP以及RTCP的协议原理,数据包格式,工作机制三个方面来对该协议做一个基本的认识和了解:

相关主题
相关文档
最新文档