(通信与信息系统专业论文)h264流媒体技术研究与实现.pdf_第1页
(通信与信息系统专业论文)h264流媒体技术研究与实现.pdf_第2页
(通信与信息系统专业论文)h264流媒体技术研究与实现.pdf_第3页
(通信与信息系统专业论文)h264流媒体技术研究与实现.pdf_第4页
(通信与信息系统专业论文)h264流媒体技术研究与实现.pdf_第5页
已阅读5页,还剩71页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师的指导下,独 立进行研究所取得的成果。除文中已经注明引用的内容外,本论文不 包含任何其他个人或集体已经发表或撰写过的科研成果。对本文的研 究作出重要贡献的个人和集体,均已在文中以明确方式标明。本声明 的法律责任由本人承担。 论文作者签名:趁塑盘日期:翌z :! 岁 关于学位论文使用授权的声明 本人完全了解山东大学有关保留、使用学位论文的规定,同意学 校保留或向国家有关部门或机构送交论文的复印件和电子版,允许论 文被查阅和借阅;本人授权山东大学可以将本学位论文的全部或部分 内容编入有关数据库进行检索,可以采用影印、缩印或其他复制手段 保存论文和汇编本学位论文。 ( 保密论文在解密后应遵守此规定) 论文作者签名:邋师签名: 期。 山东大学硕士学位论文 中文摘要 随着信息产业的发展,人们对信息资源的要求已经逐渐由文字和图片过渡到音 频和视频,并越来越强调获取资源的实时性和互动性。但人们又面临着另外一种不 可避免的尴尬,就是在网络上看到生动清晰的媒体演示的同时,不得不为等待传输 文件而花费大量时间。为了解决这个矛盾,一种新的媒体技术应运而生,这就是流 媒体技术。流媒体由于具有启动时延小、节省客户端存储空间等优势,逐渐成为人 们的首选,流媒体网络应用也在全球范围内得到不断的发展。 h 2 6 4 a v c 是r r u _ tv c e g 和i s om p e g 所组成的联合视频专家组j v t 共同努 力制订的新一代视频编码标准,其主要目标是为了支持对视频的高效编码和鲁棒传 输,目标应用包括双向的视频通信( 如视频会议和视频电话) 以及在基于分组交换 的网络上进行流式视频传输等。从目前的发展来看,h 2 6 4 已经得到学术界和工业 界的广泛认可,也成为当前视频编码领域最为热门的研究领域之一,相信在不久的 将来h 2 6 4 将在不同的领域得到更广泛的应用。 本文正是基于当前的网络和多媒体技术发展现状,分析当前流媒体实现的原理 和机制,探讨当前流媒体实现过程中存在的问题,研究流媒体技术与h 2 6 4 的结 合,实现了h 2 6 4 流媒体系统。本文的主要内容包括以下几个方面: 1 分析流媒体技术的原理并实现了流媒体协议栈。研究了当前应用层的流 媒体传输协议r t p r t c p 的实现机制,研究了流媒体传输控制协议 r t s p 的机制以及r t s p r t p r t c p 交互工作的原理。 2 对新一代多媒体编码标准h 2 6 4 进行研究,研究其差错控制技术,并对 其中的误码掩盖方法进行深入分析,提出新的基于数据隐藏的时域误码 掩盖算法,提高h 2 6 4 的网络适应能力。 3 根据r t s p 觚p ,r t c p 协议实现了流媒体协议栈,并基于嵌入式平台实 现了流媒体客户端,本客户端可与通用流媒体服务器构成流媒体系统。 在此基础上,以p c 机为平台实现h 2 6 4 a v c 流媒体服务器与客户端, 完成了h 2 6 4 流媒体系统。 山东大学硕士学位论文 经过以上几方面的研究,我们实现了流媒体协议栈与嵌入式流媒体客户端,为 迸一步研究流媒体技术打下了基础,研究了h 2 6 4 误码掩盖技术,搭建了h 2 6 4 流 媒体系统,为深入研究h 2 6 4 流媒体技术搭建了理论与实验平台。 2 关键词:流媒体、r t p r t c p r t s p 、h 2 6 4 a v c 、误码掩盖 第一章绪论 1 1 流媒体技术发展现状 随着i n t e m e t 的日益普及,在网络上传输的数据已经不再局限于文字和图形, 目前已经逐渐过渡到声音和视频等多媒体格式。但是受网络带宽、协议规范等方面 的限制,要想从网络上下载大量的音频和视频数据,无论从下载时间和存储空间上 来讲都要受到许多限制。因此想要实现传统的下载播放比较困难,代价比较昂贵。 流媒体技术的出现很好地解决了这一难题【l 】。 流媒体是近些年才在网络上兴起的新的传输模式,一般是指通过网络传输多媒 体数据的技术总称。流媒体包含广义和狭义两种内涵:广义上的流媒体指的是使音 频和视频形成稳定和连续的传输流和回放流的一系列技术、方法和协议的总称,即 流媒体技术;狭义上的流媒体是相对于传统的下载一回放方式而言的,指的是一种 从网络上获取音频和视频等多媒体数据的新方法,它能够支持多媒体数据流的实时 传输和实时播放。通过运用流媒体技术,服务器能够向客户机发送稳定和连续的多 媒体数据流,客户机在接收数据的同时以一个稳定的速率回放,而不用等数据全部 下载完之后再进行回放。 计算机网络技术和多媒体技术的发展,促进了流媒体技术的开发和应用,各大 专业厂商,比如m i c r o s o f t , a p p l e ,r e a l n e t w o r k s 等公司都十分重视流媒体技术的发 展,近年来频繁发布相关的流媒体技术产品,已经抢占了该项技术的制高点;同时 也推动了相关的标准化建设,先后制订或改进了相应的协议。目前很多厂商都有成 熟的基于p c 的流媒体产品,其中比较流行的流媒体格式主要有r e a l n e t w o r k s 公司 的r e a lm e d i a 、a p p l e 公司的q u i c kt i m e 和m i c r o s o f t 公司的w i n d o w sm e d i a 。它们 分别具有不同的特点和优势。 1 1 1r e a in e d i a r e a lm e d i a 采用的是r e a l n e t w o r k s p l 公司自己开发的r e a lg 2c o d e c 。它采用了 很多先进的设计,例如:s v t ( s c a l a b l ev i d e ot e c h n o l o g y ) ,该技术可以使客户端播 5 山东大学硕士学位论文 放器不需要解开所有的原始图像数据也能流畅观看节目;黼( t w o e n c o d i n g ) 技术类似于v b r ,它可通过预先扫描整个影片,根据带宽的限制选择最优化压缩码 率。r e a lm e d i a 音频部分采用的是r e a la u d i o ,它具有2 1 种编码方式,可实现声音 在单声道、立体声音乐不同速率下的压缩。 1 1 2w i n d o w sn o d i a m i c r o s o f t 3 1 公司的w i n d o w sm e d i a 的核心是a s f ( a d v a n c e ds t r e a mf o r m a t ) 。微 软将a s f 定义为同步媒体的统一容器文件格式,音频、视频、图像以及控制命令脚 本等多媒体信息通过这种格式以网络数据包的形式传输,实现流式多媒体内容发 布。 a s f 的最大优点是体积小,适合网络传输,用户可以将图形、声音和动画数据 组合成一个a s f 格式的文件,不仅可以将其他格式的视频和音频转换为a s f 格 式,而且还可以通过声卡和视频捕获卡将诸如扬声器、摄像机等外设的数据保存为 a s f 格式。另外,a s f 格式的视频中可以带有命令代码,用户指定在到达视频或音 频的某个时间后触发某个事件或操作。 1 1 30 u i c k t i m o a p p l e l 4 公司的q u i c k t i m e 电影文件现已成为数字媒体领域的工业标准。 q u i c k t i m e 文件格式定义了存储数字媒体内容的标准方法,它被设计用来适应为数 字化媒体一同工作需要存储的各种数据。因为这种文件格式能用来描述几乎所有的 媒体结构,所以它是应用程序问交换数据的理想格式。q u i c k t i m e 文件格式中媒体 描述和媒体数据是分开存储的,媒体描述或元数据( m e t a - d a t a ) 包含轨道数日、视频 压缩格式、时间信息以及媒体数据存储区字段的索引。媒体数据是所有的采样数 据,如视频帧和音频采样,媒体数据可以与元数据存储在同一个文件中,也可以存 储在一个单独的文件或者几个文件中。 6 山东大学硕士学位论文 流媒体技术并不是单一的技术,它融合了多种网络以及音视频技术。在网络中 真正要实现流媒体技术,必须完成流媒体的制作、发布,传输、播放四个环节。这 四个环节需要解决多项技术问题。主要的技术难点有: 1 需要浏览器对流媒体的支持。w e b 浏览器能通过h 1 r p 中内建的m i m e 来 标记w e b 上的多媒体文件格式,包括各种流媒体文件格式。 2 流媒体传输的实现需要缓存。缓存的目的就是在某一段时间内存储需要使 用的数据,能否有效管理缓存关系到流媒体最终的播放s 效果。 3 流式传输的实现需要合适的应用层传输协议。当前一般采用r t p r t c p 等 协议来传输实时的影音数据,采用r t s p 等协议来传输控制操作等信息。 4 流式传输需要合适的传输层协议的支持。当前的传输层主流协议t c p 和 u d p 都存在一定缺陷。t c p 协议由于对可靠性的保障和较大的传输开销, 不适合流媒体传输,所以当前r t p 协议一般运行在u d p 之上。但是无连接 的u d p 不提供任何的数据传输保障,所有的数据质量保证机制必须由应用 层来实现,在一定程度上增加了实现的难度。 以上均为实现流媒体技术的必要条件,它们最终的目的都是为了解决流媒体传 输在带宽、压缩算法以及安全性等方面的问题。目前流媒体技术已开始应用于证券 路演、网络直播、多媒体新闻发布、网络视频广告,电子商务、视频点播、远程教 育、远程医疗、网络电台、视频会议、互动游戏、三维动画等领域。一些宽带网络 运营商也已经开始尝试提供流媒体视频直播、点播的服务。 2h 2 6 4 埘g 2 0 0 1 年1 2 月,v c e g 和运动图像专家组( m p e g - i s o ,m cj t ci s c2 9 w g 1 1 ) 组成了联合视频组( j 、,r ,j o i n tv i d e ot e a r n ) 【5 】,研究新的编码标准。该标准 被u t 作为标准建议h 2 6 4 ,i s o i e c 作为国际标准1 4 4 9 6 - 1 0 ( m p e g - 4 第l o 部 分) 高级视频编码( a v c ) ,于2 0 0 3 年3 月正式获得批准。 视频的各种应用必须通过各种网络传送,这要求一个好的视频方案能处理各种 应用和网络接口。h 2 6 4 为了解决这个问题,提供了很多灵活性和客户化特性。 h 2 6 4 的设计方案包含两个层次,视频编码层( v c l ,v i d e oc o d i n gl a y e r ) 和网络抽 7 山东大学硕士学位论文 象层( n a l ,n e t w o r ka b s t r a c t i o nl a y e r ) 。视频编码层主要致力于有效地表示视频内 容,网络抽象层格式化v c l 视频表示,提供头部信息,适合多种传输和存储媒体。 1 2 。1 视频编码层 v c l 的设计同以前的r r u - t 和i s o f l e cj t c 一样,基于块的混合视频编码方 法。基本的源编码算法是:利用时间统计的相关性,开发帧间预测算法;利用预测 残留变换编码,开发空间统计的相关性。 1 h 2 6 4 a v c 相对以前的编码方法,以m p e g - 2 为例,在图像内容预测方 面提高编码效率、改善图像质量的主要特点如下: 可变块大小运动补偿:选择运动补偿大小和形状比以前的标准更灵 活,最小的亮度运动补偿块可以d , n4 x 4 。 1 4 采样精度运动补偿:以前的标准最多1 2 精度运动补偿,首次1 4 采 样精度运动补偿出现在m p e g 4 第二部分高级类部分,但h 2 6 4 a v c 大大减少 了内插处理的复杂度。 运动矢量可跨越图像边界:在以前的标准中,运动矢量限制在已编码参 考图像的内部。图像边界外推法作为可选技术首次出现在h 2 6 3 中。 多参考图像运动补偿:在m p e g 一2 及以前的标准中,p 帧只使用一帧, b 帧只使用两帧图像进行预测。h 2 6 4 a v c 使用高级图像选择技术,可以用以 前已编码过且保留在缓冲区的大量的图像进行预测,大大提高了编码效率。 消除参考图像顺序和显示图像顺序的相关性:在以前的标准中,参考图 像顺序依赖显示图像顺序,h 2 6 4 a v c 消除了该限制,可以任意选择。 消除参考图像与图像表示方法的限制:在以前的标准中,b 帧图像不能 作为预测图像,h 2 6 4 ,a v c 在很多情况可以利用b 帧图像作为参考。 加权预测:h 2 6 4 a v c 采用新技术,允许加权运动补偿预测和偏移一 定量。在淡入淡出场景中该技术极大的提高了编码效率,该技术还有其他多种 用途。 改善“跳过”和“直接”运动推测:在以前的标准中,预测编码图像的“跳 过”区不能有运动。当编码有全局运动的图像时,该限制非常有害。h 2 6 4 a v c 8 山东大学硕士学位论文 对“跳过”区的运动采用推测方法。对双预测的b 帧图像,采用高级运动预测方 法,称为“直接运动补偿,迸一步改善编码效率。 帧内编码直接空间预测:将编码图像边沿进行外推应用到当前帧内编码 图像的预测。 循环去块效应滤波器:基于块的视频编码在图像中存在块效应,主要来 源于预测和残余编码。自适应去块效应滤波技术是非常著名的技术,能有效消 除块效应,改善视频的主观和客观质量。 2 除改善预测方法外,其他改善编码效率的特性如下: 小块变换:以前标准中变换块大小都是8 x 8 ,h 2 6 4 a v c 主要使用4 4 块变换,使编码器表示信号局部适应性更好,更适合预测编码,减少r i n g 效 应。另外图像边界需要小块变换。 分级块变换:h 2 6 4 a v c 通常使用小块变换,但有些信号包含足够的相 关性,要求以大块表示,h 2 6 4 a v c 有两种方式实现。低频色度信号可用8 x 8 块;对帧内编码,可使用特别的编码类型,低频亮度信号可用1 6 x 1 6 块。 短字长变换:所有以前标准使用的变换要求3 2 位运算,h 2 6 4 a v c 只 使用1 6 位运算。 完全匹配反变换:所有以前标准反变换和变换之间存在一定容限的误 差,因此,每个解码器输出视频信号都不相同,产生小的漂移,最终影响图像 的质量,h 2 6 4 a v c 实现了完全匹配。 基于上下文的熵编码:h 2 6 4 a v c 使用两种熵编码方法,c a v i a 2 ( 上 下文自适应的可变长编码) 和c a b a c ( 上下文自适应二进制算术编码) ,两 种都是基于上下文的熵编码技术。 正是采用了这样一些切实有效的技术方法,h 2 6 4 才具有了前所未有的高压缩 效率。在相同的图像质量下,h 2 6 4 所需码率约为m p e g 2 的3 6 、h 2 6 3 的5 l 、m p e g - 4 的6 l ,并且随着今后实现优化性工作做得更好,其压缩性能方面的 优势将更为突出。这种高压缩效率可以给视频实时通信、数字广播电视、视频存储 等应用带来很多好处,提高人们的视频欣赏质量。当然,与这种高压缩效率相伴的 是h 2 6 4 需要较高的实现复杂度。与m p e g - 2 相比,虽然h 2 6 4 的压缩性能提高一 倍以上,h 2 6 4 的计算复杂度也要提高两倍以上。 9 山东大学硕士学位论文 1 2 2 网络抽象层 网络抽象层负责对压缩数据打包以适应在不同网络环境下传输的要求,规范视 频数据的格式,主要是提供头部信息,以适合各种媒体的传输和存储。n a l 支持各 种网络,包括: 任何使用r t p i p 协议的实时有线和无线i n t e m e t 服务。 m p 4 文件存储和多媒体信息文件服务。 m p e g 2 系统。 其他网。 h 2 6 4 标准本身详细地定义了v c l 层的语法结构和编码工具,而n a l 层是一 个概念层,由于面对的是现在甚至将来的各种传输环境,不可能详细地制订每一种 条件下的n a l 层语法,但这种清晰的层次划分为扩展到各种网络环境奠定了坚实 的基础。 h ,2 6 4 超越以往的视频编解码标准,成为各个厂商竞争的焦点。目前,各主流 厂商纷纷宣布,已经或将在近期推出产品化的h 2 6 4 。在视频广播领域,美国数字 视频压缩和m 传送系统的领先供应商哈雷公司宣布其产品m v l 0 0 编码器可以支持 h 2 6 4 协议,哈雷原来的m p e g 一2 编码器m v l 0 0 硬件平台已经兼容h 2 6 4 ,只需从 软件升级即可。在欧洲,有两个用户已经选用了此种编码器。其中一个是法国的卫 星及直播星运营商c a n a ls a t e l l i t e ,它采用哈雷高性能的数字前端系统在a d s l 上传 输视频业务,m v l 0 0 超低码率编码能力可以实现在多种电信网上传输广播级视频节 目。另外是第一个即将投入正式商业运营的英国v i d e on e t w o r kl i m i t e d 。 1 3 本论文研究内容和主要贡献 本课题主要的研究目的在于分析当前流媒体实现的原理和机制,探讨当前流媒 体实现过程中存在的问题,并结合新的多媒体编码标准h 2 6 4 a v c ,对新型的流媒 体传输进行了研究。 取得的主要结果有以下三个方面: 1 0 山东大学硕士学位论文 1 研究了流媒体技术的原理,研究了当前应用层的流媒体传输协议r t p r t c p 的实现机制,研究了实时流协议r t s p 的机制以及r t s p r t p r t c p 交互工 作的原理。 2 对新的多媒体编码标准h 2 6 4 进行研究,对其编解码方案进行分析,对其 中的网络差错控制技术进行详细分析。在此基础上,对差错控制中的误码 掩盖技术进行分析,提出新的基于数据隐藏的时域误码掩盖算法,在编码 端将m v 、编码模式等信息隐藏入比特流中,在解码端将这些信息提取出来 用于误码掩盖处理中,从而大大提高了视频图像的质量。 3 实现了流媒体协议栈,并以此为基础在嵌入式平台上实现了流媒体客户 端。本客户端可与通用流媒体服务器h e l i xs e r v e r 等相结合构成流媒体系 统,支持的编码格式包括m p e g i 2 4 。 4 在前期研究基础上,我们以以p c 机为平台实现h 2 6 4 a v c 流媒体客户端 与服务器,形成了完整的支持h 2 6 4 编码的流媒体系统。 本文的组织格式如下: 第一章:绪论。介绍了整个课题研究的背景,当前流媒体技术发展的现状以及 当前在p c 上流行的流媒体技术。介绍了新的多媒体编码标准h 2 6 4 a v c 。 第二章:流媒体技术基础。详细分析了应用层的流媒体协议r t s p 、r t p 、 r 爪四的原理和协议细节。 第三章:h 2 6 4 编解码介绍。介绍h 2 6 4 a v c 标准的核心算法,对总体架构、 帧内编码、帧间编码、变换与量化、去块效应滤波器及熵编码等功能单元的实现进 行了分析。 第四章:h 2 6 4 差错控制技术研究。对h 2 6 4 中的差错控制技术进行分析,并对 其中的误码掩盖技术进行了详细研究,提出一种新的误码掩盖方法。仿真结果表明, 新的误码掩盖方法提高了解码端的视频图像质量,增强了h 2 6 4 的网络适应能力。 第五章:h 2 6 4 流媒体系统。在嵌入式平台上实现了流媒体应用层协议,实现 支持m p e g l 2 的流媒体客户端。以p c 机为平台实现支持h 2 6 4 的流媒体服务器与 客户端。 总结与展望:对论文工作进行了总结,并展望今后的工作。 山东大学硕士学位论文 第二章流媒体技术基础 在本章中,我们将对流媒体技术的实现原理进行介绍,并对流媒体协议 r t s p r t p r t c p 进行重点分析,为基于r t s p r t p 瓜t c p 的流媒体系统实现奠定理 论基础。 2 1 流媒体技术 随着现代网络技术的发展,网络开始带给人们形式多样的信息。从在网络上出 现第一张图片到现在各种形式的网络视频、三维动画,人们的视听觉在网络上得到 了很大的满足。但人们又面临着另外一种不可避免的尴尬:在网络上看到生动清晰 的媒体演示的同时,不得不为等待传输文件而花费大量时间。为了解决这个矛盾, 一种新的媒体技术应运而生,这就是流媒体技术。 实现流媒体的关键技术是流式传输【6 】。流式传输的定义很广泛,主要是指通过 网络传送媒体( 如视频、音频) 的技术总称。当前t c p i p 以包传输为基础,实行 异步传输,一个实时音频视频源或存储的音视频文件会要被分解为许多数据包进行 传输。由于网络是动态变化的,各个数据包选择的路由可能不尽相同,故到达客户 端的时间延迟也就不等,甚至先发的数据包可能后到。为此,流媒体技术必须使用 缓存系统来弥补延迟和抖动的影响,并保证数据包的顺序正确,使媒体数据能连续 输出,而不会因为网络暂时拥塞使播放出现停顿。通常高速缓存所需容量并不大, 因为高速缓存使用环形链表结构来存储数据:通过丢弃已经播放的内容,流可以重 新利用空出的高速缓存空间来缓存后续尚未播放的内容。 实现流式传输方法有顺序流式传输和实时流式传输。一般说来,如使用h t t p 服务器,文件即通过顺序流发送;如果使用流式传输媒体服务器,或应用如r t p 等 实时传输协议来传输,即为实时流式传输。采用哪种传输方法依赖于需求,这两种 方法具有不同的特点:顺序流式传输是顺序下载,用户可在下载文件的同时观看媒 体文件,但是在给定时刻,用户只能观看已下载的部分,而不能跳到还未下载的部 分。顺序流式传输不像实时流式传输在传输期间根据用户连接的速度作调整。由于 标准的h 1 v r p 服务器可发送这种形式的文件,也不需要其他特殊协议,经常被称作 1 2 山东大学硕士学位论文 h 订p 流式传输。顺序流式传输比较适合传输短小,顺序性较强的视频,比如广 告,节目介绍等,而不适合长片段和有随机访问要求的视频节目,如讲座、演说和 演示等,它也不支持现场广播。 实时流式传输可保证媒体信号带宽与网络连接匹配,可实时观看节目。实时流 与 i t t p 流式传输不同,它需要专用的流媒体服务器与传输协议。实时流式传输总 是实时传送,特别适合现场事件,也支持随机访问,用户可对观看内容进行选择性 观看,可以实现快进快退等。 流式传输的实现需要合适的传输协议。由于t c p 对可靠性的支持,因此传输需 要较多的开销,不太适合传输实时数据。在流式传输的实现方案中,一般采用 r t s p t c p 来传输控制信息,而用r t p u d p 来传输实时多媒体数据。 流式传输的过程如下:用户选择某一流媒体服务后,w e b 浏览器与w e b 服务 器之间使用h t t p f r c p 交换控制信息,以便把需要传输的实时数据从原始信息中检 索出来;然后客户机上的w e b 浏览器启动客户端播放器,使用h t i p 从w e b 服务器 检索相关参数对播放器进行最初的初始化。这些参数可能包括目录信息、音视频数 据的编码类型和音视频检索服务器地址等。而后客户端与流媒体服务器通过r t s p 协 议建立连接,r t s p 协议提供了快进、快倒、暂停及录制等操纵播放功能。连接建立 后,客户端通过r t p 协议进行数据传输,并按照r t c p 协议将当前网络状况反馈给 服务器端。一旦音视频数据抵达客户端,客户端播放器即可进行解码播放。 l 浏览器卜 煤体h k 傣愈 l 插破器卜 存r - _ ;l 肚务器端 图2 1 流媒体基本原理 需要说明的是,在流式传输中,之所以使用r t s p f f c p 和r t p u d p 两种不同 的通信协议与流媒体服务器建立联系是因为这样可以实现传输信令和传输媒体数据 分开,符合当今网络传输的趋势,更加便于控制。实现流式传输一般都需要专用服 务器和播放器,其基本原理如图2 1 所示。 山东大学硕士学位论文 目前的p 网络在很多方面并不适合多媒体传输,特别是实时多媒体传输。为了 保证对网络拥塞、时延和抖动极其敏感的流媒体业务在无连接的i p 网络中的服务质 量,必须采用合适的协议。传输协议是流媒体技术的一个重要组成部分,也是基础 组成部分。下面介绍我们将用到的几种基本应用层流媒体传输协议。 2 2 实时流协议( r t s p ) r t s p ( r e f lt i m es t r e a m m gp r o t o c 0 1 ) 【7 】协议定义了如何有效地通过m 网络传 送多媒体数据,是一种客户端到服务器端的多媒体描述协议。 r t s p 是由r e , n e t w o r k s 和n e t s c a p e 以及哥伦比亚大学共同提出的。它是从 r e a l n e t w o r k s 的”r e a l a u d i o ”和n e t s c a p e 的”l i v e m e d i a ”的实践经验发展而来的。第 一份r t s p 协议由i e t f 在1 9 9 6 年8 月9 日正式提交后作为i n t e r n e t 的标准,在 此后此协议经过了很多明显的变化。 作为一个应用层协议,r t s p 提供了一个可供扩展的框架,它的意义在于使得 实时流媒体数据的受控和点播变得可能。总的说来,r t s p 是一个流媒体表示协 议,主要用来控制具有实时特性的数据发送,它本身一般并不传输数据,丽是必须 依赖于下层传输协议所提供的某些服务。r t s p 可以对流媒体提供诸如播放、暂 停、快进等操作,它负责定义具体的控制消息、操作方法、状态码等,此外还描述 了与r t p 间的交互操作。 由r t s p 控制的媒体流集合可以用s d p ( s e s s i o nd e s c f i p f i o np r o t o c n ) 【8 】来表示, s d p 描述了流媒体服务器提供给客户机的一个或者多个媒体流的信息,其中可能包 含了各个媒体流的相关信息,如数据编解码算法、网络地址、媒体流的内容等。 虽然r t s p 服务器同样也使用标识符来区别每一流连接会话( s e s s i o n ) ,但r t s p 连接并没有被绑定到传输层连接( 如t c p 等) ,也就是说在整个r t s p 连接期间, r t s p 用户可打开或者关闭多个对r t s p 服务器的可靠传输连接以发出r t s p 请求。 此外,r t s p 连接也可以基于面向无连接的传输协议( 如u d p 等) 。r t s p 流控制 的流可能使用r t p ,但r t s p 操作并不依赖用于携带连续媒体的传输机制。r t s p 在语法和操作上与h t t p 1 1 类似因此h t t p 的扩展机制【9 - l o l 大都可加入r t s p 。 1 4 山东大学硕士学位论文 2 2 1r t s p 支持的操作 r t s p 协议目前支持以下操作: 1 检索媒体:允许用户通过h t r p 或者其它方法向媒体服务器提交一个 s d p 请求。如请求是基于组播的,则s d p 描述就包含用于该媒体流的组 播地址和端口号;如果是基于单播的,则只需要提供目的地址。 2 邀请加入:媒体服务器可以被邀请参加正在进行的会议,或者在表示中 回放媒体,或者在表示中录制全部媒体或其子集,非常适合于分布式教 学。 3 添加媒体:通知用户新加入的可利用媒体流,可以实时更新,与 h t t p i 1 类似,r t s p 请求也可以交由代理,通道或者缓存来进行处 理。 2 2 2r t s p 协议的特点 总体看来,我们可以总结出r t s p 具有以下显著特点: 1 r t s p 是应用层协议,与r t p 、r t c p 协作来完成流式服务。 2 r t s p 有很大的灵活性,可被用在多种操作系统上,它允许客户端和不同 厂商的服务平台交互。 3 r t s p 在体系结构上位于r t p 和r t c p 之上,它使用r t p 完成数据传 输。它将流式媒体数据可控制的通过网络传输到客户端。 4 r t s p 可以保持用户计算机与媒体服务器之间的固定连接,用于客户端与 服务器双向通信。 5 提供类似“v c r ”形式的例如暂停、快进、倒转、跳转等操作。操作的 资源对象可以是直播流也可以是存储片段。 6 r t s p 还提供了选择传输通道,如使用u d p 还是t c p 。 1 5 山东大学硕士学位论文 2 2 3r t s p 的可扩展性 并不是所有媒体服务器有着相同的功能,因此媒体服务器有必要支持不同请求 集,这就是r t s p 的可扩展性。r t s p 可有如下三种方式扩展: 1 以新参数扩展。如用户需要拒绝通知,而方法扩展不支持,相应标记就 加入要求的段中。 2 加入新方法。如信息接收者不理解请求,返回错误代码,发送者不应再 次尝试这种方法。用户可使用o p t i o n s 方法查询服务器支持的方法。 服务器使用公共响应头列出支持的方法。 3 定义新版本协议,允许改变所有部分( 除了协议版本号位置) 。 2 2 4r i s p 的连接状态 r t s p 可以控制通过单独协议发送的流,数据流通道与控制通道无关。例如, r t s p 控制可通过t c p 连接,而数据流通过u d p 。因此,即使媒体服务器没有收到 请求,数据也会继续发送。在连接生命期,单个媒体流可通过不同t c p 连接顺序发 出请求来控制。所以,服务器需要维持能联系媒体流与r t s p 请求的连接状态。 r t s p 中很多方法与状态无关,但下列方法在定义服务器流资源的分配与应用上起 着重要的作用: 1 s e t u p :让服务器给流分配资源,启动r t s p 连接。 2 p l a y r e c o r d :启动s e t u p 分配流的数据传输。 3 p a u s e :临时停止流,而不释放服务器资源。 4 t e a r d o w n :释放流的资源,r t s p 连接停止。 标识状态的r t s p 方法使用连接头段识别r t s p 连接,为响应s e t u p 请求,服 务器连接产牛连接标识。 建立r t s p 连接后,客户端发送d e s c r i b e 给服务器,其中包含了点播文件的 u r l 。如果存在认证步骤,服务器就会返回一个错误码,接着,客户端会将用户输 入的用户名和密码包含进r t s p 包并再次发送d e s c r i b e 。服务器收到后会传送媒 体描述文件s d p 到客户端播放器。客户端读取s d p 描述文件来配置音频、视频解 码同步信息,例如:文件名、网络类型、r t p 数据传输通道端口号、编码类型、采 1 6 山东大学硕士学位论文 样率等。在配置好音视频相关信息后,客户端发送s e t u p 方法给服务器,配置相 关的网络传输协议,传输方式和端口等信息。最后在创建好接收解码线程后,客户 端发送p l a y ,通知服务器往本地r t p 接收端口发送音视频数据。会话结束后,客 户端发送t e a r d o w n 到服务器断开连接。此外,在会话期间,客户端可以通过改 变p l a y 指令的参数,以及p a u s e 指令实现播放暂停、跳跃等v c r 功能。 2 3 实时传输协议( r t p ) 盯p ( r e a l - t i m et r a n s p o r tp r o t o c 0 1 ) 1 l 】是用于i n t e m e t 上针对多媒体数据流的一 种传输协议。它在网络体系中的位置可以从图2 2 看出。 图2 2r t p 与各种网络协议的关系 r t p 协议最初是在7 0 年代为了尝试传输声音文件,把包分成几部分用来传输 语音、时间标志和队列号。r t p 第一版本在1 9 9 1 年8 月发布,随着实践的发展, r t p 协议也不断的得到改进,到目前为止最新的版本是r f c 3 5 5 0 。 r t p 被定义为传输音频、视频、模拟数据等实时数据的传输协议。最初设计是 为了数据传输的多播,但是它也可用于单播。与传统的注重高可靠性数据传输的传 输层协议相比,它更加侧重数据传输的实时性。r t p 通常使用u d p 来传送数据,但 r t p 也可以在t c p 或a t m 等其他协议之上工作。当应用程序开始一个r t p 会话时 将使用两个端口:一个给r t p ,一个给r t c p 。r t p 本身并不能为按顺序传送数据包 提供可靠的传送机制,也不提供流量控制或拥塞控制,它依靠r t c p 提供这些服务。 从应用开发的角度来看,可把r t p 执行程序看成是应用程序的一部分,因为一 般必须把r t p 集成到应用程序中【1 2 1 。在发送端,把执行r t p 协议的程序写入到创 建r t p 数据包的应用程序中,然后应用程序把r t p 数据包发送到u d p 层;同样, 在接收端,r t p 数据包通过u d p 输入到应用程序,因此实践过程中一般不把r t p 协议作为一个单独的协议层来实现。 1 7 山东大学硕士学位论文 2 3 1r t p 数据格式 r t p 协议负责对流媒体数据进行封包并实现媒体流的实时传输,每一个r t p 数 据报都由头部( h e a d e r ) 和负载( p a y l o a d ) 两个部分组成,其中头部前1 2 个字节 的含义是固定的,而负载则可以是音频或者视频数据。 图2 3r t p 头部格式 r t p 数据报的头部格式如图2 3 所示。其中比较重要的几个字段及其意义如下: s s r c :同步源标识符( s y n c h r o n i z a t i o ns o u r c ei d e n t i f i e r ,s s r c ) 字段的长度为3 2 位,用来标识r t p 数据包流的起源。r t p 会话期间的每个数据包流都有一个清楚的 s s r c ,s s r c 不是发送端的口地址,而是在新的数据包流开始时源端随机分配的 一个号码。c s r c 标识紧跟在r t p 固定头部之后。r t p 协议允许在同一个会话中存 在多个数据源,它们可以通过r t p 混合器合并为个数据源。例如,可以产生一个 c s r c 列表来表示一个电话会议,该会议通过一个r t p 混合器将所有讲话者的语音 数据组合为一个r t p 数据源。 1 8 表2 1 目前r t p 所能支持的音频负载类型 ” m t 州l 翟辩。k b 挎s | 0 n m ”i 8埘 “”6 i 8j r 2 “7 川 l 3 j 2 3 州 l 3 ,2 轴 l ma 4 7i p ( l 824 9 “让2 l 8 端6 4 ”“”l ” 1 5“” l 8 m 山东大学硕士学位论文 表2 2 目前i u 甲所能支持的视频负载类型 ,i 设堤赫。j i 残w : ,t 2 6 l “o “ 3 1 l “2 甜 ” i 。“ ” i ”“ “ l “” 负载类型( p t ) :负载类型( p a y l o a dt y p e ) 的长度为7 位,用来标明i 汀p 负载 的格式。r t p 可支持1 2 8 种不同的负载类型。对于声音流,这个字段用来指示声音 使用的编码类型,例如p c m 、自适应增量调制或线性预测编码等等。如果发送端在 会话或者广播的中途决定改变编码方法,发送端可以通过这个字段来通知接收端。 表2 1 t 1 3 1 列出了部分l m 支持的声音负载类型,包括所采用的编码算法,采样频 率、承载通道等。例如,类型2 表明该r t p 数据包中承载的是用i t u0 7 2 1 算法编 码的语音数据,采样频率为8 0 0 0 i - l z ,并且采用单声道。 对视频流,负载类型可以用来指示视频编码的类型,例如m o t i o nj p e g 、 m p e g - i 、m p e g - 2 或者h 2 3 1 等等。发送端也可以在会话期间随时改变视频的编码 方法。表2 2 列出了目前部分r t p 所能支持的视频负载类型。 序列号( s e q u e n c en u m b e r ) :序列号字段的长度为1 6 位。用来为接收方提供探 测数据丢失的方法,每发送一个r t p 数据包序列号就加1 ,接收端可以用它来检查 数据包是否有丢失,或者按序列号处理数据包。例如,接收端的应用程序接收到一 个r t p 数据包流,这个r t p 数据包在序列号8 6 和8 9 之间有一个间隔,接收端可 以知道数据包8 7 和8 8 已经丢失,并且采取措施来处理丢失的数据。但如何处理丢 失的数据是由应用程序来负责的,r t p 协议本身并不负责数据的重传等处理。 时间戳( t i m e s t a m p ) :时间戳字段的长度为3 2 位,记录了负载中第一个字节的 采样时间,接收方能够根据时间戳来确定数据的到达是否受到了延迟抖动的影响, 并且在接收端为播放提供同步功能。具体如何来补偿延迟抖动则需要应用程序进行 相应的处理。 通过r t p 数据报的格式不难看出,它包含了传输媒体的类型、格式、序列号、 时间戳等信息,这些都为实时的流媒体传输提供了相应的基础。r t p 协议的目的是 提供实时数据的端到端传输服务,因此在r t p 中没有连接的概念,它可以建立在底 1 9 山东大学硕士学位论文 层的面向连接或面向非连接的传输协议之上;r t p 也不依赖于特别的网络地址格 式,而仅仅需要底层传输协议支持组帧( f r a m i n g ) 和分段( s e g m e n t a t i o n ) ;另外 r t p 本身不提供任何可靠性机制,这些都要由r t c p 或者应用程序来保证。 2 3 2r t p 工作过程 r t p 协议从上层接收流媒体信息码流( 如h 2 6 3 ) ,装配成r t p 数据包发送给下 层,而由下层协议提供r t p 和r t c p 的分流。如在u d p 中,r t p 一般使用一个偶 数号端口,而相应的r t c p 使用其后的奇数号端口。r t p 数据包没有长度限制,它 的最大包长只受下层协议的限制。 如图2 4 所示,r t p 可以看成是传输层的子层。由多媒体应用程序生成的音视 频数据被封装在r t p 数据包中,每个r t p 数据包被封装在u d p 消息段中,然后再 封装在m 数据包中。数据包的打包过程可以用图2 5 来表示。 l m a ch e a d e r ! i ph s a c l e ru d p l ”a d e rr t pm e s s a g e ; 图2 4r t p 封装格式 在r t p 工作时一般分为两个层次:会话和流。一个r t p 会话包括传给某个指 定目的地对的所有通信量,而发送者可能有多个( i v 地址,协议端口号) 。如果口地 址是一个单播地址,r t p 会话的接收方就只有一个;如果口地址是一个组播地址, 其接收方就可能有多个。从同一个源发出的r t p 数据包序列称为流。一个r t p 会 话可能包含一个或多个独立的r t p 流,这些流都会被指定传送到同一个目的地址和 协议端口。例如,在一个多路音频会议中,每个与会者都可能发出独立的音频流。 图2 5r t p 打包过程 应用层 俸输层 最络层 物理层 山东大学硕士学位论文 一般应用可能发送多个流。例如,一个源可能需要同时传输多种类型的数据( 如 音频和视频) ,或者需要用多种编码发送同一组数据( 例如,使用高、低两种质量传 输同一视频流) 。在接收端为了保证接收到的r t p 数据包都是与当前流相关联的, 必须对收到的r t p 数据包进行分用,一般有两个级别的分用。会话分用发生在传输 层。一个希望接收r t p 数据包的应用必须创建一个会话,并指定相应的m 地址和 协议端口号。应用软件根据地址进行会话级分用,也就是用传输协议( 如u d p ) 检查 每个数据包的口地址、协议端口号等信息,从而判断出客户端的哪个应用来接收此 数据。流分用发生在数据包已经交给r t p 应用程序之后。r t p 应用程序使用同步源 标识( s s r c ) 和分组类型把同一个流中的数据包组合起来。只有数据包与流建立起关 联后,才能用序列号和时间戳字段对数据包进行排序,并决定回放的具体时间。 2 3 3r t p 实时机制分析 事实上,威胁多媒体数据传输的一个很严重的问题就是数据到达的时间不可预 料,而流媒体的回放又需要数据的实时到达。r t p 协议提供的时间戳、序列号以及 其它的结构可以用于控制实时数据的播放。 在流的概念中“时间戳”是最重要的信息。发送端按照即时的采样在数据包里 隐蔽地设置了时间戳。在接收端收到数据包后,就按照时间戳以正确的速率恢复成 原始的实时数据。但是r t p 本身并不负责同步,r t p 只是传输层协议,为了简化传 输层处理,提高该层的效率,将部分传输层协议功能( 比如流量控制) 上移到应用 层完成,同步就是如此。r t p 没有传输层协议的完整功能,不提供任何机制来保证 实时传输数据,不支持资源预留,也不保证服务质量,r t p 报文甚至不包括长度和 报文边界的描述。 r t p 协议和u d p 二者共同完成传输层协议功能。u d p 协议只是传输数据包, 而不管数据包传输的时间顺序。i m 的协议数据单元是用u d p 分组来承载的,在 承载r t p 数据包时,一帧数据可能被分割成几个具有相同时间戳的包,由此可以知 道时间戳并不是必需的。而u d p 的多路复用让r t p 协议支持显式的多点投递,可 以满足多媒体会话的需求。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论