一种基于DASH优化的P2P流媒体视频播放方法与流程

文档序号:11710252阅读:1819来源:国知局
一种基于DASH优化的P2P流媒体视频播放方法与流程

本发明属于p2p流媒体技术领域,涉及一种基于dash优化的p2p流媒体视频播放方法。



背景技术:

p2p流媒体技术采用p2p的对等网络架构,利用p2p的文件交换技术,实现数字媒体内容多节点同时流式传输并播放。在p2p流媒体系统(流媒体播放系统)中,服务器只需向少量结点发送数据,而这些节点可以把得到的数据分享给其他结点,每个结点都可以通过流媒体系统得到高质量的视频服务。p2p流媒体技术分为点播和直播。在p2p流媒体系统的点播服务中,播放的媒体数据已经录制好、存储在固定服务器上,对实时性要求不高,用户可对点播的视频节目施加各种控制,如停止、暂停、快进等。

然而,在用户需求以及终端设备多元化的推动下,互联网结构特别是接入网形态越来越丰富,网络的动态变化性不可避免,网络差异对用户的播放体验有很大影响。虽然p2p流媒体技术在流媒体系统中的应用降低了服务器压力,提高了系统的服务能力,而且改善了用户体验,但是这也无法掩盖它存在的不足,如版权问题、安全问题、消耗大量带宽的问题;另外,一个关键的问题是,p2p流媒体系统的视频数据块在格式上并非公有格式,不能使用一些现成的视频播放技术,如html5的mse扩展(mediasourceextensions、媒体源扩展)等进行解码播放,而是需要一套自己的解码播放组件。

针对上述问题,采用dash(dynamicadaptivestreamingoverhttp,动态自适应流媒体)技术可有效解决这些问题,这是因为已经制定和公开的dash标准,支持同一视频内容的多种码流,支持音视频技术、支持直播和点播、支持数字版权安全。

dash技术是一个跨平台的标准,而不是仅仅只支持有限的平台和浏览器,它几乎被所有流行的浏览器所支持。dash标准规定视频按照一定的规则分割成独立的块,这些块分为包含编解码信息初始块和媒体数据块,初始块为媒体数据块提供了解码信息,而每个块则是公开统一的结构;dash还会生成一个描述文件对该视频流进行描述,这些技术特点与p2p流媒体技术的特点非常契合。dash技术可以为媒体文件提供多个码率的视频分片组,以覆盖不同的网络带宽需求;从而在保证观看效果的同时,减少客户端的卡顿和缓冲,具有网络自适应的能力。dash技术的数字版权保护规则,则为解决p2p流媒体技术视频播放的版权问题,提供了一个新的可能。

对于标准的dash视频播放系统而言,服务器承担系统所有负载,当客户端不断增多的时候,服务器明显会效率降低;对于传统的p2p流媒体系统,虽然达到了负载均衡,但随着网络的不断变化,peer在接收播放的时候也会出现播放卡顿及停播的情况,连续的卡顿对于用户是不能容忍的。如果将dash和p2p流媒体技术结合,既解决了dash技术对中心服务器的负载压力和故障风险,也解决了p2p流媒体技术利用的一些难点,如简化p2p视频客户端的开发等,这使得二者结合的系统显得具有明显的优势。



技术实现要素:

本发明的目的是提供一种基于dash优化的p2p流媒体视频播放方法,解决了用户端网络环境不稳定引起的播放卡顿及停播的问题。

本发明所采用的技术方案是,一种基于dash优化的p2p流媒体视频播放方法,按照以下步骤实施:

步骤1、硬件系统包括服务器、种子节点组和用户节点三部分,用户节点又称为peer;

步骤2、服务器和种子节点组准备视频分片

2.1)服务器生成分片的初始mpd文件

服务器根据dash协议将视频文件切割分片,生成初始mpd文件;

2.2)种子节点组从服务器获取视频资源

种子节点组向服务器注册并请求初始mpd文件,解析初始mpd文件获取视频资源信息,根据自身能力选择视频资源进行下载,一旦选择了某视频,就将其整套视频分片全部下载到本地;

2.3)服务器生成多访问位置的mpd文件

服务器监控种子节点组,待种子节点组下载初始mpd文件完毕后,汇总种子节点组拥有的视频资源信息,生成多访问位置的mpd文件,等待peer下载;

步骤3、peer获取视频分片并进行自适应播放

3.1)peer开始下载时,先向服务器请求视频,收到服务器发来的mpd文件后,解析获取到视频分片的码率、最大带宽及最小带宽、分辨率以及分片的若干个访问位置信息,然后根据网络环境选择合适的码率及访问位置开始下载视频分片;

3.2)peer缓存少量视频分片后开始播放,边播放边下载后续视频分片,并将其缓存在本地的分片统计到一张资源表中,以便与其他peer交互;以视频资源标识和分片基本信息属性为列来建立资源表;

3.3)peer每次下载下一个分片时,根据资源表生成统一的查询消息,发送给邻居peers进行分片的查询,并根据查询结果,从其邻居peer和mpd文件中解析出的访问位置中确定下载位置,通过http协议进行下载。

本发明的有益效果是,将dash的分片方法应用到p2p流媒体系统中,与传统p2p流媒体系统相比,本方法的使用可以将dash的码率自适应技术引入p2p流媒体系统,不改变p2p流媒体系统的负载均衡特性,不仅解决了单一负载的问题,而且使得p2p流媒体系统中peer播放视频时也可以随着网络环境的变化进行码率自适应,解决了用户端网络环境不稳定引起的播放卡顿及停播等问题,提高了播放流畅度,改善了用户播放体验。最重要的,本发明的方法使得在web环境里无需安装任何插件和客户端,实现在p2p流媒体系统中视频播放成为一种可能。

附图说明

图1为本发明方法的整体结构总图;

图2为本发明方法中的分片下载原理示意图。

具体实施方式

下面结合附图和具体实施方式对本发明进行详细说明。

一般情况下,在dash系统中,视频资源都存储在服务器,视频分片只可在服务器访问,但也有可能为了减缓服务器压力,将视频资源存储在多个服务器上,这样,相同的视频分片可以在多个位置访问。而在p2p流媒体系统中,视频资源不仅可以存储在服务器上,还可以存储在用户节点上,恰好符合dash系统中相同分片有多个访问位置的情况。

在mpd中,baseurl元素可以为分片和其他资源指定一个或者多个公共位置信息。根据dash标准中的描述可知,baseurl可以出现在mpd文件中的mpd级、period级、adaptationset级和representation级。如果在任何级别的baseurl元素中提供了备用的基本分片url,则相同的分片可以在多个位置访问;那么,通过在mpd文件中某几个等级的baseurl中提供备用分片url来实现多位置访问。系统中服务器和种子节点组都有视频数据,同一个分片有多个访问位置,由于种子节点一旦下载了某视频,就会将该视频的整套分片全部下载下来,所以种子节点上存储的视频数据是完整且与服务器上完全相同的,所以能够在mpd级别的baseurl中提供多个分片url。

本发明基于dash优化的p2p流媒体视频播放方法,基于上述的原理,按照以下步骤具体实施:

步骤1、硬件系统包括服务器、种子节点组和用户节点三部分

如图1所示,服务器提供视频播放的原始多媒体资源,负责将视频分片生成mpd文件,为种子节点组和用户节点服务;种子节点组包括多个种子节点(比如图1中的种子节点1、种子节点2、种子节点3),各个种子节点从服务器处获取部分视频资源,保存在本地,供用户节点下载;用户节点在p2p系统中称为peer,包括多个peer(比如图1中的peera、peerb、peerc),用户节点是接收、解码和播放视频的终端,各个peer从服务器、种子节点组或者其相邻的peer处获取视频分片进行播放;

步骤2、服务器和种子节点组准备视频分片

2.1)服务器生成分片的初始mpd文件

服务器根据dash协议将视频文件切割分片,生成初始mpd文件;

2.2)种子节点组从服务器获取视频资源

种子节点组向服务器注册并请求初始mpd文件,解析初始mpd文件获取视频资源信息,根据自身能力选择视频资源进行下载,一旦选择了某视频,就将其整套视频分片(包括多种码率)全部下载到本地;

2.3)服务器生成多访问位置的mpd文件

服务器监控种子节点组,待种子节点组下载初始mpd文件完毕后,汇总种子节点组拥有的视频资源信息,生成多访问位置的mpd文件,等待peer下载;

步骤3、peer获取视频分片并进行自适应播放

3.1)peer开始下载时,先向服务器请求视频,收到服务器发来的mpd文件后,解析获取到视频分片的码率、最大带宽及最小带宽、分辨率以及分片的若干个访问位置等信息,然后根据网络环境选择合适的码率及访问位置开始下载视频分片;

3.2)peer缓存少量视频分片后开始播放,边播放边下载后续视频分片,并将其缓存在本地的分片统计到一张资源表中,以便与其他peer交互;以视频资源标识和分片基本信息属性为列来建立资源表;

分片基本信息属性包括:码率、分辨率、分片名和分片url,资源表用于邻居peer之间相互查询自己所需的视频分片。

3.3)peer每次下载下一个分片时,根据资源表生成统一的查询消息,发送给邻居peers进行分片的查询,并根据查询结果,从其邻居peer和mpd文件中解析出的访问位置中确定下载位置,通过http协议进行下载。

本发明方法的工作原理是,将视频资源分散到系统中,由种子节点组和普通的用户节点来分担服务器的负担:服务器按照dash协议对视频进行分片,分发到种子节点组,并生成多访问位置的mpd文件,供给peer下载播放;peer从服务器下载多访问位置的mpd文件,解析获取所需分片的多个码率和多个访问位置,同时向其邻居节点查询是否有所需分片,然后根据网络选择合适的码率,并从服务器、种子节点组或者其邻居节点处通过http协议下载播放视频分片,具体过程如图2所示。在图2中显示了p2p网络中的某一个peer如何从服务器、种子主机和其他的peer获取视频分片来进行播放的全过程。

实施例

1、多访问位置的mpd文件

本实施例中,mpd文件描述的内容来源有三个(seed1、seed2和seed3),并提供视频的不同码率和分辨率的五个版本,比特率在512kbit/s和2mbit/s之间。一个有三个访问位置的mpd文件部分内容示例如下:

2、资源表

由于peer的缓存是有限的,所以表中记录不会很多,维护并不困难。表1是一个资源表的具体设置。

表1、资源表的具体设置结构

从表1可以看出,该peer缓存了两种视频资源的部分视频分片,视频1缓存了第三和第四两个视频分片,两个视频分片的码率和分片率不同;视频2缓存了第七、第八和第九个视频分片,第七和第八两个视频分片的码率和分辨率相同,第九个视频分片的码率分辨率比较高。在接收到查询视频分片信息时,根据码率、分辨率和视频分片名来确定唯一分片。查找到对应视频分片,返回其分片url信息,否则查找失败。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1