1、本 科 毕 业 论 文基于 RTP/RTCP协议的实时视频传输实现与应用Implementation and Application of Real-time Video TransmissionBased on RTP / RTCP protocols姓 名: 学 号:学 院:软件学院系:软件工程专 业:软件工程年 级: 校内指导教师: 年 月I摘 要随着网络发展,视频越来越受到人们青睐,网络通讯,娱乐,视频监视等等。人们已不再满足由电话、电视、传真和电子邮件等单一媒体提供的传统语音和文字通信,而是需要数据、图形、图像、音频和视频等多种媒体信息以超越时空限制的集中方式作为一个整体呈现在人们眼
2、前。视频技术的发展速度已经远远超出了人们的预料,它在未来人们的生活工作都将起到无可替代的位置。本文旨在学习了解视频传输的原理及其过程,并开发一个能够传输视频的系统。视频传输是个怎样的过程,视频传输用到了哪些网络协议,如何防止网络传输数据的丢失和控制速度,都是值得学习和实验的。了解了视频传输的过程后,我们将开发出一个自己的视频传输系统。本文旨在陈述完成这个系统所作的工作和所学知识,介绍了我们关于这个视频传输系统的构想,我们需要哪些功能。我们依照现如今流行的网络视频聊天传输视频为模板进行了视频传输实验,产生了一些构想并设计自己的系统然后完成了这个视频传输系统。主要工作包括两个方面:第一,了解了视频
3、传输中用到的技术和协议,陈述了他们是如何控制协调视频传输的;第二,开发出一个可行的实时视频传输系统。论文从视频传输系统出发,介绍了用到的关键技术和网络协议,其中最关键的技术是视频压缩采集技术和流媒体传输协议,RTP/RTCP 协议。然后,详细介绍了本视频传输系统的设计和框架,以及实时视频传输系统的实现和测试。最后论文针对实时视频传输系统进行了分析和评价,并指明了下一步的改进计划。关键词:实时视频传输系统;视频采集和压缩;流媒体协议,RTP/RTCP 协议第 1 章 绪论IIAbstractWith the development of the Internet, video is more a
4、nd more popular during people, such as in the area of video communication, entertainment, video surveillance and so on. Instead of traditional voice and text communication provided by single media such as telephone, TV, fax and e-mail, people started to enjoy a whole information of data, picture, im
5、age, audio, video which can be seen in front of them in a way beyond the constraints of time, focus mode. The rate the video develops with has gone further faster than people can predict. And nothing can replace the state of the video in the future.This article aims to study and understand the princ
6、iple and process of video transmission, and develop a system to transmit video. What we can learn from the process includes how video transmits, transmission network protocols used in video transmission, how to prevent data loss and how to control the speed of transmission.After understanding the pr
7、ocess of video transmission, we will develop our own video transmission system. This paper aims to state the knowledge we learn and the work we do when finishing the system. The paper introduces our video transmission system on the idea of what features we need. According to the popular online video
8、 chat system, we carried out some experiment, come out some ideas about video transmission and finally finished our video transmission system. To introduce the video transmission protocol and to details the video transmission we develop is two main tasks the paper finish.Based on video transmission,
9、 this article introduces the key technologies and the video transmission protocol, most important of which are video compression acquisition, streaming media transfer protocol and RTP/RTCP protocol. Then the paper details the design and frame of the system we develop, and analyze the process of the
10、implementation of our system. At last, we test the system and make a summary. We look forward to the work in the future. IIIKey words: Real-time Video Transmission System; Video Capture and Compression; Streaming Media Transfer Protocol, RTP/RTCP Protocol第 1 章 绪论IV目 录第 1 章 绪论 11.1 引言 11.2 论文组织结构 1第
11、2 章 系统相关技术概述 32.1 视频采集压缩原理 32.1.1 视频采集原理 32.1.2 视频压缩原理 42.1.3 视频采集、压缩原理小结 52.2 流媒体传输协议 52.2.1 流媒体定义 52.2.2 流媒体实现原理 62.2.3 支持流媒体传输的网络协议 72.2.4 流媒体小结 72.3 实时传输协议 82.3.1 RTP/RTCP 协议概述 82.3.2 RTP 协议 92.3.3 RTP 控制协议 -RTCP 协议 112.3.4 RTP/RTCP 协议小结 142.4 传输控制、协议处理技术 14第 3 章 基于 RTP/RTCP 协议的实时视频传输系统的分析 163.1
12、 视频系统五大模块 163.2 系统架构分析 173.3 本章小结 19第 4 章 基于 RTP/RTCP 协议的实时视频传输系统的实现 204.1 系统结构 204.2 音频处理模块 AudioCoder224.3 视频处理模块 Video Coder .244.4 核心功能实现模块 Source Files 284.5 本章小结 35第 5 章 系统测试及运行结果 365.1系统测试 365.2 运行结果 .365.3 本章小结 .41第 6 章 总结与展望 42V6.1论文总结 426.2 工作展望 .42参考文献 44致 谢 45第 1 章 绪论VIContentChart 1 Pre
13、face .11.1 Introduction .11.2 The Structure of the Paper.1Chart 2 System Related Technologies Outline 32.1 Video Capture and Compression Theory .32.1.1 Video Capture Theory.32.1.2 Video Compression Theory 42.1.3 Summary .52.2 Streaming Media Transfer Protocol52.2.1 Definition of Streaming Media Tran
14、sfer Protocol 52.2.2 Principle of Streaming Media Transfer Protocol 62.2.3 Protocol Supporting streaming media Transfer 72.2.4 Summary .72.2 Real-time Transport Protocol 82.3.1 RTP/RTCP Transport Protocol .82.3.2 RTP Protocol.92.3.3 RTP Control Protocol-RTCP Protocol112.3.4 Summary .142.4 Technology
15、 of Transport Control and Protocol Processing14Chart 3 Analysis of Real-time Video Transmission System Based on RTP / RTCP protocols .163.1 the Five Module of Video Transmission System 163.2 the Architecture of System .173.3 Summary19Chart 4 Implementation of Real-time Video Transmission System Base
16、d on RTP / RTCP protocols.204.1 the Structure of Syesem 204.2 Audio Processing Module-AudioCoder.224.3 Video Processing Module-VideoCoder244.4 Implementation Module of Core functions-Source Files284.5 Summary35Chart 5 System testing and the running results 36VII5.1 System testion 365.2 Running resul
17、ts365.3 Summary41Chart 6 Summary and future works 426.1 Summary of this paper .426.2 Improvements and future works .42References .44Acknowledgements .45第 1 章 绪论1第 1 章 绪论1.1引言视频传输随着网络的发展越来越受到人们的需要和重视,只有语言上的网上交流远远不能满足人们的需要,于是视频应运而生,而且发展迅猛。视 频 技术 最 早 是 为 了 电 视 系 统 而 发 展 , 但 是 现 在 已 经 更 加 发 展 为 各 种 不 同
18、的 格 式 以利 消 费 者 将 视 频 记 录 下 来 。 网 络 技 术 的 发 达 也 促 使 视 频 的 纪 录 片 段 以 串 流媒 体 的 形 式 存 在 于 因 特 网 之 上 并 可 被 电 脑 接 收 与 播 放 。在提供流媒体服务的系统中需要考虑两个主要问题:如何获取数字视频信息?怎样对获取的视频信息进行有效、可靠传输?针对信息的获取,随着各种高性能视频采集芯片的出现,如 SAA7111、SAA7114、TVP5145 等,使得视频采集系统的性能越来越稳定、可靠且能够提供更为满意的视频采集质量;对于后者的关键性发展,则体现为各种视频编码标准的制订(如 H.26X1,2系列、
19、JPEGE3和 MPEG4系列)和网络传输技术的发展( 包括网络交换技术和网络传输控制协议的发展)。流媒体应用潜在地需要确定的收发同步、较宽的传输带宽、低的质量抖动、确知的传输延时、对误码不是非常敏感但对错误重传延时非常敏感等,而目前基于 TCP/IP 的数据传输网络在本质上是尽力而为的网络,是为传统数据业务提供传输服务的网络,传输带宽的波动是不可避免的,传输延时也是随机的 5。所以如何让在 TCP/IP 协议上公平的停工流媒体服务与传输数据业务是网络传输控制协议所需要考虑的核心问题。1.2论文组织结构本论文共分为六章,论文首先感性的介绍了视频和视频传输,说明了一些视频传输的基本知识和问题,然
20、后我们观察现在各种视频传输软件寻找灵感,通过网上学习和查阅资料了解了传输视频用到的协议,然后开始制作这个系统。我们先看了一些成熟的视频传输软件,然后提取模仿了我们需要的几个功能。再然后就是我们关于我们视频传输的一个构想,应该还要增加哪些功能,哪部基于 RTP/RTCP 协议的实时视频传输实现与应用2分应该是我们重点投入精力的,各个功能模块如何实现以及可能碰到的问题。该系统的实现部分我们分模块给大家讲述了我们的视频传输系统是如何实现的,几个功能模块和他们各自的实现。在论文的最后我们进行了测试工作,分析了这个系统可以改进的地方和一些展望。论文具体安排如下:第一章 简单介绍了视频的概念和视频的发展以
21、及它在现代网络社会无可替代的地位和视频中用到的一些基本技术,在本章中还介绍了本论文的结构以及我们的开发环境。第二章 详细介绍了视频传输中用到的一些核心的技术,主要介绍了视频传输的相关协议。第三章 详细介绍了我们对视频传输系统的一个构想和一些简单基本的功能实现,为第四章的实现做好铺垫。第四章 介绍了视频传输系统的实现。详细阐述了系统的背景和总体目标,从视频采集模块、视频编解码模块、相关控制模块分析了系统是如何建成的和它的功能。第五章 介绍了视频传输系统的系统测试和运行结果。第六章 最后论文总结了毕业设计所做的工作,并且指明了下一步的改进计划。第 2 章 系统相关技术概述3第 2章 系统相关技术概
22、述2.1视频采集压缩原理2.1.1 视频采集原理视频采集系统的基本构成框图如图 2.1 所示。图 2.1 视频采集系统原理框图A/D 部分是将各种标准的模拟视频信号转换成数字视频信号,作为视频处理子单元的输入数据;逻辑产生单元通常选用 FPGA 或 CPLD 来完成各种同步逻辑控制,保证采集的实时性;对视频数据进行分析和处理,是整个采集模块的灵魂,但所需运算量常常较大,为了保证视频处理的实时性,常采用视频处理专用芯片、高速 DSP、FPGA 和 DSP 等来完成视频处理。 视频采样芯片可选用 TI 公司的数字视频解码器 TVP5145,它能将NTSC、PAL、SECAM 制式的模拟视频转换为数
23、字复合视频。在本文所搭建的系统中,视频 A/D 部分采用 Philips 公司的可编程视频输入处理芯片 SAA7111,该器件采用 CMOS 工艺,包含四路模拟视频输入通道,通过 I2C 总线,主机可以方便地对该器件进行初始化。同时 SAA7111 内部可以实现模拟通道选择并可对输入视频进行抗混叠滤波,并包含两个 8 位的 A/D 转换器。芯片还实现了自动钳位、自动增益控制(AGC) 、时钟产生、多制式解码,另外对亮度、色度和饱和度也是在片内进行控制的。芯片的最大特点在于仅需一个 24.576 MHz 的晶振就可满足所有视频标准的应用,且在片内实现制式的自动检测,因此使得视频桌基于 RTP/R
24、TCP 协议的实时视频传输实现与应用4面系统、数字电视系统、视频电话、图像处理等的开发极为方便。2.1.2 视频压缩原理视频数据压缩之所以可以实现,是因为原始视频图像中存在很大的冗余度。有相关性就有冗余度,传输前将冗余度去掉,称之为压缩编码。压缩编码可分为帧内图像编码和帧间图像编码。所谓帧内编码是仅利用空间相关性对一帧图像编码,帧间图像编码则是利用时间相关性对一个图像序列进行编码。帧内编码主要是用变换编码方法,帧间编码主要用预测编码方法。以下四个步骤描述了基本图像压缩技术 6:(1)“预准备”包括模数转换和生成适当的数据表达信息。一幅图像分割88 像素的块,每个像素以固定的数据位表达。(2)“
25、处理”实际上是使用复杂算法压缩处理的第一个步骤。从时域到频域的变换可以用离散余弦变换(DCT)。在动态视频压缩中,对帧间编码每个 88块采用运动矢量。(3)“量化”过程对上一步骤产生的结果进行处理,该过程定义了从实数到整数的映射方法。这一处理过程会导致精度的降低。(4)“熵编码”通常是最后一步。它对序列数据流进行无损压缩。图 2.2 图像压缩的基本步骤第 2 章 系统相关技术概述5解压缩是压缩的逆过程,特定的编码器和解码器以不同的方法构成。在对称应用中,编码和解码代价应基本相同;在非对称应用中,解码过程比编码过程耗费的代价要小。2.1.3 视频采集、压缩原理小结本节主要介绍了音、视频的采集和压
26、缩的过程和原理,采集技术主要运用了 A/D 转换器,压缩原理主要用了压缩编码技术,本节目的在于帮助我们了解音、视频的传输过程。22 流媒体传输协议2.2.1 流媒体定义 流媒体把连续的影像和声音信息经过特殊的压缩方式分成一个个压缩包,由视/音频服务器向用户计算机连续、实时地传送。让用户一边下载一边观看、收听,而不需要等整个压缩文件下载到自己的机器后才可以观看。该技术先在用户端的电脑上创造一个缓冲区,于播放前预先下载文件的一小段数据作为缓冲,播放程序取用这一小段缓冲区内的数据进行播放。在播放的同时,多媒体文件的剩余部分在后台继续下载填充到缓冲区。这样,当网络实际连线速度小于播放所耗用数据的速度时
27、,可以避免播放的中断,也使得播放品质得以维持。所以流媒体最显著的特征是“边下载、边播放” 。与传统多媒体相比,流媒体具有以下优点:(l)启动延迟大幅度地缩短用户不用等待所有内容下载到硬盘上才开始浏览。一般来说,一个 45 分钟的影片片断在 1 分钟以内就能够显示在客户端上,而且在播放过程中一般不会出现断续的情况。另外,全屏播放对播放速度几乎无影响,但快进、快倒时需要时间等待。(2)对系统缓存容量的需求大大降低由于 Internet 是以包传输为基础进行断续的异步传输,数据被分解成许多包进行传输,动态变化的网络使各个包可能选择不同的路由,故到达用户计算机的时间延迟也就不同。所以,在客户端基于 R
28、TP/RTCP 协议的实时视频传输实现与应用6需要缓存系统来弥补延迟和抖动的影响以及保证数据包传输顺序的正确,使媒体数据能连续输出,不会因网络暂时拥堵而使播放出现停顿。虽然流式传输仍需要缓存,但由于不需要把多媒体文件所有的动画、视/音频内容都下载到缓存中,因此,对缓存的要求大大降低了。(3)流式传输的实现有特定的实时传输协议采用 RTSP 等实时传输协议,更加适合动画、视/音频在网上的流式实时传输。流媒体又根据流式传输的不同实现方式分为顺序传输流(Progressive streaming)和实时传输流( Realtimestreaming)两种。实时传输流指在保证媒体信号带宽与网络连接匹配的
29、条件下,使媒体内容可被实时观看到。实时传输的媒体流需要专用的流媒体服务器与传输协议,特别适合现场事件,也支持随机访问。用户可以控制浏览的内容。一般来说,如视频为实时广播,或使用流式传输服务器,或应用如 TRSP 的实时协议,即为实时传输流。而顺序传输流是使用HTTP 服务器顺序下载文件在下载文件的同时,用户可观看己下载的那部分,而不能跳到还末下载的剩余部分,顺序传输流不能按用户的连接速度不同来作调整,严格来讲,它不是真正意义上的流式传输技术。实时多媒体数据具有以下特点:(l)数据量大。以分辨率*传输速率为 640*480*1SFPS 的运动图像来说,每秒钟产生的数据量就高达 14MB 左右。因
30、此,为了便于传输和存储,实时多媒体数据需要先进行压缩编码处理。(2)数据传输的要求较高。在几个点同时进行多发多收的场合,对系统网络的传输要求是很高的。(3)对于数据处理的时间要求严格。无论是发送方的数据采集、编码压缩和数据发送,还是接收方的数据接收、解压和播放,都要求按一定的时间顺序进行,因此收、发双方要求解决能同步问题。2.2.2 流媒体实现原理流媒体实现原理简单地说,就是通过采用高效的压缩算法,在降低文件大小的同时伴随质量的损失,让原有的庞大的多媒体数据适合流式传输。然后通过架设流媒体服务器,修改 MIME 标识,利用各种实时协议传输流数据。流媒体实现原理图如图 2.3 所示。第 2 章
31、系统相关技术概述7图 2.3 流媒体实现原理多媒体数据必须进行预处理才能适合流式传输,这是因为目前的网络带宽相对多媒体巨大的数据流量来说还显得远远不够。预处理主要包括两方面:一是采用先进高效的压缩算法;二是加入一些附加信息把压缩媒体转为适合流式传输的文件格式。其技巧在于压缩原始的 A/V 内容,使其能够在窄带或宽带通道上以流的方式传给用户。预处理在编码器内完成,编码方式的选择可以是多种多样的。Microsoft 、RealNetworks、Apple Computer 以及其他各方均提供关于编码、流式传送以及客户观看等方面享有专用权的方案。此外,某些商家已开始提供 100%兼容 MPEG-4
32、的产品。常规视频编码速度的范围从 20kbit/s 到目前的 300kbit/s,将来则有望达到 1Mbit/s 及以上的速度。音、视频编码器在功能上有相当大的差别。最终的编码资料可以是利用文本/图形/脚本形式进行多路传输的,并且是放在能够实现流的方式的文件结构中。也就是意味着该文件有时间标记以及其他易于实现流的方式的特点,然后再在客户端进行解码。编码过程是一种艺术,应该考虑不同编码速度的定制性能、包损失的容错性与网络的带宽波动、最低速度下好的 A/V 品质、编码/流式传送的成本、流的控制以及其他有面。2.2.3 支持流媒体传输的网络协议(1)实时传输协议(RTP,Real-time Tran
33、sport Protocol):一种用于Internet 上针对多媒体数据流的一种传输协议。(2)实时传输控制协议(RTCP,Real-time Transport Control protocol):和 RTP 一起提供流量控制和拥塞控制服务。(3)资源预留协议(RSVP,Resource Reservation protocol):正在开发的Internet 上的资源预留协议。(4)实时流协议(RTSP,Real-time Streaming Protocol):定义了一对多的基于 RTP/RTCP 协议的实时视频传输实现与应用8应用程序如何有效地通过 IP 网络传送多媒体数据。2.2.4
34、流媒体小结本节主要论述了流媒体和流媒体技术的各方面概况。流媒体技术就是把连续的影像和声音信息经过特殊的压缩方式分成一个个压缩包,由视/音频服务器向用户计算机连续、实时地传送。流媒体最显著的特征是“边下载、边播放” 。流式传输是流媒体实现的关键技术。流式传输定义很广泛,现在主要指通过网络传送媒体(如视频、音频)的技术总称。其特定含义为通过Internet/Intranet 将影视节目传送到 PC 机。实现流式传输有两种方式:顺序流式传输和实时流式传输。流媒体实现原理就是首先通过采用高效的压缩算法,在降低文件大小的同时伴随质量的损失,让原有的庞大的多媒体数据适合流式传输。 23 实时传输协议2.3
35、.1 RTP/RTCP 协议概述RTP(实时传输协议 Real-Time Transport Protocol)/RTCP (实时传输控制协议Real-Time Transport Control Protocol)属于一种应用型的传输层协议,它并不提供任何传输可靠性的保证和流量的拥塞控制机制。RTP是由IETF (Internet Engineering Task Force)为视音频的实时传输而设计的传输协议。RTP 协议位于UDP 协议之上,在功能上独立于下面的传输层和网络层,但不能单独作为一个层次存在,通常是利用低层的UDP 协议对实时视音频数据进行组播(Multicast)或单播(U
36、nicast ),从而实现多点或单点视音频数据的传输。RTP协议一般由两个部分组成:数据报文部分(RTP报文)和控制报文部分(RTCP )。RTP 协议携带具有实时特征的数据,与之作为配套的另一个协议是RTCP 协议。RTCP 是RTP的控制协议,它用于监视服务质量和正在进行的与会者会话上传递信息,它单独运行在底层协议上。RTCP 是由接收方向发送的报文,它负责监视网络的服务质量、通信带宽以及网上传送的信息,并将这些信息发送给发送端。RTCP 报文共有5类:SR (发送报告)、RR(接收报告)、SDES (源描述项)、BYE (结第 2 章 系统相关技术概述9束标志)、APP(应用特定函数)。
37、RTCP 的基本做法是周期性地向会话的所有参加者进行通信,采用和数据包分配传送的相同机制来发送控制包。RTCP的主要功能如下:(1)数据传输的质量提供反馈,并提供QoS 的检测;(2)提供不同媒体间的同步;(3)在会话的用户界面上显示会话参与者的标识。RTP/RTCP 是基于 IP 协议的应用层协议,支持在 Internet 上传输实时数据。在 RTP 协议中,没有具体限定底层网络所能提供的传输服务的类型,通常情况下,RTP 协议运行于 UDP 之上 7。图 2.4 RTP/RTCP 网络层次关系图RTP 需要和 RTCP 协议协同工作。 RTP 用于数据包的封装和传输;RTCP协议承载传输过
38、程中的控制信息:网络状态、网络时间、实时媒体数据等。在RTP 会话中,借助于 RTCP,会话参加者不仅可以监测数据通信质量,还可以行使一些基本的会话控制功能,如参加/退出会话、识别其它参加者身份等。2.3.2 RTP 协议实时传输协议(RTP)提供了对实时数据,如数字视频流和音频流在网络中的传输支持。RTP 是一个端到端的实时数据传输协议,它提供的服务包括同步、基于 RTP/RTCP 协议的实时视频传输实现与应用10时序、帧结构、丢失检测、加密和来源辨识等。RTP 主要是被设计用来为实时数据的组播(Multicast)提供服务,但是它同样也能够被用在单播(Unicast) 中。它既能够被用来进
39、行如视频点播那样的单向传输,又可以被用在如网络电话那样的交互服务中。RTP 提供多址功能,使用时间戮方式提供在一个源和多个目的之间的同步,提供多个多媒体会议信息在一个连接上的复用,与 RTP 一起使用的控制协议 RTCP 在会议的多个参加者之间传送控制信息。虽然 RTP 协议的设计初衷是为了满足多个参加者的多媒体会议系统的需求,但对于其它类型的应用,特别是媒体点播型应用,RTP 同样发挥着重要作用。基于 RTP 的视频传输控制的研究从协议设计思想的角度来看,RTP 体现了应用层分帧(Application-LevelFraming,简称 ALF)和集成层次处理(Integrated Layer
40、 Processing,简称ILP)的原则。一个标准的 RTP 报文是由固定报文头(fixed header)和用户数据或称数据负载(payload)两部分构成的。图 2.5 RTP 报文格式RTP 协议的数据包有其特有的格式,如图 2.6 所示,且前 12 个字节是每个RTP 报文共有的。图 2.6 RTP 报文头结构以下示意了一个封装在 UDP/IP 包中的 RTP 包的结构。最里层的是 RTP 负第 2 章 系统相关技术概述11荷,即我们所需要的有效数据,向外依次是 RTP 包头、UDP 包头和 IP 包头。图 2.7 IP 包中的 RTP 数据RTP 通常运行在 UDP 之上,这主要出
41、于以下两个原因的考虑:首先 RTP 主要是为组播而设计的,面向连接的 TCP 不具备很好的伸缩性,因此不适合用于组播。其次由于实时数据对可靠性的要求往往不像对时效性要求那样的严格,而且 TCP 所提供的利用重传所实现的可靠传输往往是不符合实时数据传输要求的。比如,当网络拥塞时,数据重传可能将导致进一步的迟延和网络阻塞,而接收端则可能处于无数据的等待状态。RTP 有其特殊的负载格式 89。RTP 是围绕应用层框架(ALF)设计的,在 ALF 下,重要的一点是必须面临和处理乱序和丢包现象。因此,在设计 RTP 负载格式时应该使媒体数据的 RTP 封装具有丢包鲁棒性。这里引入一个名词-应用数据单元(
42、ADU),一个 ADU 是指不依赖其他ADU,可以单独处理的数据单元,这个 ADU 包含足够信息使接收端在收到这个ADU 后,可以立即处理它。即在视频流中,接收端可以立即解压缩一个收到的ADU,而不管是否收到之前的 ADU。另外,ADU 必须包括头信息以指明它在视频图像或者帧中的位置。尽管一个 ADU 可以不是一个包,但是在设计负载格式时应该尽量使包中数据为 ADU。这样的优点是所有收到的包能够立即解码。以下是设计负载格式的两个原则:第一,在有适度的去包的情况下。数据流仍能正常使用。即要求对丢包有一定的鲁棒性。第二,不管之前的包足否到达,这个包仍能被解压缩和回放出来。另外,许多的 RTP 负载
43、格式要求额外的头信息来说明在 RTP 包头中无法包含的信息。基于 RTP/RTCP 协议的实时视频传输实现与应用122.3.3 RTP控制协议-RTCP 协议RTCP 是和 RTP 一起合作的控制协议,RTCP 的主要功能包括 10:(1)RTCP 的基本功能是提供关于数据传输质量的反馈,用反馈信息的方法来提供分配数据的传送质量。这种反馈可用来进行流量的拥塞控制,也可以直接用来监视网络,用来诊断网络中出现的问题。该功能由 RTCP 的发送者报告(SR)和接收者报告(RR)来具体完成。这一功能是 RTP 协议的重要组成部分,它大致可和其它传输协议的流量控制及拥塞控制机制相对应。此外,在 IP 多
44、点机制的支持下,RTCP 的这一功能允许并不具体参加某一 RTP 会话的功能实体而通过接收反馈报文来诊断网络服务的问题,扮演第三方监测者的角色(如网络服务提供者,Network ServiceProvider) 。(2)就每个 RTP 源而言,RTCP 为其分配一个持久的传输层标识,该标识被为 CNAME(Canonical NAME)。虽然上节介绍的 SSRC 标识符可以区分一个会话中的不同码流,但是在发现冲突或者在程序更新启动后 SSRC 可能会改变,而接收者为了保持一个与会者的运作痕迹就需要一个 CNAME,另外在一组相关的会话中接收方也需要用 CNAME 从一个给定的与会者中得到相联系
45、的数据流,举例来说,接收方要用 CNAME 来获得同步的音频和视频码流。(3)由于上述两项功能要求所有的会话参加者发送 RTCP 报文,因而为了能够在一个 RTP 会话中接纳更多的用户,RTCP 给出了关于调整控制报文发送速率的方法。一个 RTP 用户能够通过接收来源于其它用户的 RTCP 报文,独立地了解会话参加者的数目,RTCP 利用该数值参数为每个会话参加者计算控制报文的发送间隔,以达到 RTCP 所占用的通信带宽不超过会话带宽 5%的目的。(4)RTCP 提供了基本的会话控制功能,如在不同的会话参加者之间互换身份信息等。该功能为可选项,主要用于控制较为松散的会话,这样的会话对用户的加入
46、和离开没有严格的管理。由此可以看出,尽管 RTCP 为访问每一个会话参加者提供了便捷的手段,但它并未满足应用程序所需的全部通信控制要求,所以 RTP 允许应用在 RTCP 的基础上选用其它高层控制协议以满足其特定的应用需求。下面给出 RTCP 数据包的几种类型,它们分别传输不同的控制信息:SR:发送端报告,发送和接收来自活动发送端的统计信息。第 2 章 系统相关技术概述13RR:接收端报告,接收来自非活动发送端的统计信息。SDES:数据源描述项,包括 CNAME。BYE:表示某用户结束会话。APP:由应用程序指定的功能。每一个 RTCP 数据包由一定长的报头和结构化元素组成。结构化元素的长度随
47、数据包的类型而不同。RTCP 数据包以一个 32 位的分隔符结尾。多个 RTCP 数据包组成混合数据包时无需为每个数据包插入分隔符。由于混合数据包的最终长度由底层协议所提供的总长度决定,所以混合数据包中 RTCP 数据包的数量是不确定的。应用程序可按任意顺序处理 RTCP 数据包,而不必须考虑它们在混合数据包中的次序,所有的 RTCP 数据包必须以混合数据包的形式发送。SR 或 RR:混合数据包中的第一个数据包必须是接收端或发送端报告以便对报头进行有效性操作。既使混合数据包只有 BYE 数据包或者不发送、不接收数据也要如此,因为此时要发送一个空的 RR 数据包。附加的 RRS:如果被报告的接收
48、统计信息的数据源数量超过 31 个,即一个SR 或 RR 能容纳的最大数据源的数量,那么初始报告之后应加一个或多个附加的 RR 数据包。SDES:每个混合 RTCP 数据包必须包括含一个 CNAME 数据项的 SDES 数据包,对于特殊的应用程序如果需要并且网络带宽也能满足要求,那么可以包括其它可选的信号源说明数据项。BYE 或 APP:所有己定义的其它 RTCP 数据包可按任意次序排列,只有 BYE数据包例外。在 RTCP 数据包中,它必须是最后一个数据包并且只能出现一次,而其它类型的数据包可出现多次。RTP 接收端用 RTCP 报告为发送端提供接收质量反馈信息。RTCP 报告分为两种,发送
49、端报告(SR)和接收端报告(RR)。根据接收端是否同时也是发送端,RTCP 报告可能使用两个表格中的一个。除数据包类型码外,发送端报告表格和接收端报告表格之间的唯一差别是发送端报告含有供活动态发送端使用的 20 个字节的发送端信息。如果一个会话现场在发送最后一个报告或者在发送前一个报告之后的一个周期内发送了数据包,那么该现场就发送 SR 报告,否则就发送RR 报告。基于 RTP/RTCP 协议的实时视频传输实现与应用14SR 和 RR 表格包括 0 个或多个接收报告数据块,每个数据块对应一个同步源。每个数据块表示从收到最后一个报告以后,接收端又从这些同步源收到了RTP 数据包。报告不用于 CSRC 列表中列出的特定数据源。每一个接收报告数据块都提供从某个特定数据源收到数据的统计信息。SR 或 RR 数据包最多可包含31 个数据块。为了能包含所有数据源的接收报告,应将附加的 RR 数据包放在原始 SR 或 RR 数据包之后。2.3.4 RTP/RTCP协议小结本节在简要介绍了 RTP/RTCP 协议的功能与基本的报文信息,重点介绍与分析了 RTCP 协议中的 SR 和 RR 报文的结构,给出了使用协议的要求及使用过程需要注意的问题。2.4 传输控制、协议处理技术视频流传输与传统的 TCP/IP 网络的数据