(信息与通信工程专业论文)基于directshow技术的网络视频播放器设计.pdf_第1页
(信息与通信工程专业论文)基于directshow技术的网络视频播放器设计.pdf_第2页
(信息与通信工程专业论文)基于directshow技术的网络视频播放器设计.pdf_第3页
(信息与通信工程专业论文)基于directshow技术的网络视频播放器设计.pdf_第4页
(信息与通信工程专业论文)基于directshow技术的网络视频播放器设计.pdf_第5页
已阅读5页,还剩53页未读 继续免费阅读

(信息与通信工程专业论文)基于directshow技术的网络视频播放器设计.pdf.pdf 免费下载

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

文档简介

浙江大学硕士学位论文 摘要 流媒体技术改变了网络原有的资料下载方式,使人们不必经过漫长地 等待就可以看到图像、听到声音。近年来,流媒体技术在社会各个部门的 应用越来广泛,如多媒体会议、视频点播( v o d ) 、远程教育、远程医疗、 远程监控、网络电台和电视台等领域,因此有必要研究一套具有通用性和 高效性的视频网络播放系统。 通过比较各种方案,选定了以c o m 技术为基础的d i r e c t s h o w 架构来 实现视频的采集和网络播放。d i r e c t s h o w 基于组件对象模型技术,能很灵 活地控制音视频的效果,支持多样的媒体类型,提供高品质的多媒体流回 放。利用它实现流媒体服务端和客户端处理,能提高系统的通用性和可扩 展性。 视频传输离不开编解码技术,h 2 6 4 是i t u ta n di s 0 联合发布的最 新标准,其具有更好的压缩性能,适合用作多媒体压缩。本课题充分地介 绍了这一新标准,并开发了应用于d i r e c t s h o w 的编码f i l t e r 。 关键词:流媒体;c o m ;d i r e c t s h o w :h 2 6 4 浙江大学硕士学位论文 a b s t r a c t t h es t r e a m i n gm e d i ah a sa lr e a d yc h a n g e dt h ee x is t i n gd o w n l o a dw a y o ft h en e t w o r km a t e r i a ls ,p e o p l ec a ns e et h ep i c t u r ea n dh e a rt h es o u n d b u tn e e d n tw a itf o rv e r yl o n gt i m e i nr e c e n ty e a r s ,t h ea p p l i c a t i o n o ft h es tr e a m i n gm e d i at e c h n o l o g yi ne a c hd e p a r t m e n to ft h es o c i e t yi s m o r ea n dm o r ee x t e n s i v e ,s u c ha sm u lti m e d iam e e ti n g ,v i d e oo nd e m a n d ( v o d ) ,f i e l d ss u c ha st e l e e d u c a t i o n ,t e l e - m e d i c i n e ,c o n tr 0 1 1 i n g 1 0 n g r a n g e l y ,t h en e t w o r kr a d i os t a t i o na n dt vs t a t i o n ,e t c ,s oit is n e c e s s a r y t o s t u d y as e to fv i d e otr a n s m is s i o n s y s t e m sw it h c o i i i l o n a b i1it ya n de f f i c i e n c y t h r o u g hc o m p a r i n gw it hv a r i o u ss c h e m e s ,w es e l e c td ir e c ts h o wb a s e d o nc o mt e c h n o l o g yt or e a li z ev i d e oa c q u i s i t i o na n dn e t w o r kb r o a d c a s ts d ir e c t s h o wisb a s e do nc o m p o n e n to b je c tm o d e lt e c h n o l o g y ,itc a nc o n tr o l t h ee f f e c to ft h ev i d e ov e r yf l e x i b l y ,s u p p o r tt h ev a r i o u sm e d iat y p e a n do f f e rt h eh i g h - q u a lit ym u lti m e d i ap la y b a c k itc a ni m p r o v e c o 舢o n a b i1it ya n de x p a n s i b i1it yo ft h es y s t e m t h ev i d e otr a n s m is si o nd e p e n d so nc o d et e c h n o l o g y ,h 2 6 4ist h e n e w e s tv i d e oc o d i n gs t a n d a r do fi t o - ta n di s o c o m p a r e dw it hp r i o r st a n d a r d s ,t h isjo i n tst a n d a r dh a sb e tt e rc o m p r e s si o np e r f o r m a n c e t h is t h e s isi n tr o d u c e st h isn e ws t a n d a r d ,a n dh a v ed e v e l o p e dt h ec o d ef il t e r b a s e do nd ir e c ts h o w k e y w o r d s :s t r e a m i n gm e d i a ;c o m ;d i r e e t s h o w :h 2 6 4 1 l 一 浙江大学硕士学位论文 第1 章概述 多媒体数据包括文字、图形、语音、图像等等,计算机对多媒体数据进行处理,要解决 信息采集、编码、压缩、存储、传输、解压缩、解码、信息重现等等一系列的问题,当然, 在这些方面,现在已经有了许多很好的技术和标准。由于图像所包含的信息量太大,象电影、 电视等节目的视频文件仍然需要很大的存储空间,这使得视频文件在i n t e m e t i n t r a n e t 上进行 传输有更多的技术困难。随着时代的进步,这些技术问题也不断地得到解决。 早些年,人们要观看i n t e m e t i n t r a n e t 上的视频节目需下载整个视频文件。通过t c p i p 协议下载文件时,服务器会按照一定的次序将文件分成若干独立的数据包,然后依次发送出 去,而客户端的程序会将这些数据包重新组装起来,最终形成和原来完全一样的文件。这时, 人们才可以操作文件。 近年来,流媒体技术( 也称流式传输技术) 的诞生和逐步成熟使得人们只需等待很短的时 间就能以边接收边播放的方式欣赏视频节目。 1 1 流媒体的定义 所谓流媒体是指采用流式传输的方式在i n t e r n e t i n t r a n e t 播放的媒体格式,如音频、视频 或多媒体文件。流媒体在播放前并不下载整个文件,只将开始部分内容存入内存,在计算机 中对数据包进行缓存并使媒体数据正确地输出。流媒体的数据流随时传送随时播放,只是在 开始时有些延迟。显然,流媒体实现的关键技术就是流式传输,流式传输主要指将整个音频 和视频及三维媒体等多媒体文件经过特定的压缩方式解析成一个个压缩包,由视频服务器向 用户计算机顺序或实时传送。在采用流式传输方式的系统中,用户不必像采用下载方式那样 等到整个文件全部下载完毕,而是只需经过几秒或几十秒的启动延时即可在用户的计算机上 利用解压设备对压缩的多媒体文件解压后进行播放和观看。此时多媒体文件的剩余部分将在 后台的服务器内继续下载。与单纯的下载方式相比,这种对多媒体文件边下载边播入的流式 传输方式不仅使启动延时大幅度地缩短,而且对系统缓存容量的需求也大大降低,极大地减 少用户等待的时间。 。 1 2 流媒体主要应用 流媒体技术广泛用于互联网多媒体新闻发布、在线直播、视频监控、视频点播、远程教 育、远程医疗、网络电台、实时视频会议等,下面对一些典型应用做一简单介绍。 1 、远程教育 电脑的普及、多媒体技术的发展以及互联网的迅速崛起,给远程教育带来了新的机遇。 在远程教学过程中,最基本的要求是将信息从教师端传递到远程的学生端,需要传递的信息 可能是多元化的,这其中包括各种类型的数据:如视频、音频、文本、图片等。 通过流式媒体技术,学生可以在家通过计算机和网络就可以参加到远程教学当中来。远 程教育是对传统教育模式的一次革命。它能够集教学和管理于一体,突破了传统“面授”的 局限,为授课者和学习者在空间和时间上都提供了便利。 2 、视频会议 一1 一 浙江大学硕上学位论文 视频会议,是指两个或两个以上不同地方的个人或群体,通过传输线路及多媒体设备, 将声音、影像及文件资料互传,达到即时互动的沟通,以完成会议目的。视频会议系统旨在 为分散于不同地区的多个用户提供一个很好的讨论环境,使人们足不出户就可与远在天涯的 朋友展开讨论,举行会议。视频会议系统多媒体信息的强大表现力和计算机的交互、管理能 力极大地方便了与会者。 3 、视频监控 以前视频监控的被监控点和控制点之间的范围只能限制在企业、大楼的内部,使用模拟 信号的有线电视技术。在宽带i p 投入运行后,将这个范围扩大为城域范围,采用数字信号传 输。以计算机网络为传输媒介,在远端获取图像信号,由p c 系统进行压缩处理后,使用网 络传输协议传回本地。与硬盘录像、各种探头、云台镜头控制结合起来,以达到远程监控的 目的。 4 、远程医疗和会诊 医疗手段和诊断水平的高低将关系到全人类的身体健康。在分散于异地的医院之间部署 视频会议系统,不仅可提高医疗质量,降低医院的运行成本,而且还可提高医疗诊断的及时 性、准确性,最终达到远程“现场”协作会诊医疗的目的。远程医疗可将各地医院及医疗设 备相互连接起来,实现高清晰医疗信息传送、异地医疗诊断、疑难病症专家会诊、手术观摩 教学等医疗卫生活动的现代化信息网络系统。远程医疗不仅能够节约大量时间及交通费用, 更能充分利用大、中医院的人力和技术资源,提高医疗卫生条件不发达地区的医疗服务水平。 1 3 流媒体发展现状 由于流媒体的应用具有巨大的市场,国际上各大公司都研发了自己的流媒体平台。比较 有代表性的有: r e a n e t w o r k s 公司的r e a l s y s t e m 、微软公司的w i n d o w sm e d i a 、苹果公司的 q u i c k i m e t 5 1 。 r e a n e t w o r k s 公司是世界领先的网上流式视音频解决方案的提供者,提供从制作端、服 务器端到客户端的所有产品。它的客户端播放器r e a l p l a y e r 的全球注册人数已经超过了一亿 六千万人。r e a n e t w o r k s 公司最新的网上流式视音频解决方案叫r e a l s y s t e mi q ,r e a l s y s t e m i o 容易安装,在高低带宽均可提供良好的视音频质量,但价格较贵。作为流媒体领域的主导 厂商,r e a n e t w o r k s 公司凭借其优秀的技术,占领了一多半的网上流式视音频点播市场。 微软公司推出的w i n d o w sm e d i a 技术以其方便性、先进性、集成性、低费用等特点,逐 渐被人们所认识。w i n d o w sm e d i a 的前身是微软公司的n e t s h o w 产品,随着流媒体的广泛应 用,推出了整套的流媒体制作、发布和播放产品,其服务器端的w i n d o w sm e d i as e r v e r 产品 在w i n d o w sn ts e r v e rp a c k4 上可以安装,并且集成在w i n d o w s2 0 0 0s e r v e r 中。w i n d o w s m e d i a 产品的一大特点是其制作、发布和播放软件与w i n d o w sn t 2 0 0 0 9 x 集成在一起,不需 要额外购买。微软的流视频解决方案在微软视窗平台上是免费的,制作端与播放器的视音频 质量都上佳,而且易于使用,但目前在整体解决方案方面和r e a l n e t w o r k 的产品相比还有差 距,且只能在微软视窗平台上使用。由于微软大力推行c o m d c o m 技术,w i n d o w s 平台本 身也采用了很多c o m 技术,而且随着新版本的w i n d o w s 产品的推出,c o m 化的程度会越 来越高。其中,w i n d o w sm e d i a 就是使用了c o m 技术完全组件化的,其整个视音频的应用 一2 一 浙江大学硕士学位论文 解决方案定义为d i r e c t s h o w 架构。 a p p l e 公司的q u i c k t i m e 于1 9 9 1 年推出,是a p p l e 公司面向专业视频编辑、w e b 网站创 建和c d r o m 内容制作领域开发的多媒体技术平台,q u i c k t i m e 支持几乎所有主流的个人计 算平台,是数字媒体领域事实上的工业标准,是创建3 d 动画、实时效果、虚拟现实、a v 和其他数字流媒体的重要基础。目前q u i c k t i m e 播放器己经在全世界被众多的m a c 及视窗 用户所采用,是仅次于r e a lp l a y e r , w i n d o w sm e d i ap l a y e r 的流视频播放器。q u i c k t i m e 支 持开放标准r t p 、r t s p 协议及h t t p 流。 此外,还有i b m 公司的v i d e o c h a r g e r ,o r a c l e 公司的o v s ,c i s c 。公司的i p t v ,s g i 公司的k a s e n n am e d i a b a s e 和s u n 公司的s u ns t o r e d g e 等等,这些大公司的流媒体平台都提 供了很强的功能。 目前,由于多种视频标准的共存,现有的大多数流媒体系统都尽可能支持所有的媒体格 式,在这个基础上,谁提供的服务越好、效率越高,性能强,产品就更具有竞争力。 综上所述,流媒体技术可以说是多媒体技术在网络时代和网络技术结合的产物,具有广 泛的应用和巨大的市场,具有很重要的研究价值。而且流媒体技术目前正处在一个发展时期, 没有统一的标准和市场垄断,这也使得本课题的研究更具有实际意义。 1 4 技术方案选定 本课题选用d i r e c t s h o w 架构来实现视频的采集和网络播放。d i r e c t s h o w 基于c o m 技术, 其基本的功能模块都是c o m 组件,通过相应的组件可以很灵活地实现各种功能需求。 w i n d o w s 平台中提供了一些视音频编解码f i l t e r ,而且很方便安装一些第三方的视音频编解码 组件,实现对大多数视音频编码标准的支持。采用d i r e c t s h o w 架构有利于的系统后期的维护 和升级,也便于系统工程的扩充。由于w i n d o w s 平台在操作系统中的统治地位,现有大部分 国内的公司自主的基于w i n d o w s 平台的流媒体系统也都采用了d i r e c t s h o w 。 1 5 视频编码方案 目前,在众多视频编码算法中,影响最大应用最广的是i s o 的m p e g 系列和i t u t 的 h 2 6 x 系列标准。如:i t u th 2 6 1 ,h 2 6 3 和i s o i e c 的m p e g 一1 和m p e g 2 t 1 7 j 等。 这些标准覆盖了很大的视频速率范围和应用领域,支持不同速率、不同的图像质量要求 等条件的视频业务,能够满足包括电视会议、视频电子邮件、可视电话、广播级视频应用等 不同要求的服务。随着视频应用需求的不断发展,视频压缩技术也有了很大的提高,新出现 的压缩标准有了更高的压缩效率。 一3 一 浙江火学硕二i :学位论文 | 釉o 燃, b 。,卜一卜狲0 i ,。 ls t a n d a r d s i 1 器8 4 9 霸移 霉为霸 9 弼1 9 9 21 飘辩 聪哆t 9 9 82 0 0 02 0 0 22 0 0 4 图卜l 音视频标准发展史 下而按时间的顺序对各个视频编码标准作简单的介绍。 h 2 6 1 1 9 8 8 年1 0 月,国际电视电话会议咨询委员会( c c i t t ) 耳p 现在( i t u 。t ) 提出了h 2 6 1 建 议,主要应用于px6 4 k b p s ( p = l ,2 0 ) ,一般在3 2 - 3 8 4 k b p s 时图像可达c i f ,q c i f l 5 帧每秒( f s ) ,总体上图像质量略逊- j 二m p e g 1 ,适合在i s d n ,d d n 、p s t n 网上传输运动 的图像。 h 2 6 1 使用了帧内图像、帧间误差预测、运动补偿、d c t ,变字长编码等技术,它为后 来的m p e g 1 和m p e g 一2 的视频压缩标准提供了基础。 但它也存在不足,它不适用一j - 不同信道( 传输或存储) 的应用,误码率允许范围小,而且 不含声音编码算法。 m p e g - l 1 9 9 1 年11 月m p e g ( 运动图像专家组) 制定m p e g 1 标准。m p e g 1 标准是将数字视频信 号和伴音信号在一个可以接受的质量下,能被压缩到位率约1 5 m b i t s 的一个m p e ge o - 流。 m p e g 一1 标准只规定了码流语法和解码过程,用户可以很好地利用这个语法的灵活性来设计 高质量的编码器。编码器的设计中一些重要参数,如运动估值、白适应量化和码流速率控制 等可以由用户自由确定。 m p e g 标准是在h 2 6 1 视频编码算法的基础上改进并发展的。m p e g 1 改进的主要内容 是增加了b 图像帧( 双向预测) 和图像组( g o p ) ,这些改进具有更高的j 孟缩比,同时定义了编 码算法中各: 具层的语法,使视频的可操作性更灵活。 m p e g 一2 ( h 2 6 2 ) 1 9 9 3 年1 1 月m e p g 提出m p e g 一2 建议草案,其中视频编码部分即h 2 6 2 。m e p g 一2 主 要是针对4 9 m b i t s 运动图像及其伴音的编码标准。 m p e g 2 是一个非常成功的国际标准,它开发了通用的压缩编码方法,定义的不同p r o f i l e 和l e v e l ,可满足不同的图像分辨率及相应的存储成本和处理速度的需要。m p e g 2 标准能广 泛应用于存储媒体、会议电视可视电话、数字电视、高清晰度电视、广播、通信、网络等应 , j 领域。m p e g 一2 是工业标准d v d 的核心标准。它对m p e g 一1 作了重要的改进和扩充。 一d 一 浙江火学硕士学位论文 h 2 6 3 h 2 6 3 是i t u t 于1 9 9 5 年1 1 月提出的更低比特率的视频编码方案,可将图像最低编码 到2 0 k b p s ,h 2 6 1 编码方式采用了区域更新的方法,进一步降低了码流速率,h 2 6 3 在h 2 6 1 的基础上增加了四种编码选项,将码流速率降到1 2 8 k b p s 以下,在9 6 1 2 8 k b p s 的速率上传 输c i f 或q c i f 格式、每秒1 1 5 帧的活动图像,特别适合在电话线上传输质量要求不高的活 动图像。 m p e g 一4 m p e g 组织在1 9 9 3 年7 月开始了m p e g 4 ,“视音频对象编码”的研究。并于1 9 9 9 年5 月形成国际标准,是一种基于对象的视、音频编码标准。m p e g - 4 的本意是制定甚低比特率 的视音频压缩编码标准,如在电话线上传输视频和音频数据。但为了满足现在越来越多的视 听材料要以数字形式进行相互交换而产生的各种需求,它所包含的内容和将要起的作用己经 远远超出了最初的设计思想。m p e g 4 不再是一个单纯的视音频编解码标准,它更多定义的 是一种格式、框架,而不是具体算法,为多媒体数据压缩提供了一个更为广阔的平台,允许 在系统中加入新的算法,为用计算机软件编解码提供了更大的方便。m p e g 4 标准的视频码 率覆盖范围为5 k b i t p s 至5 m b i t p s 。 m p e g 一4 标准视频的主要特征: 1 、基于对象的编码 2 、提供基于对象的交互功能 3 、场景描述 4 、分级功能 5 、差错鲁棒性和差错回避 m p e g - 7 为快速方便地搜索节目,m p e g 制定了一个新标准一m p e g 7 ,它是多媒体内容描述接 口( m u l t i m e d i ac o n t e n td e s c r i p t i o ni n t e r f a c e ) 。m p e g 7 可快速且有效地搜索出用户所需的不 同类型的多媒体资料,主要用于解决以下问题: 1 需要搜索m p e g 4 编码信息中的某套节目时,来自不同领域的一些要求。 2 在m p e g 4 语法中对搜索功能适当支持的一些术语。 3 m p e g 4 编码信息搜索引擎通用工具规格。 m p e g 7 的应用很广泛,既可以用于存储( 在线或离线) ,也可以用于流式应用( 如广播、 将模型加入工n t e m e t 等) ,它可以在实时或非实时环境下应用,在教育、新闻、导游信息、 娱乐、研究业务、地理信息系统、医学应用、购物等等各方面具有潜在的应用能力。 m p e g 2 1 2 0 0 0 年3 月成立的m p e g 一2 1 工作组在酝酿制定m p e g 2 1 标准,其核心目标是使数字多 媒体信息资源能被大范围的网络和设备透明和增值地使用。2 0 0 0 年1 0 月,m p e g 2 1 专家组 提出创造一个能够共同使用的多媒体信息框架。需要完成以下任务: 1 、框架的各成分之间如何关联。 - 5 _ 浙江大学硕士学位论文 2 、整合现有系统中的各种标准以支持多媒体管理的各种协调技术。 3 、开发新的规范使得能够通过网络存取和使用多媒体内容;实现多个交易模型保证服务 模型及收费;保障内容用户的隐私权。 h 2 6 4 ,a v c m p e g - 4p a r t1 0 2 0 0 1 年1 2 月,i t uv c e g 和i s om p e g 合作,成立了联合视频组j o i n tv i d e ot e a m ( j v t ) , 并在原有标准的基础上建立一种新的数字视频压缩格式,命名为h 2 6 4 ,这个标准属于 m p e g 4 多媒体标准的范畴,作为m p e g 多媒体标准的第十部分高级视频编码( a v c ) 。 h 2 6 4 的主要目标是建立一套简洁的解决方案,避免过多的选项和框架结构,提高编码 效率:与其它的标准相比,在相同的还原质量下平均减少5 0 的比特率,提高网络的使用率; 主要面向的市场是移动网络和互联网,可应用于对话的h 3 2 x 业务、流媒体、比特率要求在 o 5 8 m b i t 的人造卫星光缆d v d 业务、以及3 g p p 多媒体通信业务。 1 6 系统模型 系统在功能上分为视频采集、视频压缩、w e b 服务器、网络发布和接收、视频解码及用 户端控制六个模块。 g e t g r a p h f ) 1 : 一2 l 一 浙江大学硕士学位论文 设备枚举器步骤: 1 创建枚举器组件,c l s i d 为c l s i ds y s t e m d e v i c e e n u m ,并获得i c r e a t e d e v e n u m 接e 1 。 2 使用接口方法i c r e a t e d e v e n u m :c r e a t e c l a s s e n u m e r a t o r 为指定的类型目录创建一个枚 举器,并获得i e n u m m o n i k e r 5 】1 6 j 接口指针。 3 然后i e n u m m o n i k e r :n e x t 枚举该类型目录下的设备标识( m o n i k e r ) 。这个方法返回一 个i m o n i k e r 接口指针。 4 调用函数i m o n i k e r :b i n d t o s t o r a g e t 5 】之后就可以访问设备标识的属性,如设备的显示名 字,友好名字等。 5 然后利用i m o n i k e r :b i n d t o o b j e c t 可以将设备绑定成一个f i l t e r 。随后调用 i f i l t e r g r a p h :a d d f i l t e r 将f i l t e r 添加到g r a p h 图中就可以参与工作了。 由于系统采集设备的驱动模型是不确定的( 一般有w d m 和v f w 两种) ;另一方面不同 采集设备它们的f i l t e r 中引脚( p i n ) 的个数可能不一致;还有就是不同总线的采集设备( p c i 、 u s b 、a g p ) 它们的f i l t e r 有不同要求。我们可能还需要接入过滤器s m a r tt e ef i l t e r , s m a r t t e ef i l t e r 作用是将没有p r e v i e w 引脚f i l t e r 的c a p t u r e 引脚分为两支数据流。 比如:同为u s b 摄像头,有些f i l t e r 有两个输出引脚( c a p t u r e 和p r e v i e w ) 1 6 1 ;而有些 f i l t e r 则只有一个输出引脚( c a p t u r e ) 。这里p r e v i e w 引脚用来将做视频预览,c a p t u r e 引脚用 来将输入数据以供编码、保存等用处。 3 1 0 本章小结 本章介绍了d i r e c t s h o w 的体系结构,什么是过滤器,过滤器的种类,过滤器的组成,管 脚p i n ,过滤器中的主要概念,开发过滤器的方法,最后阐述了如何利用d i r e c t s h o w 进行视 频采集,当然短小的篇幅无法将d i r e c t s h o w 介绍得十分透彻。后面将结合过滤器的设计与编 程来进一步学习。 一2 2 浙江大学硕士学位论文 第4 章多媒体网络传输 网络视频监控系统的实现离不开网络实时传输技术,良好的网络通信通道的设计和通信 协议的选择对于远程视频数据传输的实时性以及控制命令的准确性是至关重要的,对于协议 的选择,因为i p 层是通用的i p 协议,所以我们主要从“传输层”入手,常见的传输层协议 主要传输控制协议t c p 、用户数据报协议u d p 、实时传输协议r t p 、实时传输控制协议r t c p 、 资源保留协议r s v p 、实时流协议r t s p 等。 4 1t c p 和u d p 协议 t c p 是t c p i p 体系中的传输层协议,可以提供可靠的、按序传送数据的服务。它定义 了两台计算机之间进行可靠数据传输所交换的数据和确认信息的格式以及计算机为了确保数 据的正确到达而采取的措施。 t c p 是面向数据流的协议。提供的连接是全双工【l3 j 的。t c p 用一对端点标识连接,端点 由主机的i p 地址和该主机上的t c p 端口号组成。由于t c p 使用两个端点标识连接,一台计 算机及其上的某个t c p 端口号可以被多个连接所共享。 源端口目的端口 发送序号 接收序号 数据保u aprs f rc s s y 工 窗口 偏移留 g khtn n 校验和紧急指针 选项和填充 数据 图舡1t c p 报文段的格式 t c p 报文段的格式如图2 2 所示。由图可见,一个t c p 报文分为首部和数据两部分。t c p 报文段首部的前2 0 个字节是固定的,后面由4 n 字节是可有可无的选项( n 为整数) ,因此 t c p 首部的最小长度是2 0 字节。 用户数据报协议u d p 是无连接的协议,传送数据不需要先建立通讯通道,而是直接将数 据送到接收端。发送数据时,u d p 构造一个数据报,然后将它交给i p 软件,便完成所有的 工作,接收数据时,u d p 先要判断接收数据报的信宿端口是否与当前使用的端口匹配,如是, 则将数据报放入相应的接收队列,否则,抛弃该数据报,并向信源端发送出错报文。 正因为u d p 是无连接的,不需要建立连接和撤除连接,所以u d p 通讯的效率很高,但 相应的可靠性却很低,它不提供任何的可靠性处理。鉴于u d p 高效率、低可靠性的特点, u d p 一般用于对传输效率要求较高,而对传输质量要求不高的场合。u d p 在高可靠性、低延 迟的网络上运行的较好。 一2 3 浙江大学硕士学位论文 u d p 有两个字段:数据字段和首部字段。首部字段很简单,只有8 字节,由4 个字段组 成,每个字段都是2 字节,如图2 3 所示。 字节 字节 l l d p 数据报叫i l 首部i数据i i i p 数据报一i 图4 2u d p 报文段的格式 t c p 和u d p 都是属于传输层的协议,但它们却有很大的不同。t c p 是面向连接的传输, 在传输数据前,必须在发送方和接收方问先建立通讯通道,它提供高可靠性的服务。而u d p 是无连接的数据报传输,它不需要建立连接和撤销连接,而直接把数据送到接收端,并且还 取消了重发校验机制,能够达到较高的通讯速率。所以u d p 的主要特点是传输的高效率,但 可靠性却很低。一般情况下,t c p 和u d p 共存于一个网间网中,前者提供高可靠性服务, 后者提供高效率服务,高可靠性的t c p 用于对传输质量要求较高的情形,如文件传输,远程 登陆等;高效率的u d p 用于对传输效率要求较高及网络的可靠性较高的场合,如实时的语音 图像传输。u d p 的可靠性由应用程序提供,因为交换次数不多,即便发生传输错误,必须重 传,应用程序也不会为此付出太大的代价 4 2w i n d o w ss o c k e t 编程 s o c k e t s 原是b s d ( b e r k e l e ys o f t w a r ed i s t r i b u t i o n ) u n i x4 3 为了支持互联网通信而设计的 a p i ,它采用客户服务器模式( c l i e n t s e r v e r ) 1 3 j 的通信机制,使网络客户和服务器方通过 s o c k e t s 实现网络之间的连接和数据交换。w i n d o w ss o c k e t s 是在u n i xs o c k e t s 的基础上发展 起来的,w i n d o w ss o c k e t s 描述定义了一个m i c r o s o t tw i n d o w s 的网络编程接口,它为w i n d o w s t c p i p 提供了b s d 型套接字,除与b s du n i xs o c k e t s 完全兼容外,还包括扩充功能的支持, 通过一组附加的a p i 实现w i n d o w s 式( 即事件驱动) 的编程风格。 s o c k e t s 同时支持数据流s o c k e t s 和数据报s o c k e t s 。数据流s o c k e t s 是t c p 传输协议的接 口,它定义了一种可靠的面向连接的服务,实现无差错、无重复的顺序数据传输。数据报 s o c k e t s 是u d p 数据报服务的接口,它定义了一个无连接的服务,数据通过相互独立的包进 行传输,包的传输是无序的,并且不保证是否出错、丢失和重复。 下面是s o c k e t 进行通信的过程框图。图4 1 是面向连接的时序图,图4 2 是面向无连接 的时序图。 一2 4 浙江大学硕士学位论文 服务器端客户端 s o c k e t ( )s o c k e t ( ) b i n d ( ) 上 l i s t e n o 上 a c c e p t( ) , 倍音二t 盘 1r 建旦】生佞 。 c o n n e c t ( ) 1 r 日巳虚;主世 0 l i 仅,目_ l 肓j k r e c v ( )s e n d ( ) 上 舟键撞。 上 耻台1 吾丐 s e n d 0r e c v o 服务请求0 l c l o s e s o c k e t0 c lo s e s o c k e t ( ) 图4 3 面向连接的通信过程 由图中可以看出,对于t c pc l i e n t s e r v e r 结构,服务器首先启动,然后在某一时刻与服 务器建立连接。服务器与客户开始都必须调用s o c k e t o 建立一个套接字,然后服务器调用 b i n d ( ) 将套接字与一个本地网络地址绑在一起,再调用l i s t e n ( ) 使套接字处于一种被动的准 备接收状态,同时规定它的请求队列长度,之后服务器就可以调用a c c e p t ( ) 来接收客户连接。 客户打开套接字之后,便可以通过调用c o n n e c t ( ) 和服务器建立连接。连接建立之后,客户 和服务器之间就可以调用s e n d 和r e c v o 发送和接收数据。最后,待数据传输结束,双方调 用c l o s e s o c k e t o 关闭套接字。 一2 5 浙江大学硕士学位论文 服务器端客户端 图4 4 面向无连接的通信过程 对于u d pc l i e n t s e r v e r 结构,服务器建立套接字后调用b i n d 0 将套接字与一个本地网 络地址绑在一起,客户建立套接字后并不与服务器建立连接,而仅仅给服务器发送一张包含 客户机地址的数据报:服务器也不从客户端接收一个连接,只是调用函数r e c v f r o m 0 ,等待 从客户端来的数据。依照r e c v f r o m 0 函数返回的客户端的协议地址以及数据报,服务器就可 以给客户发送应答数据了。 4 3h t t p 协议简介 h 1 v r p 协议是一个应用层协议,t c p 作为传输层协议, 通信过程:首先浏览器向w e b 服务器发送建立连接请求,建立t c p 连接;然后浏览器 发出数据请求包,客户端将请求和请求对象的统一资源定位符( u r l ) 【1 3 】传给服务器;服务 器上监听8 0 端口的进程等待来自客户端的h t t p 请求。当服务器接收到请求后作出响应,将 h t t p 头和客户端所要求的数据返回给客户端;数据返回后服务器关闭t c p 连接,客户端响 应,本次t c p 连接完成。 4 4w e b 服务器的实现 用户使用浏览器访问服务器,服务响应h t t p 请求,将w e b 页面发送给浏览器,下图给 出是w e b 服务程序的流程图: 一2 6 浙江大学硕士学位论文 i 等待监听线程结束 0 i关l 羽s o c k e t 0 l主线程退出 图4 5w e b 服务器程序流程图 从流程图可以看出,主线程建立一个监听线程,当有客户端接入时,监听线程响应的同 时又会建立第二个监听线程继续监听其他客户的接入请求,原来的监听线程响应完客户请求 后会直接退出。 4 5 数据传输格式 t c p i p 只定义了数据在网络上传输的协议,并没有定义数据以怎样的格式传输,而本系 统由于需传送的数据种类繁多,服务器与客户端( 本地或远程) 数据交换时,若双方预先没有 规定好数据结构及通信协议,就无法进行通信。 为此,应用程序发送数据时,首先发送的是信息头,然后再发送具体的信息数据。信息 头就是表明其后发送的数据的具体类型,使所传送的信息的意义对双方都十分清楚明了。 t c p 包定义的数据结构为: s t r u c tp a c k _ h e a d e r t c ps t r e a mh e a d e r l o n gp a c k _ t y p e ; l o n op a c k _ 摹i z e ; 其中p a c k _ s i z e 表示数据量;p a c k _ t y p e 表示数据类型,可能的取值是视频媒体类型,音 频媒体类型和媒体载荷。( 本系统没有采集音频信号) u d p 包主要传输命令和参数,定义的数据结构为: u o pc o m m a n dd a e 靶 s t r u c tu d p _ p a c k i o n qc o m m a n d ; i o n 口p a r a m l j l o n gp a r a m 2 ; l o n gr e s e r v e d ; c o m m a n d 表示命令类型,可以是如下数据: 一2 7 浙江大学硕士学位论文 u d pc o m m a n dd e f i n e s c o n s tl o n gc m dc l i e n t c a l l i n g= a v c t + z o o ;i 客户端请求连接 c o n s tl o n gc m dd e v i c e c o n f i g = a v o t + z o z ;请求采集设备类型 c o n s tl o n gc m db u i i d f i i t e r 6 r a p h = a v o t 。+ i o z ;请求建立溏波器图表 c o n s tl o n gc m dd i s c o n n e c t r e q u e s t = a v c t + 1 0 3 ;1 1 客户诘求断开连接i 接收方收到数据后,首先将信息头分离出来,信息头的大小是固定的,程序设置为 m a xc o m m a n ds i z e = 1 0 0 ,接着对信息头进行分析,并作出相应处理。 4 6 网络收发功能的实现 图4 - 6网络发送和网络接收的f i l t e rg r a p h 从d i r e c t s h o w 的角度来看,网络收发只需实现类似上图的f i l t e rg r a p h 就行了:前者负责 将本地采集到的视频数据用s o c k e t 传送给远端;后者使用s o c k e t 接收远端发送来的视频数据, 然后在本地播放。 因为视频数据是大量的、连续的、需要可靠的依次序传输,因此传输视频数据选用了t c p 协议。另外,发送这种实时流可以不用给s a m p l e 打时间戳,远程端接收到数据就直接播放就 可以了。 作为f i l t e r 开发的一条基本原则是:f i l t e r 实现的功能应该力求单一。因此关于s o c k e t 的 操作都放在应用程序层上完成,而仅将完成连接的s o c k e t 句柄通过f i l t e r 的公共接口设置给 v i d e os e n d e r 和v i d e or e c e i v e r 。这两个f i l t e r 在内部实现时,只需使用外部设置进来的s o c k e t 进行数据的发送和接收就可以了,而不用去管s o c k e t 的创建、监听、连接等一系列繁琐的交 互过程。 4 7 服务器和客户机的交互 视频服务器与网络播放器之间除了传递媒体数据外,还需要处理许多辅助信息,l l - , 女n 握 手协议、命令和参数等。 一2 8 浙江大学硕士学位论又 服务器客户机 等待1 0 0 9 6 端口u d p 命令 发起请求连接u d p :c m d _ c lie n t c a lli n g 获取客户机i p 为传送视频,发起连接请求t c p :c o n n e c t0 确认连接t c p :a c c e p t0 发送命令u d p :c m d _ b u i l d f i l t e r g r a p h 构建f i l t e rg r a p h 传输数据格式 视频数据传输t c p :s e n do 视频数据接收t c p :r e c v ( ) 等待10 0 9 8 端hu d p 命令 侦听10 0 9 9 端dt c p 连接 构建f i l t e rg r a p h 图4 7 服务器和客户机交互流程 从上图可以看出,将t c p 的侦听线程放在客户机中,相当于客户机是t c p 的服务器,由 视频服务器发起t c p 连接请求,这样的好处是有效减轻视频服务器的负担,这样它只需要建 立u d p 命令的侦听线程就可以了。 服务器和客户机不是同时建立f i l t e rg r a p h 的,这是因为v i d e or e c e i v e r 事先不知道将要 接收何种格式的数据。于是当视频服务器构建完f i l t e rg r a p h 后,应当马上运行起来。然后在 v i d e os e n d e r 接收到编码器f i l t e r 输出的第一个s a m p l e 时,将数据格式( 媒体类型) 发送给 客户机。 4 8 视频服务器设计 视频服务器要实现视频采集、视频编码和网络发送,这些功能如果采用d i e s h o w 来实 现就变得十分简单,他们分别对应一个f i l t e r ,如下图: 一2 9 浙江大学硕,1 j 学位论文 瓮麓。誊一一囊i 璃获j 卜,| l n p u 【c a p t u r e 争- 一蝥岔誊蠢菇矗蠢。l s m ar tt e e ; 匕譬骖卿豫嗡0 誓ip r e 。脚 f

温馨提示

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

评论

0/150

提交评论