为了正常的体验网站,请在浏览器设置里面开启Javascript功能!
首页 > P2P流媒体点播系统播放器框架设计与实现(可编辑)

P2P流媒体点播系统播放器框架设计与实现(可编辑)

2017-09-20 37页 doc 70KB 29阅读

用户头像

is_477730

暂无简介

举报
P2P流媒体点播系统播放器框架设计与实现(可编辑)P2P流媒体点播系统播放器框架设计与实现(可编辑) 指导小组成员名单 张世永 教授 钟亦平 教授 副教授 李松年 副教授 杨明 吴承荣 副教授目录 \瞅删 第章绪论? ..课题背景及意义??. ..相关技术介绍??. ...传统视频点播系统 ....基于客户端/服务器架构的视频点播系统 ....组播技术? ....内容分发网络。 ...文件交换系统? ...流媒体直播系统..主要研究内容及关键技术 ..论文主要成果及创新 ..论文组织纬陶第章流媒体点播系统结构及播放器功能需求? ..系统结构...
P2P流媒体点播系统播放器框架设计与实现(可编辑)
P2P流媒体点播系统播放器框架设计与实现(可编辑) 指导小组成员名单 张世永 教授 钟亦平 教授 副教授 李松年 副教授 杨明 吴承荣 副教授目录 \瞅删 第章绪论? ..课题背景及意义??. ..相关技术介绍??. ...传统视频点播系统 ....基于客户端/服务器的视频点播系统 ....组播技术? ....内容分发网络。 ...文件交换系统? ...流媒体直播系统..主要研究内容及关键技术 ..论文主要成果及创新 ..论文组织纬陶第章流媒体点播系统结构及播放器功能需求? ..系统结构模型概述 ..系统网络拓扑结构? ..分布式哈希表网络层??. ..播放器模块及功能需求?. 第章基于惴烬的拉模式过滤器技术?. ...两种数据传输模式 ...采用拉模式过滤器的优势??。 ..点播播放器中的拉模式源过滤器... 接口 ...呛接口??。 ... 接口。 ...接口。 ...接口 第章文件分片下载及缓冲技术. ..算法基本策略??。 ..文件分片策略??。 ..片段缓冲技术??。 ..加权速度分类节点方法? ..文件分片下载算法?第章播放器实现及性能模拟测试 ..系统用例图? ..主要类及其静态类图...拉模式源过滤器相关类,。 ...节点管理器相关类,. ...缓冲管理器相关类,, ...下载管理器相关类. ..播放器工作流程实现及分片下载代码? ..播放器工作界面截图......。 ..性能模拟测试与分析. ...测试平台及流程? ....中心服务器架构点播系统 ....基于文件分片的视频点播系统....测试?. ...测试结果? ...性能比较与分析。 第章总结与展望 ..? ..研究展望.. 参考文献? 致谢??.?..?..? 攻读学位期间主要的研究成果?. 中文摘要 近年来,随着互联网技术的快速发展,个人或家庭接入互联网的 带宽也越来越大, 与之而来的各种各样的新型互联网服务方式。视频点播服务也是 其中之一并且已经成 为互联网的主流业务。传统流媒体系统性能的提高无法满足实际 应用的需求,大量用 户的加入经常会造成服务器带宽瓶颈。采用方式实现的流媒体系统有助于分散服 务器压力,减轻服务器负载,对大规模流媒体内容发布有重要意义。 本文首先研究了各种相关技术现状,阐述了课题的主要研究内容、关键技术、 主要成果及创新点。其次,提出流媒体点播系统的系统结构模型,并进而阐述了 播放器的功能需求。再次,详细介绍了本文的几个关键技术,基于的拉模 式过滤器技术,针对不同节点的异构网络环境下而提出的文件分片策略,片段缓冲技 术,加权速度分类节点方法和文件分片下载算法。在这些技术的基础上,实现了一个 流媒体点播系统播放器的原型,并对模拟环境测试的结果进行了比较和分析。最 后,对研究的内容做了总结,提出了未来的研究方向。 研究结果显示,基于拉模式过滤器技术的点播播放器有很好的通 用性和可扩展性。相比于中心服务器架构的点播系统,基于文件分片下载算法的 架构点播系统能够有效的减轻服务器的负载,并能够保证媒体数据的高效分发和顺序 性。 关键词:流媒体点播,文件共享,,分片下载,网络,. .幻 , .’ .啪’ . ?? , . , ,: . , ,鹤 ,.? ,. .? ., , . : , , , 第章绪论 ..课题背景及意义 从年到年年时间里,中国互联网用户数增长迅猛。截至年 月,中国网民数已达到.亿人,其中宽带网民数达到.亿人,占网民 总体的 .%【】。与此同时,网络视频应用也得到了飞速发展,网络影视观 看比例达到.%, .亿人曾经通过网络欣赏过影视节目,然而有.%的网民认为网络视频内容质量不 高是其不浏览网络在线视频的主要原因之一。这些数据都显示,如何提高内容质量是 目前网络视频应用中的关键问题之一。 传统的视频流媒体技术多采用基于客户端/服务器架构/架构,所有媒体数 据都通过服务器发送到客户端,每组服务器能够支持的用户并发数有限。在中国互联 网宽带应用刚刚开始兴起的时候,基于客户端/服务器架构的视频流媒体技术曾经为以 网页浏览为主的互联网应用带来了新的活力,用户体验到了在线观看视频直播或点播 的乐趣。然而,近几年来,全国宽带用户数量越来越大,到年为止,各省互联 网宽带用户数均已突破万大关仅有极少数省份尚未突破,江苏,浙江,山东, 广东等省的宽带用户数甚至已经突破万。在如此庞大的用户数量面前,传统流 媒体系统的并发数量远远不足以满足需求,而由于其并发数和服务器组数量呈线性关 系,增加足够数量的服务器需要消耗大量的财力,传统流媒体系统面临极大的挑战。 为了缓解服务器面临的巨大资源和带宽压力,最近纷纷出现了许多基于方 式的流媒体视频网站,这些网站将视频数据压缩成格式的流媒体文件,通过网页 浏览器播放。然而,经过压缩后的视音频信息都存在很大的失真,严重影响了观看体 验,这也造成了大量网民对视频质量的不满。 值得注意的是,浏览网络视频的网民中有.%开始通过流媒体方式观看网 络视频。基于技术的流媒体系统,将大多数用户空闲的计算机资源也充分利用了 起来,用户一边在享受流媒体节目,同时也在为其他用户提供服务,整个流媒体系统 的资源一下子从单一的服务器资源扩大了成千上万倍。虽然目前的流媒体应用主 要集中在视频直播,并且都还在免费试用阶段,但是这足以说明许多研究机构和网络 运营商都纷纷开始了流媒体技术的相关研究和探索,流媒体系统对于传统流 媒体技术的冲击将越来越大,其分担服务器负载并从而提高服务 质量的优势将随着互 联网用户数和带宽的的增加越来越凸显。 研究并实现基于技术的流媒体系统商业应用产品,有着十分重大的意义:一 方面能给企业自身带来经济效益,另一方面能节省国内网络运营商巨大的流媒体系统 建设费用,同时能提升为广大宽带用户服务的视频流媒体质量,具有良好的社会效益。 ..相关技术介绍 ...传统视频点播系统 ....基于客户端/服务器架构的视频点播系统 基于客户端/服务器架构的视频点播系统中的典型代表是由微软公司开发的。 和由公司开发的是一个基于操作系统的流媒体系统,用于将流 化的视音频内容分发给互联网或局域网的客户端,这些客户端可以是 ,或者其他装有 的计算机用于代理,缓存或者再分发 内容,甚至采用 组件开发的程序。 服务器分发到客户端的内容可以是直播流或者预先录制的数字媒体文件。 服务器可以使用一些编码程序,如 作为其输入源,或者仅仅是一个流文件。 下图是 所采用的系统结构图: 远端发布服务器图 系统结构图 是公司开发的一款支持多格式、跨平台的流媒体服 务器软件。其技术成熟,带宽占用低、稳定性高、支持多种平台,因而成为众多网络 公司在流谋体应用中优先考虑的解决方案之一。除此之外, 还提供了一整 套发布和管理在线多媒体内容的完整平台,包括转播或者在现有的网站上 进行视频和音频的发布。 采用 的流媒体系统一般由媒体内容制作工具 、服务 器端 和客户端软件 部分组成,如下图所示。安装 有 软件的计算机将源文件或实时输入数据编码成为流式文件,再把流 式文件传输到 服务器上供用户点播,用户采用 或其他支 持格式的流媒体播放器播放。 客户端播放器 流媒体节目制作 流媒体服务器 圈 流媒体系统做为两款成熟的并且得到广泛应用的传统流媒体系统, 和 都有一些各自的特色和成熟技术:: 减少最初播放时的缓冲处理时间, 减少播放过程中的缓冲现象。 :支持超过种文件格式,相同码率的影片质量高于 ,成熟的数字版权管理技术,跨平台等。 然而,尽管采用了很多压缩技术来减少服务器带宽消耗,采用客户端/服务器架构 的视频点播系统都逃不过一个命运??用户一多就不堪重负。过于依赖服务器的带宽 和计算机资源,导致在用户并发数超多一定限度后服务器很快因为资源耗尽而无法正 常服务,播放过程中频繁出现停顿,缓冲,花屏现象。因此不得不研究更多的新技术 来解决这样的问题。 ....组播技术 在组播技术出现之前,上的数据传输只有两种模式:单播和广播。 单播是最常见的通信方式,我们最常使用的应用就是采用的单播 方式。单播系统中发送方和每一个客户端之间都要建立一个独立的连接,当多个用户 同时请求相同的数据时,服务器必须给每个用户都发送一个相同的数据副本,极大的 浪费了服务器的带宽资源。而且随着客户端并发数目增加,服务器资源很容易耗尽, 发生网络拥塞。 广播是从一点到所有主机的数据传输模式,服务器可以通过广播方式将一份数据 同时发送到连接在网路上的所有主机。由于只需要发送一次数据,因而具有很高的效 率。但是由于广播方式不关心网段中的主机是否需要接收数据而盲目发送到所有网 段,如果多媒体通信采用广播发送方式,则大量的数据将很容易造成“广播风暴, 导致整个网络瘫痪。 为了解决传统客户端/服务器架构流媒体系统所面临的问题, .提出 了组播技术【】【】【】。 组播技术是一点到多点的数据传输方式,它将一组特定的用户主机集合组成一 个组播群组,然后只需发送一次数据,就能把数据同时发送到这些需要它的用户那里, 用户甚至可以分布在独立的物理网络上。组播技术相对于单播减少了数据的冗余, 又没有像广播那样的盲目性,融合了单播和广播各自的特点。另外,组播群组中的 成员关系不是静态的,主机随时可以加入退出群组,一台主机可 以同时是多个主机组 的成员。组播数据包的传输可靠性和单播方式相同,在这种模式下,数据能够被有 效的发送到对数据感兴趣的主机,能够有效节省大规模应用中的网络带宽资源,降低 服务器的压力。 然而,口组播技术也存在一些问题,导致其至今没有得到大规模推广. .组播技术采用了的无连接机制实现一对多的通信方式,不能保证服务 质量。 .组播对成员的管理非常松散,缺乏对成员的有效管理及认证机制。 .由于组播群组是一个随着组播源和组成员的变化而动态变化的网络,组播流量 无法控制和预计,组播采用的技术没有内在的拥塞避免机制,因而容易 导致网络管理问题和阻塞的发生。 .实现组播功能需要所有的路由器都必须支持和启动组播功能,因此在现有的网 络硬件环境下建设组播网络需要较高的投入。 .由于不同厂家产品实施的具体方式不同,各种路由协议之 间缺乏统一标 准,很难协同工作。这也是阻碍组播发展的一个问题。 .组播技术自身的特点就决定了它并不适用于点播系统。 综上所述,口组播技术虽然缓和了传统流媒体技术中遇到的问题,但仍不是一个 能够广泛应用的解决方案。 ....内容分发网络 引内容分发网络的全称是 ,它是一个建立并覆盖在 互联网之上、由分布在不同区域的节点服务器群所组成的虚拟网络。的基本思路 是尽可能降低互联网瓶颈对数据传输速度和稳定性的影响,以保证更快更稳定的数据 传输。实现的方法是在用户密集区放置节点服务器,然后实时的根据网络流量和各个 节点的连接、负载状况,到用户的距离和响应时间等因素来决定将用户导向到最合适 的节点服务器上。因此,可以实现把服务器的内容高效,稳定的发布到用户附近, 使用户感到响应速度大大提高,连接质量也更加稳定,总体性能极大提升。 终靖用户 终蛸用户 圈内容分发网络 既是一种新型的网络构建方式,为能在传统的网发布宽带丰富媒体而特 别优化的网络覆盖层,另一方面,也代表了一种基于质量与秩序的网络服务模式。 包含了分布式存储、负载均衡、网络请求重定向和内容管理四个要素,其中内容 管理、全局网络流量管理和负载调度是核心要素。对用户所在区域和服务器负载 进行判断,将内容缓存到位于网络边缘的缓存服务器上,可以以极为高效的方式为用 户的请求提供服务。通过采用技术能够处理整个网站%%的内容访问量, 减轻服务器的压力,对提升服务器的性能和可扩展性有很大的帮助。 然而,存在高昂的部署成本问题,流媒体业务在达到一定规模后,服务器宽 带依然容易耗尽,所以需要扩充带宽,同时服务器和内容分发系统的数量也要相应增 加才能满足需求,从而大大增加开销。而且反复的通过扩容来满足用户数量增加,扩 容后又需要大力发展客户,这种方法只能是一种权宜之计,无法 从根本上解决流媒体 业务发展所遭遇到的瓶颈问题。 在上述背景下,技术走入人们的视野,一些厂商开始尝试在流媒体领域引入 技术。 ...文件交换系统 .... 是目前最著名的文件交换系统之一,也称为比特流,它是由美国 程序员 使用语言编写的一种支持多点下载,开放源代码的内容分 发软件。网络中的所有节点不光从其他节点处下载数据,同时也将自己的数 据上传给其他节点,从而实现高效的内容分发和文件共享。与普通的下载服务器单独 为每一个下载用户提供服务不同的是,的分配器或文件的持有者将文件发送 给其中一名用户,再由这名用户转发给其它用户,用户之间相互转发自己所拥有的文 件部分,直到每个用户的下载都全部完成。这种方法可以使下载服务器同时处理多个 大体积文件的下载请求,而无须占用大量带宽。目前,各种支持下载的软件层出 不穷,技术己经被广泛地应用于文件下载中。 系统的初衷是为了解决资源发布的负载平衡问题,所以并没有加入搜索 功能。在系统中,需要一个服务器用来记录系统中所有 节点的信息,从而让新加入系统的节点能够找到其他节点。为了知道用户 需要下载的文件在哪些服务器上有记录,在开始下载之前,需要先获取一份 扩展名为的文件,其中记录了服务器的地址,下载文件的摘要和一些 其他的信息。通过服务器进入网络后,就可以通过其他节点下载数 据了。文件非常小,很适合通过网页服务器发布,用户通过点击链接下载该文 件,然后开始下载。 圈 文件交换系统 的优点: .支持文件夹形式一次下载多个文件。 .文件下载使用分块校验,避免下载错误而导致整个文件重传。 .引入了兴趣机制,在一定程度上减少了搭便车的现象。 .通过固定服务器解决了穿透问题。 的缺点: .没有文件搜索机制,文件只能通过其他途径获得。 .服务器只记录了下载资源的名称,缺乏下载信息的说明。 .单一和大量节点之间的频繁数据交换使得服务器负荷过高。 .... 是另一个目前非常流行的文件交换系统。协议是基于 协议的扩展。在系统中,节点可以通过节点或者服务器下载数据,同时服务器 之间也要共享数据并协同工作.通过采用分布式哈希表为每个节点都添加了唯一的 ,从而将网络结构化,因此在一个节点失效时,用户可以迅速找到其他的节点 混合的方式是进行通信,这也有效的减少了 继续下载。另外,采用了/ 网络负荷。 曼务器 曼务器 艮务器 艮务器 节点 节点 节点 节点 节点 田 文件交换系统 的优点: .服务器之间可以互相通信,一台服务器的信息可以很容易的复制到其他服务 器。 .支持基于文件名的资源搜索,这在很大程度上延长了资源的寿 命。 .和相同,文件下载使用分块校验,避免下载错误而导致整个文件重 传。 .引入信用机制,减少了搭便车的现象。 .对用户文件采用了分类策略。 的缺点: .仅仅支持单个文件传输,不支持目录结构。 .不易解决节点都处于内网的穿透问题。 文件共享随着互联网的发展成为了一种大规模的互联网应用,在这些系统中, 不同用户下载相同的文件,文件被分成许多个片段在不同节点间直接进行传输。虽然 与视频点播中多用户观看相同的视频信息有相似的地方,文件共享系统却不能保 证文件块数据的实时性和顺序性,这就很难保证流畅,完整的播放视频文件。 ...流媒体直播系统 技术的出现为服务器/客户端模式下的瓶颈提供了解决方法。网络中的每 个节点的地位都是对等的。每个节点既充当服务器,为其他节点提供服务,同时也从 其他节点下载数据,通过节点之间直接进行数据交换,充分利用了节点的存储和网络 宽带资源,也极大的减轻了服务器的工作负荷。 由于流媒体服务的优越性,近年来,基于的流媒体传输方法得到极大关 注,出现了许多基于的流媒体系统模型。目前,主要模型可以分为基于树状拓扑 协议及其扩展的模型. ,基于网状的模型. 和基于协议的模型 。 基于树状拓扑协议及扩展的模型把参与流媒体数据分发的节点组织成组播 树,父节点单向向子节点传送数据,子节点不向父节点发送数据。这类模型主要 ;旨:,,?,】,】【,,】 等。由于采用了树状结构,该模型有两个主要问题: .离根节点越远的节点延迟越大,为了降低这种影响需要采取某种策略来均衡树 的深度和宽度。 .叶子节点没有参与数据分发,资源没有得到有效利用。 基于网状的模型方案中,组的成员节点组织成一个网状的拓扑,每两个成员之间 有多条路径。每一个成员都会保存自己组中所有其他成员的状态 信息,状态信息定期 更新。基于网状模型的方案主要有觚池们,等。 基于协议的系统模型中,节点之间不需要构造复杂的拓扑关系,节点随机 的给系统中的部分节点发送消息,每个接收到消息的节点继续向其它节点发送消息, 这个过程一直重复,直到消息被发送给系统中的所有节点。在基于协议的流媒 体系统中,每个节点动态的和其它节点交换数据,因此在这种系统中通常需要较大的 缓存,系统的启动延迟也相对较大。但是和树状模型不同的是,每个节点的数据来源 并不依赖于某个特定的父节点,所以系统有更强的健壮性。这类模型典型的是 】。 在上面的几种模型基础上,也开始出现了新型的流媒体点播或直播系统。如 采用树状拓扑实现大规模流媒体点播和直播应用的系统出现于年【,它 在用户之间利用一棵二叉多播树进行实时多媒体数据的传输和共享。年,美国普 渡大学的在网络基础之上实现了第一个准点播系统,该系 统使用了网状多播的策略,但不支持操作。马萨诸塞大学则设计实现了 ,一个基于目录的流媒体点播系统,目录中维护了服务器的影片信息索 引以及组播树中所有节点的信息。新的节点加入时先在目录中查找是否已经存在提供 其请求服务的组播树,如果存在则加入相应的组播树,否则通过服务器创建新的组播 树。是佛罗里达大学提出的一种基于的流媒体点播系统。中的 每个客户端采用一个可变长的缓存来保存它接收到的最近的视频流。将 某段时间内进入到系统的一组节点称为“代一。这种“代一允许客户端在不同的 时刻加入到网络中来,并且存储接收到的视频。年还提出了基于 协议【】的和使用策略提高流媒体服务质量的】等具有理 。 论参考价值的系统。 中国也开始出现采用流媒体技术的应用。年张欣研在模型上提 出了基于的流媒体直播系统。清华大学提出了, 华中科技大学提出了】等原型系统,目前这些系统已处在测试运行阶段。 流媒体直播业务在中国网站中的应用也在悄然兴起,目前中国有 多个网站 开始使用各自发展的软件提供流媒体直播业务,尝试探索流媒体业务的盈利 方式。主要的直播系统有:网络、网络、直播网络、猫 眼网络电视、网络、网络和网络等。 ..主要研究内容及关键技术 本文的主要研究内容有:视频文件在节点间的分片传输方式;如何采用策略来降 低不同节点的异构网络环境对点播系统的影响;如何设计和实现通用型的流媒体 点播播放器,能够支持多种媒体格式,不同码率,支持暂停,拖放,全屏显示等功能。 本文的关键技术包括:基于的拉模式过滤器技术:文件分片下载及缓 冲技术。 ..论文主要成果及创新 目前己就本课题发表论文一篇,实现的原型系统已在上海市科委年度信息 技术领域重点科技攻关项目“面向环境的可管理运营的流媒体内容分发服 务系统与关键技术研究”得到应用,目前该项目已经验收通过。 本文有三点创新:.将和技术结合到一起,实现了新型的拉模式源 过滤器, 并且能够支持多种文件格式媒体播放。 .文献即】中提出了基于技术的文件分片传输选择方案,本文在此之上提出了 基于加权速度分类节点方法的文件分片下载算法。 .综合拉模式源过滤器和文件分片下载算法,设计并实现了一个具有通用性, 易于扩展的流媒体点播播放器的原型。 ..论文组织结构 论文全文共章。围绕着流媒体点播系统播放器框架设计与实现,论文的各 章节组织如下: 第章绪论。本章介绍课题的研究背景、意义及现状,阐述了课题的主要研究 内容、关键技术、主要成果及创新点。 第章流媒体点播系统结构及播放器功能需求。提出流媒体点播系统 的系统结构模型,并进而阐述了播放器的功能需求。 第章基于的拉模式过滤器技术。研究采用拉模式过滤 器技术,实现同时兼容多种媒体格式,并且能够进行跳转播放的通用型点播播放 器方案。 第章文件分片下载及缓冲技术。提出针对不同节点的异构网络环境下,根据 节点速度进行节点分类,并且采取不同下载策略的优化下载技术,以及减少硬盘读取 次数的缓冲方法。 第章播放器实现及性能模拟测试。基于前两章提出的技术对播放器不同模块 的实现,通过项目实践以及模拟环境测试,与传统的视频点播系统进行了性能比 较,验证了文件分片下载算法的进一步优化效果。 第章总结与展望。对论文作了小结,同时指出了进一步工作的方向。 第章流媒体点播系统结构及播放器功能需求 ..系统结构模型概述 下图为流媒体点播系统的结构图: 播放器模块 播放线程 上传服务线程:: : 工 。缓冲区管理嚣.?一文件数据.一上传管理器 。 : 蛰棼棚驻 飘冒理帮 一 网络搜索层 ? ? /罢,, 与其它提供服务的节点建立的网 与其它请求数据的节点建立的网 络连接 络连接 图 流媒体点播系统结构 流媒体点播系统模型主要分为三层: .基于/的网络连接层。位于整个流媒体点播系统最底层的网络连接 层采用和两种方式进行数据传输。 .基于分布式哈希表的搜索层。网络搜索层通过分布式哈希表 为上层提供了媒体资源发布和快速搜索的接口,并且使用方式 进行网络消息传输。 .播放器模块。播放器模块调用提供的接口检索拥有媒体资源数据的其 他节点,在查询到这些节点后,通过下载管理器网络连接层下载数据到本地缓 冲区或文件,一方面让播放线程对媒体数据进行播放,另一方面 同时为其他节 点提供数据分享上传服务。 ..系统网络拓扑结构 媒体信息发布平台 图系统网络拓扑结构 图为流媒体点播系统的网络拓扑结构。如图所示,视频媒体信息通过媒体 信息发布平台的网页服务器发布到互联网上,普通节点在登录信息发布平台后可以通 过点击网页链接打开播放器并点播某个媒体资源。媒体资源数据一部分通过媒体信息 发布平台的强节点服务器获得,也可以通过拥有文件数据的普通节点即曾经点播过 此媒体资源并且仍有部分资源数据的节点来获得。所有的强节点和普通节点都存在 于网络中,通过对媒体资源的哈希值的检索,即可以得到拥有这个资源的节点列 表。节点与节点之间采用方式查询互相的状态,包括节点负载情况,文件数据 是否存在等;采用方式传输媒体数据,以保证数据的准确性和顺序性。 ..分布式哈希表网络层 ...网络介绍 分布式哈希表网络层位于/网络连接层的上层,负责覆盖网络的建立, 节点信息更新维护,媒体信息的发布,更新和搜索等功能。在我们的流媒体点播 系统中,采用了基于的全分布式结构化拓扑网络,也称为分布式 哈希表网络,简称网络。 系统的拓扑结构一般可以分为四种:集中式拓扑结构, 以”】为典型代表;全分布式非结构化拓扑 ,】是基于此基础上的典型应用;全分布式结构化拓扑 ,如,,,“ 以及 等;半分布式拓扑 。 集中式拓扑结构将整个网中中所有节点的共享资源信息保存在中心索芒/务 器上,因此在搜索时具有很高的效率,也具有很好的可维护性,但是可靠性和可扩展 性较差。全分布式非结构化拓扑没有中心索引服务器,成为一个纯粹的网络,在 提高了可靠性的同时却较大的降低了搜索的效率。基于分布式哈希表的全分 布式结构化拓扑的出现为网络系统带来新的希望,在保证了良好 的可靠性,可扩 展性和可维护性的同时,又提供了效高的搜索效率。在众多的网络模型中, 的应用最为普遍,许多主流的软件,如,,, 中都有网络或者其变形版本来进行资源搜索。 ...搜索机制 由美国纽约大学的.和 于年在 其研究结果中提出。 是分布式哈希表技术的一种,不过和其他实现技术比较,如、 、等,通过基于概率统计的桶路由表和独特的异或算法距 离度量方式,建立了一种全新的拓扑结构,相比于其他算法,大幅提高了路由 查询速度。 将每个节点的信息抽象成一个位的哈希值和节点信息地址, 端口号组成的三元组,每一个唯一的对应于某一个节点。这个三元组保存 在中若干距节点逻辑距离在一定范围内的最“近”的节点上,以保证查询的有效 性。 位之间的距离通过异或运算得到,结果越大表明两者之间距离越远,即高 位差异越大,距离越远。由于异或运算具有一些特殊性质,如非负 性,对称性,单向 性,传递性和三角不等性,所以为网络进行可靠的距离度量提供了基础,并且能 够保证距离与节点之间一一对应。 协议将所有的节点信息存放在个桶中,每个桶分别用于存放 距离在。到。的节点信息三元组列表。其它节点对自己的任何消息如,请 求数据,传输数据都是访问的一种形式。列表头部保存最近最少访问的节点,最近 访问最多的节点放在尾部。每一个桶最多只存放个节点是一个估计值,越 小,网络消息数量越少,搜索时间越长,反之亦然。当某个节点收至新节点的访问 消息时,如果根据距离计算得到的那个桶还没有满,那么就把新节点放到尾部。如 果桶已经满了,就先向桶头部的节点发送消息,测试其是否依然在线。如 果超时后没有响应,那么就把头部的节点去掉,把新的节点放在尾部;如果有响应, 那么将新的节点抛弃,并将原来在头部的节点放到尾部。采用桶的方式来 维护整个覆盖网络结构,既能够保持节点信息的有效性,又能够 解决拒绝服务攻 击。 、 协议定义了四种远端过程调用:、、 。 向一个节点发送探测消息,根据其是否返回消息来判断是否仍然在线。 向一个节点通知存储一个, 对,其中是资源的位, 是资源的相关信息,如在哪个节点上有这个资源的数据。 在网络中搜索一个指定位的节点.收到这个消息的节点如果不是目 .. 标节点,就把桶中离这个最近的个节点三元组信息返回给源节点。 和?类似,不过搜索的是指定位的资源信息。收到这个消息 的节点上如果没有这个的资源信息,就把桶中离这个最近的个节点三 .. 元组信息返回给源节点。否则就返回这个的资源信息。 发布和搜索资源的策略是:根据文件的数据进行某种算法得到 位的资源,当前情况下和这个离得最近的的节点将保存这个资源的拥有者列 表。因此在发布和搜索资源时最关键的一步就是如何找到这个最近的节点。 找到这个节点是通过频繁的调用 来实现的,节点首先从自己的 桶中找到个离这个资源最近的节点,发出 消息,然后在收到的返 回列表和自己的桶中再次找出最近的个节点,发出 消息,周而复始, 直到最终的个节点保持不变,即得到需要的结果。 在发布资源时,节点首先根据算出的资源找到个最近的节点,然后定期调 , 用将资源的信息发布到这个节点上。搜索资源时,节点调用 因为其过程与 几乎完全相同,所以最后一定会逐渐收敛到这个节点或 者其中的一部分节点上。最后由这些节点将资源信息和拥有者的列表返回给查询的节 点。 虽然具有很高的搜索效率,但是存在模糊搜索较弱的缺点。在点播 系统中,由于媒体信息由媒体信息发布平台发布,用户可以在发布平台中模糊搜索媒 体资源,而媒体资源的由发布平台已经算好了,用户只需要点击网页链接获取到 资源,再根据在网络中搜索节点即可,因此也就可以避免缺乏模 糊搜索的弱点。 ..播放器模块及功能需求 播放器模块位于整个流媒体点播系统的最上层,负责调用接口搜 索和发布资源信息,调用网络连接层接口进行数据的下载及上传,并管理缓冲区中的 数据,为解码器提供媒体数据,最后将媒体信息呈现给用户。 流媒体点播系统播放器模块需要实现的功能有: .支持多种数据格式。如果能够支持多种数据格式,一方面可以减少在发布资源 时将数据重新编码而造成的信息损失,另一方面也能够在一定程度上实现 服务。 .支持多对多服务。一对多服务在许多直播系统中都有实现,但是如果出现 整个播放树中的某个节点突然退出的情况,恢复播放树的过程比较复杂,需要 消耗的时间也较长。通过多对一服务,可以为用户提供更多的数据来源,当出 现部分节点中途退出或者不稳定的情况时不至于对播放流畅度产生太大影响。 .能够适应不同节点的网络异构性。网络中的一大特点就是不同 节点所处的 网络环境相差很大,如果对所有的节点采用相同的策略,那么网络环境较差的 节点将对整个点播过程造成很大的影响。因此,需要设计一种针对不同节点的 网络异构性而采取不同措施的下载策略。 .数据缓冲区管理。由于从多个不同节点同时下载媒体资源数据,同时又需要给 多个节点提供数据,点播系统的特点导致需要在节点上保存的数据比直播系统 要大得多,因此需要在本地硬盘中创建临时数据文件。为了避免对硬盘的频繁 读写,需要在内存中开辟缓冲区,既可以为解码器缓冲数据,同时又能减少硬 盘的读写次数。 .支持暂停和继续,跳转到指定部分播放。点播系统和直播系统的另一个不同之 处在于,直播系统中一个频道的所有节点都在播放同样的信息,用户无法选择 观看媒体中的某一部分,或者从一个部分跳转到另一个部分,也不能暂停和继 续。而在流媒体点播系统中,需要为用户提供更大的自由度,除了 要支持随时 跳转到媒体的任何部分播放外,还需要能够根据需要暂停和继续播放。 .较短缓冲时间,尽可能保证流畅播放。点播过程的流畅度将直接决定用户体验 的舒适度。如果将数据都下载好了再播放,虽然流畅,但是在启动播放之前的 等待时间也可能使人丧失耐心。反之,缓冲时间太短,则有可能因为频繁的停 顿带来痛苦的体验。设定一个合适的缓冲区大小阈值,当超过多少时开始播放, 有效的解决服务节点突然断线带来的影响,这都是保证舒适用户体验的重要因 素。 第章基于的拉模式过滤器技术 .. 拉模式解码器原理 】【】是微软平台上的流媒体架构。它为多媒体流 提供了高质量的采集和回放,支持包括,,,,音频文件等 多种格式。除此之外,还支持从数字或者模拟设备采集流媒体数据, 的播放,视频的非线性编辑等功能。通常与开发包一起发布。目 前,其最新版本为.。 不光提供了上面的这些功能,最重要的是,它提供了基于组 件对象模型的开放式开发环境,使得用户可以根据自己的需要定制自己的流媒体组 件。 使用“ 一模型来管理整个数据流的处理过程。参与数据处 理的各个功能模块叫做过滤器. 将各个按一定的顺序连接 成为一条“流水线以使其协同工作。下图是典型的 的工作流 程图。图 工作流程 过滤器的实际功能就是对输入流数据进行某种处理并将处理后的数据输出到下 一个过滤器或是其它输出设备。因此按照功能来分,过滤器大致分为三类:源过滤器, 变换过滤器,渲染过滤器。源过滤器主要负责取得数据,然后将数据往下传输给变换 过滤器。数据源可以是文件、计算机里的采集卡或者数字摄像机,甚至是保存在内存 中的一段来自因特网的数据。变换过滤器主要负责数据的各种转 换,比如解码视频数 据或者音频数据。渲染过滤器主要负责数据的输出,可以将数据发送到声卡、显卡进 行多媒体信息播放,也可以输出到文件进行存储。三个阶段往往不只一个过滤器,而 是由多个过滤器来完成所需的功能。比如,数据转换过程通常会由视频解码器,音频 解码器来共同完成。下图展示了在播放文件时过滤器协作的过程。 田过滤器协作播放文件 如图所示,过滤器间连接点被称为“,过滤器通过来传递数据。图中 的箭头代表了数据传递的方向。 ...两种数据传输模式 过滤器的数据传输模式主要有两种:推模式 和拉模式 。 典型的推模式下,源过滤器具有自己产生数据的能力,并且一般在它的输出 上有独立的子线程负责将数据传递下去。如使用模型采集卡的“ 来进行数据采集就是推模式的一种。拉模式的源过滤器不具备自己产生数据的 能力,这种情况下,在源过滤器后往往紧跟着一个 解析过滤器或 分离过滤器。这种过滤器一般在输入上有个独立的子线程,负责不断地 向源过滤器索取数据。源过滤器成功获得数据后将数据传递给解析过滤器或分离过滤 器,处理后再将数据继续传递下去,常见的情况如文件源。推模式下,源过滤器是主 动的;拉模式下,源过滤器是被动的,因而往往需要通过异步方式来获取数据。 ...采用拉模式过滤器的优势 近几年来计算机处理器性能有了很大的提高,多媒体视音频软解码技术发展也突 飞猛进,多媒体文件数据格式层出不穷,因而也出现了许多基于的软件解 码器甚至解码器集合,其中有许多都采用了的拉模式。在视频点播系 统中,用户需要播放哪个视频数据源或者播放其中哪一部份,这些情况都是未知的, 拉模式的解码器正好可以作为整个点播系统的驱动器,通过它们来驱动整个网络 的数据请求和传送。这样就可以很容易的实现一个适用于各种多媒体视音频文件的通 用视频点播系统,而不需要在数据发送前对数据进行任何格式转换,也不会带来 任何编解码信息损失。 另一方面,由于传统的服务器/客户端架构流媒体采用的播放技术大多也是采用基 于过滤器的播放器,比如: 和 等。 如果在点播系统中也采用拉模式过滤器进行数据播放呈现,可以减少从现有的服 务器/客户端架构流媒体系统过渡到流媒体点播系统的开发时间和难度,使其更加 容易实现,。 ..点播播放器中的拉模式源过滤器 由于完全基于方式,因此在点播播放器中需要实现的与播 放流程控制相关的所有功能都可以通过调用接口暴露的函数来实现。以下 是在我们设计拉模式源过滤器时需要用到的最重要的一些接口。 ...接口 接口提供了用于建立一个完整的从获取数据,转换数据到渲染数据 并输出到屏幕的“ ,整个播放流程的实现可以通过简单的编码即可以实现。 接口暴露了,,等几个重要的函数。 其中,函数可以将指定的对象添加到“ 中。 则是将对象从“ 中去掉。这里的可 以是任何系统中已有的?过滤器如解码器,也可以是我们自己编码实现 的可以通过网络获取媒体数据的源过滤器。 函数则是对某个指定的过滤器上的进行渲染,如果在当前的“ 中可以成功的连接所有过滤器实现播放,则返回成功;反之,返回失败。通 过函数可以很容易的了解用户节点计算机中是否已经安装了播放某种格式媒 体文件需要的解码器。 ...接口 是所有过滤器都需要继承的接口,也是点播播放器拉 模式过滤器的最重要的主体。每个过滤器中都有自己独有的,应用程序可以通过 接口暴露的函数来枚举和查询该过滤器中包含的的相关信息。 函数用于枚举一个过滤器上所有的。 根据一个的标识字符串来查找一个。 ...接口 是所有过滤器输入输出需要继承的接口。与之间通过接进 行连接,应用程序也可以通过它来查询的详细信息或者改变的状态。 函数可以返回支持的所有媒体类型。每一种类型使用两个 来唯一标识,一个用于标识主类型,另一个标识子类型。 函数用于将两个一个输出,一个输入连接起来,如果支持的 媒体类型一致,则返回成功,否则返回失败。 ...接口 接口实现了在一个过滤器上的异步数据请求,只有在需要实现拉模式的过滤器的输出上才需要继承这个接口。这个接口对于实现拉模式源过滤器非 常重要,因为在点播方式下,许多媒体数据有可能需要从网络上的其它节点获取 到之后才能进行播放,这时数据获取方式必须使用异步方式以避免程序因为等待数据 而停止响应。 在使用接口时,处于下游的过滤器会自动调用其函数来 读取数据,此时在函数中可以实现等待网络数据的代码,而并不会因为等 待而影响下游过滤器的播放。 ...接口 接口对于实现播放的暂停,继续非常重要,因为它提供了对整个 “ 中数据流的控制方法,包括常用的启动,暂停,停止等方式。 函数控制“ 中的流水线开始运转。在一个媒体数据的“ 所有过滤器全部连接好之后,调用的第一个函数往往就是它。 函数可以暂停当前的播放,此时再次执行函数可以从当前的位置继续 播放。 函数可以停止当前的播放,此时执行函数将从头部开始播放。 ...接口 接口提供了查询和设置流媒体播放位置的功能。 函数获取当前播放位置和停止的位置,可以通过此函数来得到媒体总 播放时间以设定拖放滚动条的最大值。 函数设定当前播放位置,通过此函数可以实现在鼠标拖动滚动条滑块 时跳转到指定的时间点开始播放。 函数仅获取当前播放位置的时间点,通过此函数可以实现滚动 条滑块自动跟随播放进度前进。 ...接口 接口可以实现全屏播放或者窗口播放。在播放过程中,将播放窗口 全屏显示的功能能够为用户提供更好的显示精度以及更大的显示尺寸,在播放高码率 媒体数据时,对提高用户体验舒适度有重要意义。同时,提供窗口和全屏模式的切换 也能够极大的方便用户的操作使用。 函数设定播放窗口的父窗口,当移动父窗口时,播放窗口将自动跟随 父窗口移动。 函数获取当前的显示模式是否正处于全屏方式。 函数在窗口和全屏显示模式间切换。 ...其它接口 除了以上提到的主要接口之外,还有许多接口虽然使用较少, 但对于将来进一步 改进点播播放器也有很重要的意义。 向管理器通知过滤 接口可以向“ ”管理器发送消息, 器中发生的事件。 接口可以提供质量控制,这对于实现点播系统很有帮助。第章文件分片下载及缓冲技术 网络各个节点的网络传输质量和速度具有很大的差别,如果采用对所有节点 一视同仁的方式下载数据,速度较慢,网络质量较差的节点很有可能成为瓶颈,导致 播放的频繁停顿或者失败,而且,速度较快,网络质量较高的节点却没有得到充分的 利用,浪费了资源。本章为了解决网络异构所带来的问题提出了文件分片策略,片段 缓冲技术,加权速度分类节点方法和文件分片下载算法。 ..算法基本策略 在我们的点播系统中,采用了如下策略: 每个节点在开始播放网络中的一个媒体文件时,通过网络发布自己拥有 这个文件数据的消息。 每个节点维护自己当前拥有的数据及服务状态以供其他节点查询。 需要下载数据的节点通过网络搜索拥有某个文件数据的节点,并定时通过 方式询问部分节点拥有的数据及服务状态,记录每次询问时对方的响应时 间和状态信息数据,以做为参考。 节点“速度信息为节点响应时间和传输速度的加权和。响应时 间通过获取节点状态信息得到。通过传输文件数据得到。 节点根据“速度信息分为三种,正在服务节点,准备服务节点,备 选服务节点。 正在服务节点拥有响应时间和传输时间,准备服务节点拥有响应 时间,备选服务节点暂无速度信息。 定期从备选服务节点中选取部分节点获取响应时间,并与准备服务节点中 其他节点比较,替换慢的节点。 定期从准备服务节点中选取部分节点尝试传输数据以得到传输速度,并与正 在服务节点中其他节点比较速度,替换慢的节点。 定期维护正在服务节点和准备服务节点中的节点状态信息。 正在服务节点根据速度信息分出高速和低速节点,分配任务时优先让高速节点下 载更靠前更多的数据,低速节点下载靠后较少的数据。 当节点中缓存的数量低于某个阈值并且下载速度低于当前媒体的播放速度时,通 过在消息加入紧急标志来提高自己的紧急度。 在每个服务节点上都有一个上传优先队列,根据不同请求节点的紧急情况来优先 处理某些节点的数据请求。 ..文件分片策略 在点播系统中,由于视频媒体数据往往较大,我们需要在节点的硬盘及内存 中存放部分数据以作为镜像。当其他节点需要这些数据时,可以为其提供数据,从而 减轻媒体发布服务器的负载。然而,因为节点中往往存放的只是某个媒体资源的部分 数据片段,所以其他节点在下载数据之前,不光需要从网络查询哪些节点拥有该 媒体的数据,并且需要知道这些节点上拥有哪些数据。为此,我们提出了文件分片策 略。 首先,在节点上拥有一个媒体资源的哪些数据是一个动态变化的信息,所以称为 状态信息。状态信息由该媒体资源对应的位和文件数据块状态列表组成。 为了标识节点中是否拥有某部分数据,我们将整个媒体资源对应的文件数据按照 固定大小分成许多块,如果最后一块不足,也表示一整块数据。然后用,分别 表示节点中没有或者拥有该块数据内容,称为文件数据块状态。节点上某个媒体资源 所有的文件数据块状态按照在文件中的位置先后排列成的数组称为文件数据块状态 列表。 每个节点在播放过程中同时维护本地的节点状态信息,定时保存到硬盘的状态文 件中,状态文件采用资源的转换的进制字符串作为文件名。通过这样的方式, 可以实现再次启动播放器播放曾经播放过的资源时,自动读取以前的状态文件以判断 目前已经拥有哪些数据,从而避免再次下载已有的数据,并且能够在不连接网络的情 况下继续播放。 数据块大小是一个估计值,取值时要权衡传输状态信息所占用的带宽资源及下 载一个完整数据块需要的时间。越小,下载一个数据块的时间越短,下载失败的情 况越不容易出现,但是状态信息列表的数据量就会越大。反之,越大,传输状态信 息所需要的带宽资源就越小,但是如果节点网络不够稳定,下载一块数据时失败的概 率也会相应增加。在我们的系统中,我们采用的大小为。如果节点的网络带 宽为/,这时下载一个数据块平均所需的时间约为秒,能够较好保证传输的成 功率。一个小时的采用方式压缩的媒体资源大小一般在左右,数 据块 状态列表大小在之间,传输一次状态信息占用的带宽资源较小。另外,由于媒 体文件数据往往比较连续,所以状态信息数组还通过游程编码进行压缩,这样可以将 实际的状态信息数据大小进一步减小到几十个字节。 ..片段缓冲技术 点播系统需要将媒体数据部分或全部保存在节点硬盘中,大量的文件片断通 过其他节点下载,如果每一个数据块都直接调用硬件写入硬盘,势必极大增加硬 盘的读取写入次数,从而影响硬盘使用寿命。在许多文件共享系统中,为了避免 因为过多的读写硬盘,通常会采用一些内存缓冲技术。在我们的点播系统中同样 也采用了自己的片段缓冲技术。 片段缓冲技术由缓冲管理器在内存中开辟一定大小的空间来缓存媒体数据,由于 点播系统对数据访问具有顺序性,所以采用队列来实现缓冲区非常合适。这样既能够降低硬盘对播放效率的影响,也有助于减少播放器频繁读写硬盘的次数。 在下载过程中,一次下载任务一般同时分配?块数据块从不同的 节点下载,每个 数据块大小为具体下载算法将在后面详细介绍。为了方便任务分配,缓冲队 列开辟的内存大小瓯蝴为下载任务大小的整数倍一。 四脚嚣缸 缓冲队列的头部为当前播放到的数据块,其后依顺序存放后面的数据块,直到缓 冲区满或达到媒体数据的尾部。 在播放时,设置两个阈值和动,分别用于控制什么时候开始播放和开始下 载。 .当缓存中的数据量瓯,咖,时,缓冲管理器可以将数据返回给拉模式 源过滤器,并启动播放。 .当缓存中的数据量瓯啦枷气皿胳时或者媒体资源尾部已经在缓冲区中时,缓 冲管理器不再通过其他节点下载数据以节省带宽资源。 .当缓存中的数据量翻咄衍%动?时,缓冲管理器重新启动下载或者从本地硬 盘中缓存的文件中读取需要的数据, 直到填满缓冲区或达到媒体数据的尾部。 .当拉模式源过滤器请求某块数据时, 如果该数据块在缓冲区中, 则将该数据块 之前没有保存到本地文件的数据存入本地文件,再将其移出队列。如果该数据 块不再缓冲区中,则将缓冲区中的所有没有保存到本地文件的数据保存,同时 清空缓冲区,然后从网络下载或从本地缓存文件中读取该数据块,并放到 队列的头部。 .当播放器退出时,如果缓冲区中有没有保存到本地硬盘中的数据块,则将其保 存到本地硬盘中。 通过使用片段缓冲技术,从网络中下载的所有数据都会先存放在内存缓冲队 列中,然后在必要的时候才会保存到本地硬盘,保存和读取时一次性至少写入或者读 取大小的数据,因此可以通过调节?的大小来减少硬盘的读写次数。另外,通过 更改大小可以调节播放器在内存中开辟的缓冲区大小,更改和%动大小可以 调节播放器缓冲等待时间和启动数据缓冲的阈值。在媒体码率较低时,可以适当调小 这三个值以降低系统资源消耗,反之则可以开辟更大的缓冲空间 以减少高码率媒体数 据播放过程中的停顿。 ..加权速度分类节点方法 通过网络找到的拥有某个文件数据的节点分为三类: .正在服务节点与其建立连接且已获得其状态信息的节点,节点 数上限为.准备服务节点仅通过方式获得了状态信息的节点, 节点数上限为 .候选节点包含还没有获得状态信息的
/
本文档为【P2P流媒体点播系统播放器框架设计与实现(可编辑)】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索