发明名称 对等网络点播系统中的定点数据预取方法
摘要 本发明公开了对等网络点播系统中的定点数据预取方法,流程如下:①结合用户行为和体验改善的分析,确定定点设置的时间间隔;并通过文件分析器解析媒体头文件和数据文件,记录元数据信息,并创建相应的索引文件;②根据媒体索引文件的信息,在确保当前播放数据获取的条件下,利用剩余带宽,以“最小冗余度优先”的原则从伙伴节点或源服务器获得预取点数据;③客户端根据用户的拖动位置,结合当前频道缓存窗口中媒体数据获取的状况,自动调整播放位置到用户指定的时间点,或者最邻近的预取点。本发明基于对用户行为的观测,并充分利用对等网络的特点,实现定点数据的有效共享,降低了流媒体服务器的带宽消耗,改善用户的观看体验,适合于大规模的应用。
申请公布号 CN101242430B 申请公布日期 2012.03.28
申请号 CN200810046923.5 申请日期 2008.02.22
申请人 华中科技大学 发明人 金海;廖小飞;蒋文斌;程斌;张帆;余洋;黄翀;周思炜
分类号 H04L29/08(2006.01)I;H04L12/16(2006.01)I;G06F17/30(2006.01)I 主分类号 H04L29/08(2006.01)I
代理机构 华中科技大学专利中心 42201 代理人 曹葆青
主权项 一种对等网络点播系统中的定点数据预取方法,其步骤包括:(1)系统管理员上传新的媒体文件到源服务器;当第一个用户点击该媒体文件时,源服务器按照步骤(1.1)至(1.5)对该媒体文件进行定点设置,产生其对应的元数据索引文件,该索引文件用于标识该媒体文件中所存在的预取点的具体位置;(1.1)根据媒体文件F的扩展名,加载对应文件类型的解析器;(1.2)文件解析器分析文件头部信息,提取媒体文件F的元数据信息;(1.3)遍历媒体文件的数据部分,读取每一帧的头部,获取其播放的逻辑时间戳t和关键帧标志位b,通过遍历,文件解析器确定每个时间槽所对应的起始数据帧的位置pos和包括的帧数目k;(1.4)根据时间间隔M设置预取点,时间间隔M代表用户拖动后拖动点的调整精度;(1.5)创建对应的索引文件,并保存解析得到的元数据信息,数据槽位置信息和预取点的位置信息到该索引文件;(2)本地客户端节点获取所点播的媒体文件的索引文件信息,根据媒体的索引文件信息确定当前所观看媒体文件的预取点位置,然后获取当前播放位置后H个时间槽数据,H为系统预设值,同时利用剩余带宽从其他客户端节点或者源服务器,以“最小冗余度优先”的原则获取预取点位置上的时间槽数据;具体实现过程为步骤(2.1)至(2.8):(2.1)当用户点击节目F时,本地客户端节点向索引服务器获取初始的备选邻近客户端节点列表;(2.2)本地客户端节点得到备选节点列表后,尝试与所有备选节点建立连接通道;(2.3)本地客户端节点判断是否有伙伴节点成功建立,如果有,转向步骤(2.4),否则转向步骤(2.5);(2.4)本地客户端节点向某个伙伴节点请求媒体文件索引信息,如果取不到,则继续从源服务器获取,完成后转到步骤(2.6);(2.5)在没有任何伙伴节点的情况下,本地客户端节点直接向源服务器请求媒体文件索引信息;(2.6)本地客户端节点根据取得的索引信息,确定媒体文件F中所有的预取点位置以及处于预取点上的所有时间槽;在每个数据调度周期中,本地客户端节点首先尽力从伙伴节点依次调度当前播放位置之后连续H秒的时间槽,然后本地客户端节点利用剩余的下载带宽以“最小冗余度优先”的原则调度目前仍未获取到的预取点数据;(2.7)本地客户端节点查看当前数据窗口的状态,检查预取点处的时间槽数据是否都已经被取回,如果是,转到步骤(2.8),否则在回到步骤(2.6);(2.8)本地客户端节点得到所有预取点处的时间槽,停止定点预取;(3)当用户执行视频播放拖动操作时,本地客户端节点收到该拖动请求,根据当前数据窗口中时间槽状态,决定是否需要将播放位置调整到就近的预取点;如果需要,设置播放位置为就近预取点的第一个时间槽处,否则,设置播放位置为用户拖动请求的原目标位置;具体实现过程为步骤(3.1)至(3.7):(3.1)用户拖动到新的目标位置P;(3.2)本地客户端节点收到该请求后,查看当前数据窗口中【P,P+(L‑1)】位置上的时间槽数据是否已经全部获取或者部分获取,L为拖动后开始播放需要缓冲的时间槽数目,也等于一个预取点所包涵的连续的时间槽的数目;如果是,转到步骤(3.3),否则转到步骤(3.4);(3.3)保持目标位置P不变,新位置P’=P,转到步骤(3.5);(3.4)将拖动点调整到就近的一个预取点的开头位置;方法是:从目标位置P分别向前和向后搜索,分别得到当前的目标位置P紧邻的前一个预取点的头部位置P1和后一个预取点的头部位置P2;比较P和P1,P2之间的距离;如果|P‑P1|>|P‑P2|,且对于向后拖动操作P2>当前播放位置,对于向前拖动操作P2<当前播放位置,则设置P’=P2;如果|P‑P1|<=|P‑P2|,且对于向后拖动操作P1>当前播放位置,对于向前拖动操作P1<当前播放位置,则设置P’=P1;否则,设置P’=当前播放位置;(3.5)根据当前数据窗口中【P’,P’+(L‑1)】位置上的时间槽数据的有无进行调度;(3.6)检查当前数据窗口中【P’,P’+(L‑1)】位置上的时间槽数据是否已经全部到达,如果是,则转到步骤(3.7),否则转到步骤(3.5);(3.7)开始向播放器发送数据,触发播放器开始播放。
地址 430074 湖北省武汉市洪山区珞喻路1037号