将基于p2p网络下载的多媒体文件实现实时播放方法

文档序号:7625638阅读:183来源:国知局
专利名称:将基于p2p网络下载的多媒体文件实现实时播放方法
技术领域
本发明涉及一种应用于网络中的多媒体播放方法,尤其涉及一种将位于客户端基于P2P网络下载的多媒体文件实现实时播放的方法。
背景技术
目前,人们在互联网上提供多媒体点播服务多采用传统的中央服务器模式,即人们将媒体源存储在中央服务器上,并且以流的方式向外广播,客户端直接从服务器获取数据。在这种方式下,数据处理压力和带宽压力全部由中央服务器承担,随着并发用户的增多,服务器的成本将不断地增加,用户体验也得不到保证。以点播500Kbps码流的视频媒体为例,一台百兆带宽的网络服务器,在带宽使用率50%的情况下,最多只能支持(100M*50%)/500K=100个用户同时在线点播观看。
为了解决带宽成本的问题,目前市场上有一些P2P(peer to peer)流媒体文件的实时播放方法,比如中国发明专利公开号CN1633109A
公开日2005年6月29日的一种流媒体系统,在该专利文献中通过引进P2P对等网络节点间相互交换数据的思想,在一定程度上缓解了服务器的带宽压力。但是,由于流是实时的,在同一时刻只有少量数据在内存中缓冲,而每个节点的观看进度都不一样,所以在通常情况下,同一个媒体流的节点间可用来相互交换的数据很少,大多数的数据还得从流服务器获得;另外,也由于流的实时性,每个节点的下行速率最多和流的码率相当,这样,对于一些带宽不是很稳定的节点(譬如局域网用户),在下行带宽达不到码流的时段,将不能顺畅地观看,而在下行带宽超过码流的时段,也不能充分利用带宽。
而目前下载速度较快,而且又能充分利用带宽的方式是P2P下载,例如BT下载(俗称变态下载)和eMule(俗称电驴)下载,但是它们却无法实现实时播放,而只能在下载后再播放,这样就无法实现多媒体文件的实时播放功能。

发明内容
本发明所要解决的技术问题是提供一种将基于P2P网络下载的多媒体文件实现实时播放方法,它应用于网路的多媒体文件在线点播,不但可以缓解服务器的带宽压力,保证整个网络的高效运行,并且可以提高目前点播的播放质量。
为了解决以上技术问题,本发明提供了一种将基于P2P网络下载的多媒体文件实现实时播放方法,所述下载后的多媒体文件位于客户端,所述的客户端为P2P网络的一个节点,其中客户端包括一个播放模块和一个P2P数据传输模块,所述多媒体文件的原始文件在P2P网络的某个或者某些个节点上,所述播放模块包括一个基于Windows的播放器;其中,所述P2P数据播放模块还包括一个以上的数据采集插件和/或组件,所述的数据采集插件或组件与所述P2P数据传输模块相结合,在本地虚拟出一个网络文件,播放时播放器直接播放所述网络文件;具体播放步骤如下首先上层播放器向数据采集插件或组件发出一个播放需求,然后数据采集插件或组件根据播放器的要求,按照定义的接口向所述P2P数据传输模块请求数据,P2P数据传输模块接到请求后会在本地已经下载的数据中查找符合播放顺序要求的数据,然后将数据输出给数据采集插件或组件,而数据采集插件或组件将得到的数据返回给上层播放器,最后播放器根据得到的数据进行播放。
所述客户端可以根据可识别的链接地址,关联相应的数据采集插件或组件。
所述数据采集插件或组件都预先通过向Windows的注册表中写入相关信息的方法向系统注册,使得播放器可以通过所述相对应的链接地址,从注册表中得到相关的处理信息,并自动调用相关的插件/组件。
不同的所述数据采集插件或组件支持不同的媒体格式。
所述P2P数据传输模块具备缓存机制和或优先级请求策略,它能根据所述播放模块的数据请求调整从P2P网络中获取所需数据的次序。
所述播放模块在所述客户端播放完成后删除本地存储的文件数据。
因为本发明的数据采集插件或组件与P2P数据传输模块结合虚拟出了一个网络文件,而该文件类似本地文件一样,这样播放器就可以象播放本地文件一样实时播放BT下载的文件;数据采集插件或组件预先通过向注册表中写入相关信息的方法向系统注册,使得播放器可以通过相应的链接地址,从注册表中得到相关的处理信息,自动调用相关的插件/组件,由数据采集插件或组件向P2P数据传输模块请求数据,这样通过插件/组件可以将P2P数据传输模块和播放模块结合,同时也将数据的播放处理和数据获取隔开,使得数据播放和P2P数据传输模块可以独立工作,这样,可以充分利用P2P下载的优点,使得P2P数据传输模块可以不受数据播放需求的限制,最大限度地获得数据,从而一方面能保证本地播放有足够的缓存数据,最大限度地保证了播放的流畅;另一方面,可以使得本地有足够的数据和P2P网络中的对等节点进行交换,保证了整个网络的高效运行;另外P2P数据传输模块在接到数据请求时如果发现本地没有符合的数据,则按照一定的优先级和缓冲策略从BT网络中获取,这样就进一步保证了点播的质量;所述不同插件或者控件可以支持不同格式媒体文件,这样就提高了系统的可扩展性;还有,由于所述数据播放模块在客户端点播观看完成后可以自动删除本地存储的文件数据,这样减少了数据的外露,保护了版权。


下面结合附图和具体实施方式
对本发明做进一步阐述。
附图是利用Windows Media Player播放器实现本发明的实施例。
具体实施例方式
如附图所示,首先构建一个P2P的对等网络,这样基于P2P的对等网络,使得网络中的边缘带宽得到充分的利用,分担了服务器的压力;而基于文件的数据传输方式,使得客户端在获取数据的时候不会受到媒体流码率的限制,可以在本地带宽允许范围内最大限度地提高下载和上传速度,在保证本地播放数据需求的同时,也提高了整个节点网络的传输效率;数据存储到硬盘的策略使得每个节点能存储所有已经下载的数据,大大提高了网络节点间数据交换的可能。
而对于结合P2P数据传输模块和播放模块的数据采集插件和组件设计是本发明的发明点。播放模块的主要工作是在本地虚拟一个网络文件,利用Windows Directshow技术(该技术为微软公司开放给公众的标准技术)简单高效地完成和播放器之间的数据传递。具体的做法是,根据不同的媒体格式,开发相应的数据采集插件或者组件(比如用来播放Real格式媒体的Source Filter就是一种COM组件),而数据采集插件或者组件都预先通过向Windows的注册表中写入相关信息的方法向系统注册,使得播放器可以通过所述相对应的链接地址,从注册表中得到相关的处理信息,并自动调用相关的插件/组件,该插件或者组件跟P2P数据传输模块相结合,虚拟出一个网络文件,使得对于播放器而言,其播放行为和播放本地文件一致,从而简化了和播放器之间的数据接口,在大大降低开发工作的同时提高了系统工作的可靠性。本方法的另一个好处是以独立插件或者控件的形式来完成对各种格式媒体的支持,提高了系统的可扩展性。
如图所示,它是利用本发明实现点播的实际模块调用关系图(箭头方向为数据请求的方向)。播放器为Windows Media Player,开放给客户端的为一个可识别的链接地址,将该地址输入播放器,播放器根据链接在注册表中找到支持该链接的的数据采集插件或组件,并发出播放请求,然后数据采集插件或组件根据播放器的上层要求,按照定义的接口向所述P2P数据传输模块请求数据,P2P数据传输模块接到请求后会在本地已经下载的数据中查找符合播放顺序要求的数据,然后将数据输出给数据采集插件或组件,而数据采集插件或组件将得到的数据返回给播放器的上层,最后播放器根据得到的数据进行播放。
对Windows Media格式媒体的处理如下由于Windows系统本身对于Windows Media格式的支持比较完整,只需要实现一个简单的数据采集插件即可。该插件工作于拉模式,和P2P数据传输模块相结合,根据上层Windows Media处理模块(Windows Media Component)的要求(由于数据采集插件工作在拉模式,Windows Media Component会主动要求数据,并且给出需要的数据起始点和数据长度),按照定义好的接口从P2P数据传输模块请求数据,数据传输模块接到请求后会先在本地已经下载的数据中查找符合要求的数据,如果本地没有,则按照一定的优先级和缓冲策略从对等网络中获取,输出给插件;插件得到数据后返回给上层,从而实现数据从传输模块到上层应用的传递,而播放器得到数据后就可以实时播放了。
同样,对Real格式的媒体处理如下实现一个工作于拉模式下的组件Source Filter(Souce Filter是一种用来获取数据的Directshow组件),与上文中处理Windows Media格式媒体插件的工作机制相似,该Source Filter也是和P2P数据传输模块相结合,根据上层DirectShow处理模块的要求,按照定义好的接口从P2P数据传输模块得到数据,并返回给上层。同样道理,对其它格式的媒体文件的实现过程类似,不同的是采用不同的数据采集插件或组件。
从上文中的描述可以看出,本发明通过虚拟网络文件的独立数据采集插件或组件方式,在将数据播放模块和P2P数据传输模块巧妙结合的同时也将数据的播放处理和数据获取隔开,使得数据播放和P2P数据传输模块可以独立工作,这样,P2P数据传输模块可以不受数据播放需求的限制,最大限度地获得数据,从而一方面能保证本地播放有足够的缓存数据,最大限度地保证了播放的流畅;另一方面,可以使得本地有足够的数据和对等节点进行交换,保证了整个P2P网络的高效运行。
为了提高最终用户的使用体验和提高基于本方法二次开发的简易性,在本发明中所有的组件或插件都预先通过向注册表中写入相关信息的方法向系统注册,使得播放器可以通过相应的链接,从注册表中得到相关的处理信息,并自动调用相关的数据采集插件或组件来完成本方法所支持的多媒体文件点播。这样,最终用户的只需要将相应的播放链接输入给媒体播放器,就能开始点播,而不需要其他额外的操作。
客户端在播放完成后,可以自动删除本地存储的文件数据。
权利要求
1.一种将基于P2P网络下载的多媒体文件实现实时播放方法,所述下载后的多媒体文件位于客户端,所述的客户端为P2P网络的一个节点,其中客户端包括一个播放模块和一个P2P数据传输模块,所述多媒体文件的原始文件在P2P网络的某个或者某些个节点上,所述播放模块包括一个基于Windows的播放器;其特征在于,所述P2P数据播放模块还包括一个以上的数据采集插件和/或组件,所述的数据采集插件或组件与所述P2P数据传输模块相结合,在本地虚拟出一个网络文件,播放时播放器直接播放所述网络文件;具体播放步骤如下首先上层播放器向该数据采集插件或组件发出播放请求,数据采集插件或组件根据播放器的上层要求,按照定义的接口向所述P2P数据传输模块请求数据,P2P数据传输模块接到请求后会在本地已经下载的数据中查找符合播放顺序要求的数据,然后将数据输出给数据采集插件或组件,而数据采集插件或组件将得到的数据返回给上层播放器,最后播放器根据得到的数据进行播放。
2.如权利要求1所述的将基于P2P网络下载的多媒体文件实现实时播放的方法,其特征在于,所述客户端可以根据可识别的链接地址,关联相应的数据采集插件或组件,从而实现对不同格式文件的识别和相应的处理。
3.如权利要求1或2所述的将基于P2P网络下载的多媒体文件实现实时播放的方法,其特征在于,所述数据采集插件或组件都预先通过向Windows的注册表中写入相关信息的方法向系统注册,使得播放器可以通过所述相对应的链接地址,从注册表中得到相关的处理信息,并自动调用相关的插件/组件。
4.如权利要求1或2所述的将基于P2P网络下载的多媒体文件实现实时播放的方法,其特征在于,所述不同的数据采集插件或组件支持不同的多媒体格式。
5.如权利要求3所述的将基于P2P网络下载的多媒体文件实现实时播放的方法,其特征在于,所述不同的数据采集插件或组件支持不同的多媒体格式。
6.如权利要求1或2或5所述的将基于P2P网络下载的多媒体文件实现实时播放的方法,其特征在于,所述的数据采集插件/组件工作在拉模式。
7.如权利要求3所述的将基于P2P网络下载的多媒体文件实现实时播放的方法,其特征在于,所述的数据采集插件/组件工作在拉模式。
8.如权利要求4所述的将基于P2P网络下载的多媒体文件实现实时播放的方法,其特征在于,所述的数据采集插件/组件工作在拉模式。
9.如权利要求1所述的将基于P2P网络下载的多媒体文件实现实时播放的方法,其特征在于,所述P2P数据传输模块具备缓存机制和优先级请求策略,它能根据所述播放模块的数据请求调整从P2P网络中获取所需数据的次序。
10.如权利要求1所述的将基于P2P网络下载的多媒体文件实现实时播放的方法,其特征在于,所述播放模块在所述客户端播放完成后删除本地存储的文件数据。
全文摘要
本发明公开了一种将基于P2P网络下载的多媒体文件实现实时播放方法,它应用于网路的多媒体文件在线点播,不但可以缓解服务器的带宽压力,并且可以提高目前点播的播放质量。所述下载后的多媒体文件位于客户端,客户端为P2P网络的一个节点,其中客户端包括一个播放模块和一个P2P数据传输模块,多媒体文件的原始文件在P2P网络的某个或者某些个节点上,播放模块包括一个基于Windows的播放器;其中,P2P数据播放模块还包括一个以上的数据采集插件和/或组件,数据采集插件或组件与所述P2P数据传输模块相结合,在本地虚拟出一个网络文件,播放时播放器直接播放所述网络文件。
文档编号H04L12/54GK1992602SQ20051011228
公开日2007年7月4日 申请日期2005年12月29日 优先权日2005年12月29日
发明者喻琦, 朱小华, 胡邦昀, 李海良 申请人:盛趣信息技术(上海)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1