IPTV播放器研究与设计硕士毕业论文_第1页
IPTV播放器研究与设计硕士毕业论文_第2页
IPTV播放器研究与设计硕士毕业论文_第3页
IPTV播放器研究与设计硕士毕业论文_第4页
IPTV播放器研究与设计硕士毕业论文_第5页
已阅读5页,还剩77页未读 继续免费阅读

下载本文档

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

文档简介

1、目录 TOC o 1-5 h z 图 录. I表 录. II摘 要. III HYPERLINK l bookmark10 o Current Document ABSTRAC.T V第一章 绪论 . 1 HYPERLINK l bookmark14 o Current Document 1.1 课题的目的和意义 . 1 HYPERLINK l bookmark16 o Current Document 1.2 国内外研究现状 . 2 HYPERLINK l bookmark18 o Current Document 1.3 本文的研究内容 . 41.3.1 IPTV 播放器框架设计 41.3

2、.2 IPTV 播放器内核设计与实现 41.3.3 IPTV 播放器内核接口库层实现 4 HYPERLINK l bookmark20 o Current Document 1.4 本文的组织结构 . 5 HYPERLINK l bookmark22 o Current Document 1.5 本章小结 . 5 HYPERLINK l bookmark24 o Current Document 第二章 IPTV 播放器框架设计 6 HYPERLINK l bookmark26 o Current Document 2.1 播放器基本原理 . 6 HYPERLINK l bookmark28

3、o Current Document 2.2IPTV 播放器框架设计思路 7 HYPERLINK l bookmark30 o Current Document 2.3IPTV 播放器框架分层结构 72.3.1 业务层 . 82.3.2 播放器内核接口库层 . 112.3.3 播放器内核层 . 12硬件适配层 . 12 HYPERLINK l bookmark32 o Current Document 2.4IPTV 播放器各层间通讯方式 13 HYPERLINK l bookmark34 o Current Document 2.5IPTV 播放器支持的技术特性 15 HYPERLINK l

4、 bookmark36 o Current Document 2.6本章小结 . 17 HYPERLINK l bookmark38 o Current Document 第三章 IPTV 播放器内核设计与实现 18 HYPERLINK l bookmark40 o Current Document 3.1IPTV 播放器内核设计思路 18 HYPERLINK l bookmark42 o Current Document 3.2IPTV 播放器内核架构及各组件功能 19 HYPERLINK l bookmark44 o Current Document 3.3组件之间的连接方式 . 21 H

5、YPERLINK l bookmark46 o Current Document 3.4IPTV 播放器内核核心模块的设计与实现机制 223.4.1数据源的读取 . 223.4.2数据的无复制传送 . 243.4.3媒体文件解析 Demux 243.4.4音视频快进快退 . 25音视频连播 . 253.4.6多媒体文件的网络点播 . 25 HYPERLINK l bookmark48 o Current Document 本章小结 . 27 HYPERLINK l bookmark50 o Current Document 第四章 IPTV播放器内核接口库层实现 28 HYPERLINK l

6、bookmark52 o Current Document 4.1IPTV 播放器内核接口库层与其它层的关系 28 HYPERLINK l bookmark54 o Current Document 4.2IPTV 播放器内核接口库层接口定义 284.2.1播放控制 . 29422VC操作 34参数设置 44状态信息获取 45错误值列表 49 HYPERLINK l bookmark56 o Current Document IPTV播放器内核接口库应用示例 49 HYPERLINK l bookmark58 o Current Document 本章小结 52 HYPERLINK l boo

7、kmark60 o Current Document 第五章 IPTV播放器测试 53 HYPERLINK l bookmark62 o Current Document 测试目的 53 HYPERLINK l bookmark64 o Current Document 测试环境 53终端硬件环境 53终端软件环境 53 HYPERLINK l bookmark66 o Current Document 测试项及其测试过程和结果 54播放器对各种格式的支持情况 54VCRB作及之间的切换 57不同视频文件的连播 59 HYPERLINK l bookmark68 o Current Docum

8、ent 本章小结 60 HYPERLINK l bookmark70 o Current Document 第六章 总结与前景 61 HYPERLINK l bookmark72 o Current Document 参考文献 62硕士学位论文 硕士学位论文 图录 TOC o 1-5 h z 图1播放器播放步骤图 6图2播放器分层结构示意图 8图3新浪业务代码组织结构图 9图4业务层与其它各模块的关系 10图5业务进程主流程 11图6播放器各层通讯示意图 13图7业务层应用、内核接口库、播放器内核交互序列图 14图8 DirectShow 系统框架图 18图9多媒体播放器内核架构示意图 20图

9、10多媒体播放器整体结构图(以两个播放器内核为例) 21图11数据源类关系图 23图12 init() 流程图 30图13播放器内核的播放器启动流程图 31图14正常播放流程图 33图15停止播放流程图 34图16选时播放流程图 36图17播放转暂停流程图 38图18快进、快退或者暂停转播放的流程图 39图19播放转快进流程图 42图20播放转快退流程图 43图21 VCR互操作图 58表录 TOC o 1-5 h z 表1内核接口库层定义的接口函数 28表2 IPTV播放器支持的文件格式及编码格式 54表3 VCR测试过程典型问题及解决情况 58表4连播测试过程典型问题及解决情况 59独创性

10、声明本人声明所呈交的毕业论文是我个人在导师指导下进行的研究工作及取 得的成果。尽我所知,除文中已经标明引用的内容外,本论文不包含任何其 他个人或集体已经发表或撰写过的研究成果。对本文的研究做出贡献的个人 和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律结果由 本人承担。论文作者签名:日期:年 月 日毕业论文版权使用授权书本毕业论文作者完全了解学校有关保留、使用毕业论文的规定,即:学 校有权保留并向有关部门或机构送交论文的复印件和电子版,允许论文被查 阅和借阅。本人授权学校要以将本论文的全部或部分内容编入有关数据库进 行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本论文。保密,

11、在解密后适用本授权书.本论文属于不保密口。(请在以上方框内打V )毕业论文作者签名:指导教师签名:日期:年 月曰日期:年 月曰IPTV交互式互联网电视,以其特有的互动性、内容的丰富性与及时性吸引了众多用户, 成为电信及广电部门、电子及软件企业争相抢夺的新兴市场。IPTV通常基于嵌入式系统开 发,由于硬件平台的多样性导致业界尚无标准可循,而常见的开源播放器又无法满足不同 厂家的功能需求。因此,开展IPTV播放器关键技术研究有意义。本文以设计一种支持可复用、易扩展的先进播放器框架及内核为目标,针对其中所涉 及的关键技术问题展开研究。完成的主要工作包括:研究了播放器框架。基于播放器的基本原理和分层结

12、构的优势,提出了基于层次 结构的IPTV播放器框架的设计思路。依据该思路,设计了一个易扩展、可复用程度高的 先进框架。该框架将播放器从底层硬件到上层应用划分为四层:硬件适配层、播放器内核 层、播放器通讯控制层、业务层。各层功能专一,层间接口规范,各层可独立扩展自身功 能。研究了播放器内核。借鉴微软 DirectShow架构和操作系统的微内核思想,提出了 基于分层结构和流水线理念的IPTV播放器内核设计思路:内核按照服务层级来划分模块, 内层模块完成实际工作任务,外层模块完成逻辑控制,内层为外层提供服务;播放器内核 同时采用组件化、链路化的方式,完成流媒体的解析和解码,从而实现对新增媒体格式的

13、扩展支持。设计了播放器内核接口库。为避免播放器内核因夹杂播放逻辑而影响其在上层业务中的普适性的问题,定义了一套 API接口供业务层调用。接口库本身与播放逻辑无关, 播放逻辑及具体业务的处理,由业务层及应用层实现,其通过TCP连接与内核进行通讯,实现对内核的控制及状态查询,并接收内核发送的事件通知。在框架与内核研究的基础之上,实现了播放器内核与内核接口库并进行了测试。 测试结果表明,所设计IPTV播放器能够满足应用系统功能需求。关键词:IPTV,互联网电视,流媒体,播放器,视音频解码AbstractIPTV with its peculiar in teractivity,content ric

14、h ness,timeli ness,attractednu merous users becomethe telecom muni cati ons and Broadcasti ng sector, electr onics and software compa nies scramble for emerg ing markets. IPTV is usually based on embeddedsystem development, the industry due to the diversity of hardware platform, there is no sta ndar

15、d to follow, and com mon ope n source players cannot meet the fun cti onal requireme nts of differe nt manu facturers. Therefore, research on key tech no logies IPTV players sen se.In this paper, design a kind of support reusable, easy to extend advaneed player framework with the kernel as the goal,

16、 for the researches on the key technical problems invo Ived.The mai n work in cludes:Player framework is studied. Based on the basic prin ciple of players and the adva ntages of hierarchical structure , IPTV players framework desig n train of thought is proposed based on hierarchical structure .Acco

17、rd ing to the ideas, desig n a high degree of easy exte nsion, reusable adva need framework. Framework adopts hierarchical structure, the player from the un derly ing hardware to upper application is divided into four layers: hardware adapter layer, player kernellayer, player com muni cati on con tr

18、ol layer, bus in ess layer. Each layer function specific, In ter-layerin terface specificati on, eachlayer can exte nd its functionin depe nden tly.Player kernel is studied. Using Microsoft DirectShow architecture and themicro kernel thoughts of operating system, Players kernel design ideas is propo

19、sed based on hierarchical structure and Pipeli ning con cept : Kernel module in accordance with the service level to divide, the inner module do the actual work tasks, the outer complete logic control module, the inner to the outer provide services; And,Player kernel adopts the way of modularization

20、, link , the complete stream ing parse and decode, en abli ng support for the expa nsion of the new media format.Desig n the player kernel in terface library. To avoid player kernel playedfor in clusi on logic and affect the uni versal problems in its bus in ess in the upper, defi nes a set of apis,

21、 calli ng for bus in ess layer. I nterface library itself has no thi ng to do with play logic, logic and the process ing of specific bus in ess Is realized by the bus in ess layer and applicatio n layer. through the TCP connectionwith the kernel of com muni cati on. It realized the con trol system f

22、or the kernel and status query, receive eve nt no tificati ons sent by the kern el.TestBased on the framework and kernel research, realize the player kernel and the kernel in terface library, and achieve the core fun ctio nality of IPTV players required, and the player kernel and the kernel in terfa

23、ce library was tested. results show that the desig n IPTV players can meet the dema nd of the applicati on system fun cti on.Keywords: IPTV, Internet TV, streaming media, player, Video and audio decoding第一章绪论第 页硕士学位论文第 页第一章绪论1.1课题的目的和意义IPTV(I nternet Protocol Televisi on )交互式互联网电视,以其特有的互动性、内容丰富性、及时性

24、吸引了众多用户,成为电信及广电部门、电子及软件企业争相抢夺的新 兴市场。通常而言IPTV系统是以视音频服务为主要业务,同时提供游戏、股票等增值服务 的系统业务的综合体,而视频播放是IPTV的核心业务,视频播放器是IPTV的核心模块。所 以随着IPTV的发展与普及,IPTV播放器也显示出至关重要的作用。IPTV已经从其最初的以?互联网+机顶盒终端+普通电视?的形式,转而向一体式智能 电视(内置IPTV模块)、PC平台、手机电视等多种多样的形式发展。播放器在 IPTV上的应 用特点是:媒体格式多种多样、数据源日益增多(如本地文件、各种不同的网络协议)以 及硬件平台的多样性。基于以上特点,通常厂家对

25、IPTV播放器有以下需求:1)全格式支持要求支持常见的主流文件格式,并同时具备添加新格式支持的能力。2)全VC操作支持VCR( Video Cassette Recordi ng )功能泛指各种对视频的操作控制。如:播放、暂停、快进、快退、选时、停止、音量调节、声道切换、静音等操作。播放器要支持提供全 VC操作的能力、允许各VC操作状态之间的自由切换,使视频应用业务可以提供给用户友 好的人机交互。3)能同时适应本地媒体文件播放和网络媒体文件播放播放器除了可以播放本地的视频节目外也可播放网络点播或直播节目。本地媒体文件是指存储在机顶盒内置存储设备如Flash存储器、内置硬盘,或可热插拔的移动存储

26、设 备如SD卡、U盘、移动硬盘等上的媒体文件。网络媒体文件,则是指那些位于远端服务器,需要通过网络协议交互,通过网络获取 到数据的媒体文件。4)无缝连续播放支持一般的播放器在连续播放多个媒体文件时,媒体文件切换过程会有短暂停顿,或画面静止或声音停顿。在机顶盒这种专门的播放设备上,在播放一个电影前一般要插播一段广 告,另外,同一部电影往往由多个分片存储的节目文件组成,为了让用户查觉不到媒体文 件切换导致的停顿感,在对多个分片进行连续播放时,需要实现无缝的连续播放。5)二次开发接口支持视音频播放(解复用、解码)是一个较为专业的技术领域,并不是每个开发人员都能熟悉其中的原理,能够做相应的开发。在机顶

27、盒中,视音频应用的形式又多种多样,因此,需要提供一套简单易用、功能强大且足够细分的视频播放应用接口,使开发人员能够在其 上构建各种和媒体播放有关的应用程序和服务。IPTV通常是嵌入式系统,与通用计算机系统不同,其软件与硬件是紧密关联的。IPTV 播放器作为IPTV系统中的核心应用软件,也是与硬件平台紧密相关的。由于IPTV硬件平台尤其是解码硬件多样性问题的存在,导致目前还没有统一的标准供机顶盒制作厂家遵循, 市场上也没有完全支持以上特点的播放器内核可以使用,常用的开源播放器更是无法满足 不同厂家对IPTV业务能力的扩展需求。除此之外,嵌入式设备资源有限性(处理器运算速度不够高,运行内存不够大)

28、也使 嵌入式播放器的开发难度远远高于PCS放器。目前国内自主研发的嵌入式播放器分辨率 低,流畅度差;而国外IT公司能提供的嵌入式播放器虽然在分辨率和流畅度上有很大优势, 但是价格偏高。因此,开展IPTV播放器的研究,提供一种价格低廉的高性能IPTV播放器,对国内IPTV 行业发展有着积极的推动作用。课题针对IPTV播放器中的关键技术及模块实现展开研究,具有较高的应用价值。本文 的研究目的是开发一个可复用程度高、 易扩展、利于开发各种音视频播放应用的先进框架。 在这个框架下,通过添加支持不同格式的解析模块,就能为终端机顶盒提供新的媒体格式 的播放支持,利用其提供的一系统列接口,也能在其上构建各种

29、不同业务的应用模块,以 提高软件模块的可复用性,可极大地缩短开发各种不同多媒体应用的开发周期,降低开发 成本,为企业带来长久效益。1.2国内外研究现状1)国内外IPTV发展研究现状随着科技发展,用户已不再满足于电视业务的单向广播模式,希望在电视上实现双向 交互功能。IPTV的出现使这种愿望成为可能。IPTV主要是以网络机顶盒作为用户终端,以 显示器为显示设备,以宽带为主要传输网络,为用户提供多媒体信息服务。播放器是IPTV终端机顶盒的关键模块,主要完成IPTV的流媒体业务和其他业务的图形及伴音展示2。由于IPTV巨大的潜在价值和商业空间,各个国家纷纷发展IPTV2。美国早在2005年9月,运营

30、商Verizon率先宣布推出IPTV月艮务。在韩国,电信企业在发展IPTV方面也走在了 前面。韩国电信在2007年7月推出IPTV以来,至U当年9月底已发展了 14.8万用户。韩国第 二大网络门户Daun通信在2008年也宣布进入IPTV市场。欧洲是全球最大的IPTV市场,IPTV 在法国呈现爆炸性增长。法国目前已经成为IPTV领先发展的国家。我国IPTV的发展始于2003年4。国家从2005年5月开始整顿国内IPTV市场。要求从事信 息网络传播视听节目业务的单位必须符合广电总局的申批条件。由于IPTV的发展不可避免会出现电信和广电业务的互相渗透问题,而受冲击最大的就是广电部门,因此从自身利益

31、4考虑,广电总局慎重发放证照,对电信运营更是较多限制。2011年年底,互联网电视获得广电总局的?解禁?,中国电信和广地广电运营商纷纷加入试点,试图夺取主动权IPTV的发展需要几个产业链来支撑2:内容制作商、内容集成商、网络运营商。虽然 已经过了多年的运营,各国IPTV运营商仍然面临运营模式和生态链的问题,但各运营商都 在积极探索自己的发展模式2。国内外IPTV播放器发展研究现状全球播放器的发展大致经历了三个阶段:第一阶段:格式封闭阶段这是个?各自为政?的阶段。微软公司的Windows Media Player和Real公司的RealPlayer是这一阶段的典型代表。Windows Media

32、Player 只支持微软公司自有格式 WMV(Windows Media Video)、AVI (Audio Video In terleaved)文件的播放及通过微软的 MediaServer服务器软件投递的点直播服务。RealPlayer则仅支持real格式的文件播放及RealServer (后升级为HelixServer )投 递的点直播服务。这个阶段的播放器支持格式有限,并且无法扩展使用。在本课题的IPTV系统开发中无法使用。第二阶段:兼容并处时代典型代表是Media Player Classic 、VLC MPlayer。这些开源项目的共同特点是广泛 的格式支持及开源。不少播放器都是

33、在这三个项目的基础上修改而来,如韩国Kmplayer、中国的暴风影音、射手播放器等。这个阶段的播放器支持格式多,并且开源可扩展,但是都是基于PC设备的,无法在特定硬件平台的嵌入式设备中扩展使用。第三阶段:多媒体框架时代这一时期的典型特征是提供统一的媒体开发框架,开发者在些框架上,加入自己的插 件或模式,即可使播放器支持更多的模块或功能。和第二代相比其特点是提供的是重要的 框架,而不是具体的格式或功能支持。如微软的DirectShow,google的an droid平台的Ope nCore等。这个阶段的播放器为我们提供了很多播放器框架开发的思路,但是框架本身都是基于 一定平台的,无法满足在任意平

34、台上的扩展使用。随着全球播放器的发展,对IPTV业务的播放能力提供了支持。但是根据当前的播放器 发展情况可以发现:由于IPTV所用到的硬件设备各有差异,所以目前对IPTV播放器没有统 一的播放器或播放器框架可以直接使用。所有厂家都需要根据设备架构和硬件平台,开发 配套的视频播放器。当前各个厂家对IPTV播放器的研究,都停留在所选用设备架构和硬件平台基础上的播 放器研究与开发,以满足自身IPTV系统所用机顶盒产品的需求。鉴于IPTV系统中硬件平台 的多样化,导致各厂家开发的IPTV播放器无法通用或扩展使用,所以研究和开发可通用的 IPTVft放器框架对推进IPTV系统的发展具有积极意义。1.3本

35、文的研究内容IPTV播放器框架设计鉴于分层结构的优势,IPTV播放器采用分层结构的框架。为了更好地组织整体的软件 结构,将播放器从底层硬件到上层应用划分为四层:硬件适配层、播放器内核层、播放器 通讯控制层、业务层。硬件适配层:该层针对不同的硬解码芯片制造商的硬件平台提供适配功能,为上层提 供统一的接口。播放器内核层:是播放器内核进程,通过调用硬件适配层提供的接口,完成与媒体处 理相关的工作。播放器通讯控制层:通常将该层叫做?播放器内核接口库层?。该层通过TCP连接与内核进程进行通讯,实现对内核的控制及状态查询,接收内核发送的事件通知。接口库本 身无任何关于播放逻辑的控制,播放逻辑及各种与具体应

36、用需求相关的处理,由业务层及 业务层之上的应用层实现。业务层:业务层实现外部应用环境对播放器的调用,它的存在是以从繁多的播放业务 中将播放器内核解放出来为目的,将业务层次的控制调用、功能层次的控制调用等集于一 体。IPTV播放器内核设计与实现在整个播放器软件分层结构中,上层媒体播放相关业务应用,通过播放器通讯控制层 控制着播放器内核进程,播放器内核进程是真正负责处理和实现多媒体播放功能的实体, 是播放软件体系中的核心,因此我们称其为播放器内核进程。在设计新播放器内核时,借鉴了 DirectShow架构和操作系统的微内核思想,让播放 器内核专一做与媒体内容相关的工作,即:只让它完成音视频流的播放

37、功能,而不再直接 参与数据的获取,数据的获取可以通过在播放器内核外围扩充相应的功能模块来完成。比 如:需要使用 HTTR MM( Membership ManagementSystem)、RTSP( Real Time Streaming Protocol )呵、P2P (peer-to-peer network )等协议从网络上获取数据时,只需要开 发出相应的功能模块挂接上即可,而不需要对播放器内核做任何修改;另外,需要增加对 新媒体格式的支持时,只需要按照定义好的接口,开发针对该媒体格式的解复用组件 DemuxFilter等模块,然后加入播放器内核中即可,不需要对播放器框架做任何修改。播放

38、器内核,采用类似DirectShow中的Filter组件的概念,采用组件化、由组件和 组件连接的形成链路的方式,来完成流媒体的解析(DemuX及解码(Decoder)。播放器内核按照服务层级来划分模块,内层模块为外层模块提供服务,由外层的模块 完成逻辑控制,内层模块完成实际的工作任务。IPTV播放器内核接口库层实现播放器内核接口库层(即:播放器通讯控制层)提供一套接口,供业务层对播放器内 核进程进行控制,从而控制视频的播放。其实质是一套网络通讯的客户端发包工具,将播 放指令按照和播放器内核约定的指令数据结构发送数据包给播放器内核进程。此层一般不 包含播放逻辑控制,以避免加入播放逻辑而影响其在上

39、层业务服务层中不同业务应用中的 普遍适用性。1.4本文的组织结构本文共分为六章,全文组织如下:第一章:绪论。主要对IPTV播放器研究的目的和意义、国外内研究现状以及本文要研 究的内容进行了概述。第二章:IPTVffi放器框架设计。基于播放器的基本原理和分层结构的优势,提出了 IPTV播放器系统框架的设计思路。依据该思路,设计了一个可复用程度高、易扩展、利于开发 各种音视频播放应用的先进框架,并对框架的层次结构、层间通讯和框架所支持的技术特 性进行了阐述。第三章:IPTV播放器内核设计与实现。借鉴微软 DirectShow架构和操作系统的微内核 思想,提出了 IPTV播放器内核设计的思路:让播放

40、器内核专一做与音视频流播放相关的工 作,不再直接参与数据的获取等工作。基于该思想,设计了播放器内核的架构,并给出了 其主要逻辑模块的实现。第四章:IPTV播放器内核接口库层实现。首先阐述了播放器架构分层结构中的内核接 口库层与其它层的关系。然后定义出一套 API接口,该接口供业务层调用。最后以示例方 式说明了接口的应用。第五章:IPTV播放器测试。首先给出了测试目的和测试环境,然后描述了测试过程, 之后通过调用播放器内核接口库提供的接口,对播放器内核和播放器内核接口库进行了功 能测试。第六章:总结与前景。主要对IPTV播放器的研究情况进行总结,同时指出本文所研究 内容有待完善的地方,最后对未来

41、发展进行了展望。1.5本章小结本章通过对IPTV播放器功能需求及相关领域国外内研究现状的分析,论述了课题研究 的目的和意义,并概述了课题研究中需解决的几个关键技术问题。第二章IPTV播放器框架设计IPTVffi放器的核心是播放器,在对IPTV播放器框架进行设计时,首先需研究播放器的 基本原理,在此基础上,基于分层思想设计了 IPTV播放器的框架结构,并对该框架的分层 结构和层间通讯方式进行分析,最后给出该结构可支持的技术特性。2.1播放器基本原理对于音视频播放,一般可有以下四个基本步骤:数据源读取(Source reader )、解复用(Demux, Demultiplexer 的缩写)、解码

42、(Decoder)、输出(Ren der),如图 1 所示。解复用Demux解码Decodex输出Render图1播放器播放步骤图1、数据源读取数据源读取就是为了获取播放所需的源数据。电脑本地硬盘上存储的媒体文件、用于 点播的HTTP艮务器上的媒体文件、UDP&播的媒体文件、RTSP艮务器提供的RTP数据包等 567,均为有效的数据源。读取成功后,就可开始解读该媒体文件解复用。2、解复用每种多媒体文件都有其特有的封装格式。解析多媒体文件的封装格式,并读取所需的 特定内容的步骤,称之为解复用。解复用的过程中可以分离出字幕数据、音频ES流、视频ES(Elementary Stream )流等多媒体

43、信息。原始的视音频数据经过压缩、编码之后,即 可生成基本码流(ES流)。常见的编码格式有MPEG-f、MP3MPEG-II、H.264、MPEG-49 等。3、解码解码是编码的逆过程,ES流数据经过解码器的解码运算,被还原成原始的视频或者音 频。解码器有纯软件、硬件芯片两大类,前者便于升级,后者更加稳定高效。4、输出解码之后的视频信息将以YU或RG格式输出到显示外设、音频信息将以PCM脉冲编码 调试)的形式输出到声音外设,整个过程也被称为渲染。RGB!种基于三基色原里的色彩表示法。 根据三基色原理,红(Red)、绿(Green)、 蓝(Blue)是三种最基本的颜色,利用不同分量的基本颜色可以组

44、成所有的可见光。电视 机、显示器的成像技术大多利用了三基色原理。YUV!另外一种类似于RBG勺色彩表示法。对连续变化的模拟信号进行抽样、量化、编码,最终生成数字信号的过程就是脉冲编 码调制,简称为PCM.经过数据源读取、解复用、解码、输出四个步骤之后,就完成了多媒体文件的播放。一般而言,芯片制造商已经为机顶盒设备设计了专用的视音频解码和输出芯片,并为第二章IPTV播放器框架设计第 页第二章IPTV播放器框架设计第 #页开发人员提供了配套的SDK软件开发包Software Development Kit).在此基础之上,机顶盒开发人员可以很简单的完成视音频输出。因此,数据源读取与解复用才是机顶盒

45、播放器 软件的核心功能。这两个部分也就是我们研究IPTV播放器的核心。IPTV播放器的研究与设计,就是对数据源读取和解复用这两部分的实现进行研究与设 计。因为解复用需要调用硬件解码芯片提供的解码及输出功能接口,所以该部分需要能支 持IPTV机顶盒设备常用的硬件解码芯片。这就对解复用部分的研究与设计提出了易扩展的 特性需求。这是在设计IPTV播放器框架时要重点考虑的问题。2.2 IPTV播放器框架设计思路在一般的系统框架设计中,往往都采用分层式结构,因为分层式结构具有以下优势:1)有利于各层逻辑的复用;2)易于替换原有层次内的实现;3)能够降低层次与层次的依赖度;4)可以使不同级别的开发人员只关

46、注整个结构中的某一层;5)有利于标准化。显而易见,在软件开发过程中采用分层式设计可以:减少个人关注范围、复用逻辑模 块、降低耦合度、制定统一的标准。根据划分的层次,定义好层间接口之后,开发人员可以仅仅专注于自己所负责的逻辑 模块,无需关心其它模块,这样可以相互独立的开展工作、齐头并进。例如,界面设计师(UI)只需思考如何满足并提高用户体验;软件工程师只需要考虑如何实现播放器的功能 UI不用关心播放器功能、软件工程师不用考虑界面应该如何布局,每个岗位的职责都很专 一,如此一来,开发进度自然能够保证。耦合度高了意味着,软件的逻辑不清、功能彼此依赖,某处一旦修改往往会发生牵一 发而动全身的大面积修改

47、,严重影响进度和稳定性。软件的分层结构,有效的降低了层间 的耦合度,并且具有良好地扩展性。鉴于分层结构的优势,设计IPTVffi放器框架时也采用了分层结构。不同层次的功能定位、层间通讯方式,严重的影响了系统的可扩展性、可替换性。因 此,设计IPTV播放器框架时,较多的考虑层次功能需求和通讯接口的标准化。2.3 IPTV播放器框架分层结构图2是基于2.2的设计思路,所设计的IPTV播放器框架的分层结构图。硕士学位论文硕士学位论文业等层底层解碣驱动适配层视频业务应用层巫视频业务服务层播放踞内核接口库播放器通讯控制层机顶盒硬件平台1机顶盒硬件平台门DecoderDecoderA4讣RendexRen

48、der图2播放器分层结构示意图如图2所示,根据播放器功能与软件组织需求,将播放器涉及的进程和库分为三层, 分别如下:业务层、播放器内核接口库层、播放器内核层2.3.1 业务层媒体业务层将种类繁多的播放业务抽象为控制调用和功能调用两大类接口。外部应用 通过调用媒体业务层对外提供的接口实现多媒体播放功能。媒体业务层的存在使得外部应 用与播放器内核的耦合度大大降低,同时播放器内核得以专注于播放核心工作,而无需关 心纷繁复杂的封装格式和控制方式。根据视频业务的功能与结构需求,将其细分为应用层与服务层两个子层。1、视频业务应用层根据多媒体业务的用户需求、多媒体格式,视频业务应用层有许多种变现形式和侧重

49、点。例如,本地硬盘或者移动硬盘中的媒体应用大多以 ?我的影库?的形式表现给用户, 侧重于?本地播放?; ?网络课件?栏目,用于播放来自网络的远程视频节目,侧重于实第8页第二章IPTV播放器框架设计第 页硕士学位论文第 页现远程教育的在线点播和电视直播功能。2、视频业务服务层视频业务服务层处于视频业务应用层的下方,专门为纷繁复杂度视频应用业务提供所 需的播放服务。同时,视频业务服务层处于通讯控制层上方,结合通讯控制层为视频业务 应用层提供有针对性的功能接口。例如,以播放本地文件为主要业务的?我的影库?,如果发现与视频文件匹配的字幕文件,在播放视频时,应用层将尝试解析并显示字幕。这个 主动尝试显示

50、字幕的过程就是视频业务服务层为应用层提供的一种服务。有了这个服务, 应用层就无需关心字幕是否存在、字幕的编码方式等繁杂技术细节。对于需求独特的视频应用业务,只需要按照框架内定义好的接口,为其开发匹配的视 频服务,即可快速的实现相关视频应用。随着开发的深入,累积一定量的视频服务后,当 出现与以往视频应用业务需求相同或相近的新业务时,可以直接复用现有的视屏业务服 务。不同播放环境下,业务层的功能与表现形式有着显著的差异。下面以新浪视频业务为 例,描述媒体业务逻辑层的层次与接口。1)新浪业务代码组织结构-D MultiMediaServiceManager日亡j src日匸j basecommoE匸

51、ommoniervice.h-_j previewservice-冷 interfa cm B Makefile 叵 previewCommonBusiness. c 三 previeCommoniBusinei ,h-二 man宦)main.cpp 宣| Makefile八 sinaService.cpp0 sina5ervke,h画 MakefileH Makefle画 Makefile图3新浪业务代码组织结构图目录结构及功能说明如下:公用的基类代码存放于base文件夹;previewService文件夹用于存放业务调用接口,业务调用接口被分为业务接口层(in terface )和业务子类

52、与 主函数(manager)2)业务层与其它各模块的关系图4给出了业务层与其它各模块的关系。图4业务层与其它各模块的关系页面调用JS (JavaScript )插件页面通过调用JS插件开发各种不同的面向页面的流媒体业务。多媒体播放器业务接口层为多媒体播放器业务设计一个接口层,该接口层并不局限于满足某一类具体的多媒体 业务。例如,满足新浪业务的现有接口层,也适用于任意类似于新浪业务的其它播放器业 务。接口层的主要工作内容是:初始化共享内存及其权限值、加载业务进程、向业务进程 传递用户命令、获取共享内存内声明的播放器状态。用户向业务进程发出一条控制命令后,接口层立即向业务层的共享内存查询权限信 息

53、,裁决是否允许该用户进行本向操作。多媒体播放器业务进程为多媒体播放器业务涉及一个业务层进程,需要配合播放器业务接口层同时使用。业 务进程接收并判断播放器业务接口层传来的控制命令是否满足执行条件,然后根据需要改 变播放器状态,并将播放器最新的状态信息更新到业务层共享内存里,工业务接口层随时 访问。基类、子类、主函数是业务进程的三大核心。业务进程使用面向对象的C+语言编写,并且广泛的使用了面向对象的派生、多态、重载等机制。基类代码里提供丰富的控制命令 和回调命令的接口,但是只实现最常用的那些方法。子类派生于基类,每个子类都是某一 类应用的具体实现,该子类需要重载基类提供的相关接口和方法。例如,需要

54、针对新浪业 务提供一个专门的新浪业务子类,并根据新浪业务的需求重载若干接口和方法。主函数处 于总体协调的位置之上,根据业务需要创建具体的类对象,循环接受消息,并且调用各个子类提供的具体的消息处理方法。 图5是业务进程主流程。开始根据不同昂业务创建不同的对象、调用mitPlayar函数初始化播啟器启动线程刷新共亭内存中播旗器状态循环接收控制命令消息,并调用函eVentProcessiSH处理结東-图5业务进程主流程业务进程主函数启动后,首先根据业务需要创建并初始化不同的子类对象,然后调用 Ini tPlayer方法初始化播放器,更新共享内存中的播放器状态信息,之后就一直处于消息 接收状态,捕获接

55、口传来控制命令并根据命令内容调用恰当的处理方法。2.3.2播放器内核接口库层播放器内核接口库层,我们又可以将其叫做播放器通讯控制层。播放器通讯控制层处 于视音频业务应用程序与播放器内核之间,在二者之间传递播控指令并反馈播放状态。通 讯控制层的接口函数并不对外开放,其它层在使用通讯控制之前,必须与之建立SOCKE连接,以进程间通讯的方式进行指令传递和播放状态反馈。为了确保进程通讯所用SOCKE连接的稳定性,以及数据传递的可靠性,通讯控制层选 用TC协议作为基本的连接方式。TC助、议又称网络传输控制协议(Tran smission Co ntrol Protocol ),可以在客户端与服务端之间一

56、条可靠的数据传输通道,TC协议能够确保数据的有序、可靠送达目的地。利用TC助、议能够确保播控指令和播放状态,按照事件发生 的先后顺序到达内核或者上层应用。播放器通讯控制层至少需要提供两条独立的 TCP连接。一个连接建立在端口 8082上, 用于视音频应用程序向播放器内核传递播放指令。另一个连接建立在端口8083上,用于播放内核向外传递播放器状态。TCP接本来是可以双向通讯的,为了能够快速响应播控指 令、及时反馈播放状态,使两类数据分别有各自的通道,互不干扰。相对于双通道带来的 稳定性和响应速度,浪费的那一个TCP端 口,显得微不足道。播控指令是一个格式固定并含有众多参数的数据包,内核代码通过解

57、析数据包的格式 和参数,识别出来如何执行一条播放指令。例如,Play指令至少需要包含视音频文件的路径或者URL,内核根据该路径就可找到并开始播放该文件。JumpForworc指令至少需要包含 跳跃的起点和跨度,这样内核就可以实现一个跳跃播放。播放状态是由播放器内核触发的事件信息,用于通知业务应用层播放器当前的状态。 常见的播放器状态事件有:播放开始、播放异常、播放完毕等12,或者打开失败、缓冲不足等错误信息。这些关键的状态信息必须及时准确的反馈给业务应用层,确保用户体验良 好。2.3.3播放器内核层播放器内核层就是以进程形式形式存在的最基本最核心的视音频播控功能,有时也被 称为播放器内进程。上

58、层视频业务应用程序的所有播放指令最终都由播放器内核进程实 现。例如:上层业务应用中产生的?暂停?指令,经由通讯控制层的TC连接,最终被内核进程捕获到,内核进程解析出暂停指令,立即暂停播放,并向上层业务应用反馈一条?执 行成功?信息。至此,在内核层、通讯控制层的配合之下,完成条操控指令。播放器内核进程就是一个处于伺服状态的后台进程,上层应用通过调用通讯控制层中 的接口,向内核传递一个网络格式的操控指令包,内核收到该指令包后进行必要的解析和 验证处理之后,执行指令相应的动作。内核进程的播放功能,借鉴了微软 DirectShow框架,完成视频播放需要读取数据源(Reader)、解复用(DemuX、解

59、码(Deocoder)、输出(Re nder)这四个基本步骤。 内核进程通过调用底层硬件适配接口完成 ?解码?和?输出?。2.3.4硬件适配层适用于视频播放设备的解码芯片,可能是来自不同厂家的不同型号的专用芯片。这些 芯片虽然管脚排列、封装形式不尽相同,但是都是为了支持某种特定的视音频编码格式。 由此,引出一个棘手的问题。各个厂家,为自己的芯片提供的SD开发包风格迥异、接口完全不匹配。为了解决这个问题,专门设计了硬件适配层,也可称为解码驱动适配层。各个芯片厂商提供的SDK包虽然风格迥异,但是基本原理是相同的。 SD开发包,主要 是提供了一系列接口,上层应用调用相关方法,写入符合格式要求的 ES

60、数据流,即可实现 视音频解码。这也为设计硬件适配层提供了切入点。硬件适配层提供兼容不同解码芯片的适配功能,为上层提供统一的接口。适配功能需 要实现,各个SD开发包都可能用到的那些功能。例如,初始化解码器、启动解码器、传 入符合格式的数据头、传入ES数据流、开始播放、暂停播放、停止播放等常规操作。针对 不同的硬件平台,只需额外实现自己特有的那些接口,无需修改上层业务应用,即可支持 多种硬件平台。硬件适配层提供音频和视频两大类方法。音频方法主要包括:打开/关闭解码器、初始化音频编码格式、开始播放、写入数据、调节音量、设置声道、开始播放、暂停、快进 等。视频方法主要包括:打开/关闭解码器、初始化编码

温馨提示

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

评论

0/150

提交评论