CN101227590B - 基于p2p协议的媒体文件点播控制方法及装置 - Google Patents
基于p2p协议的媒体文件点播控制方法及装置 Download PDFInfo
- Publication number
- CN101227590B CN101227590B CN200710062866.5A CN200710062866A CN101227590B CN 101227590 B CN101227590 B CN 101227590B CN 200710062866 A CN200710062866 A CN 200710062866A CN 101227590 B CN101227590 B CN 101227590B
- Authority
- CN
- China
- Prior art keywords
- play position
- data fragmentation
- current play
- download
- downloaded
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/16—Analogue secrecy systems; Analogue subscription systems
- H04N7/173—Analogue secrecy systems; Analogue subscription systems with two-way working, e.g. subscriber sending a programme selection signal
- H04N7/17309—Transmission or handling of upstream communications
- H04N7/17318—Direct or substantially direct transmission and handling of requests
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
- H04L65/612—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1061—Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/472—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
- H04N21/47202—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for requesting content on demand, e.g. video on demand
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/478—Supplemental services, e.g. displaying phone caller identification, shopping application
- H04N21/4788—Supplemental services, e.g. displaying phone caller identification, shopping application communicating with other users, e.g. chatting
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/632—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing using a connection between clients on a wide area network, e.g. setting up a peer-to-peer communication via Internet for retrieving video segments from the hard-disk of other client devices
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1061—Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
- H04L67/1063—Discovery through centralising entities
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Information Transfer Between Computers (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明旨在提供一种基于P2P的媒体文件点播控制方法,其核心思想在于,对流式媒体文件点播,优先地下载文件控制信息所在的控制信息分片,对非流式媒体文件点播,优先地下载文件控制信息所在的控制信息分片以及索引信息所在的索引信息分片,从而实现了媒体文件在P2P协议下的边下边放。
Description
技术领域
本发明涉及互联网,尤其涉及基于P2P的媒体文件点播控制。
背景技术
P2P(端对端,即Peer-to-Peer)也称对等联网,意为一个网络中的所有节点的角色、行为、责任和义务都是平等的。本文中,将在P2P网络中作为一个peer(端)出现的用户设备(如,个人计算机)以及使用该用户设备的用户不加区分地统称为节点。
在P2P技术进入互联网之前,互联网处于一种被称为客户机/服务器(Client/Server,简称C/S)的模式下。比如WWW、网络游戏等,其特点是需要有一个中央服务器来处理绝大部分的运算工作。该模式有一个致命的缺点,即随着需要服务的客户端数目的增多,中央服务器所需的网络资源也随之增加,显而易见地,最终将制约客户端数目的增长。
P2P技术允许节点跳过中间商,直接连接到其它节点以执行文件传输等信息交互,使互联网重新“非中心化”,从而向人们发展互联网技术的初衷又前进了一步。
由于具备传输速度快、带宽利用率高等特点,采用MFTP多源下载技术的BT(基于BitTorrent协议)、电骡(eMule)等P2P应用软件如今已经成为网民生活的一部分,每个节点既是客户端又是服务器,在下载的同时也在向其它节点上传,于是,使用的人越多,下载的速度反而越快,而这在互联网高度中心化的时代是难以想象的。
MFTP多源下载技术的核心包括:
一、将资源文件分割成等长的分片,以便标记和处理(虽然分片等长,但等长分片的大小可以调整);
二、节点之间必须互相了解对方都有哪些分片,以便互通有无,达到边下载边上传的目的;三、节点在收到一个分片后需要校验该分片是否正确。因为,成千上万个分片中的一个分片的错误都将导致整个资源文件被损坏,表现为媒体文件无法正常播放、可执行文件不能运行等等。在BT软件中,节点通过名为“种子”(Torrent)的文件来获得文件的整体描述以及其中每个分片的校验码;电骡中,节点在下载分片的同时从其它节点处得到该分片的校验码。
播放媒体文件的前提是播放器加载文件控制头(以下称为文件控制信息)。虽然BT、电骡等能够实现高速的文件下载,但因其对文件的所有分片(包括文件控制信息所在的控制信息分片)实施乱序下载,故无法支持媒体文件的边下载边播放,节点也就只能在完整下载该媒体文件后才可以对其进行播放。可见,现有技术中尚未实现基于P2P技术的支持边下载边播放的媒体文件点播控制。
发明内容
为解决现有技术存在的上述问题,实现基于P2P技术的媒体文件点播,特提出本发明。
根据本发明的第一方面,提供了一种在用户设备中基于P2P协议来对流式媒体文件的点播进行控制的方法,其中,包括步骤:确定所述媒体文件的多个分片中包含文件控制信息的所有控制信息分片;基于所确定的所述所有控制信息分片,获得所述文件控制信息;下载所述媒体文件的一个或多个数据分片;根据所述文件控制信息,对已下载的数据分片进行处理,生成经处理的数据,用于播放。
根据本发明的第二方面,提供了一种在用户设备中基于P2P协议来对非流式媒体文件的点播进行控制的方法,其中,包括以下步骤:确定所述媒体文件的多个分片中包含文件控制信息的所有控制信息分片;基于所确定的所述所有控制信息分片,获得所述文件控制信息;获得该媒体文件的索引信息;下载所述媒体文件的一个或多个数据分片;根据所述文件控制信息以及所述索引信息,对已下载的数据进行处理,生成经处理的数据,用于播放。
根据本发明的第三方面,提供了一种在用户设备中基于P2P协议来对流式媒体文件的点播进行控制的第一点播控制装置,其中,包括:第一确定装置,用于确定所述媒体文件的多个分片中包含文件控制信息的所有控制信息分片;第一获得装置,用于基于所确定的所述所有控制信息分片,获得所述文件控制信息;第二下载装置,用于下载所述媒体文件的一个或多个数据分片;数据处理装置,用于根据所述文件控制信息,对已下载的数据进行处理,生成经处理的数据,用于播放。根据本发明的第四方面,提供了一种在用户设备中基于P2P协议来对非流式媒体文件的点播进行控制的第二点播控制装置,其中,包括:第一确定装置,用于确定所述媒体文件的多个分片中包含文件控制信息的所有控制信息分片;第一获得装置,用于基于所确定的所述所有控制信息分片,获得所述文件控制信息;第二获得装置,用于获得该媒体文件的索引信息;第三下载装置,用于下载所述媒体文件的一个或多个数据分片;数据处理装置,用于根据所述文件控制信息以及所述索引信息,对已下载的数据进行处理,生成经处理的数据,用于播放。采用本发明提供的技术方案,通过优先地获得文件控制信息,并针对非流式媒体文件获得其索引信息,在P2P协议下实现了媒体文件的下载、播放的同时进行,优选地,通过总是优先地下载媒体文件多个数据分片中靠近播放位置的数据分片,提供了良好的用户体验。
附图说明
通过结合以下附图对本发明的非限定性实施例所作描述,本发明的其它目的、特征及优势将更为明显。图1为根据本发明的具体实施方式的P2P网络示意图;图2为一般媒体文件的格式示意图;图3a与图3b示出了媒体文件的数据部分的两种可选格式中的;图4为根据本发明的第一实施例在用户设备中基于P2P协议来对流式媒体文件的点播进行控制的方法流程图;图5为根据本发明的第二实施例在用户设备中基于P2P协议来对流式媒体文件的点播进行控制的方法流程图;图6为根据本发明的第三实施例的在用户设备中基于P2P协议来对非流式媒体文件的点播进行控制的方法流程图;
图7示出了与本发明的第三实施例的变化例相对应的媒体文件数据部分下载情况;
图8为根据本发明的第五实施例在节点中基于P2P协议来对非流式媒体文件的点播进行控制的方法流程图;
图9为根据本发明的第六实施例在节点中基于P2P协议来对非流式媒体文件的点播进行控制的方法流程图;
图10为根据本发明的第七实施例在节点中基于P2P协议来对非流式媒体文件的点播进行控制的方法流程图
图11为根据本发明的具体实施方式的在用户设备中基于P2P协议来对流式媒体文件的点播进行控制的第一点播控制装置框图;
图12为根据本发明的具体实施方式的在用户设备中基于P2P协议来对非流式媒体文件的点播进行控制的第二点播控制装置框图;
图13为具体实现本发明提出的点播控制方案的P2P软件结构示意图。
具体实施方式
为方便理解,首先解释本文中出现的一些概念:
-分片:本文中,将包含文件控制信息的控制信息分片、包含数据信息的数据分片以及包含索引信息的索引信息分片统称为分片,在同一媒体文件中各个分片的大小相同,一般的媒体文件的分片的大小为在64KB(千比特)-8MB(兆比特)左右不等,一般通常在512KB-1MB左右;
-控制信息分片:包含文件控制信息的分片;
-数据分片:包含媒体文件的数据部分的数据信息的分片;
-索引信息分片:包含索引信息的分片;
考虑这样一种情况,当一个分片无法仅被文件控制信息或数据信息或索引信息充满时,则该分片将包含上述三种信息中之至少两种,此时,应当理解,该分片拥有多重身份。如,位于文件控制信息与数据部分交界处的分片可能包含文件控制信息(之一部分或全 部)和数据信息(之一部分),则该分片在文件控制信息的获得过程中,以及数据信息的处理过程中将分别作为控制信息分片和数据分片发挥作用,依此类推;
下载源:指拥有某个分片并为其它节点提供该分片下载的节点。
图1所示的根据本发明的具体实施方式的P2P网络中包括多个节点和一个目录服务器,简明起见,其中仅示出节点1、2、3、4。各节点登录到目录服务器后,需要向目录服务器报告自身拥有的资源信息,以便与其它节点互通有无。目录服务器在BT中称为跟踪服务器(Tracker),在电骡中则称为电骡服务器,保存拥有与该媒体文件下载任务相对应的peer列表。图中的各个节点中均引入了本发明所提供的第一点播控制装置以及第二点播控制装置。
图2为一般媒体文件的格式示意图,适用范围包括但不限于:AVI、RMVB、RM、WMV及ASF等。其中,RMVB、RM、WMV和ASF等文件属于流式媒体文件,而AVI则属于非流式媒体文件。图中所示结构包括:文件控制信息、数据部分、索引信息,其中:
文件控制信息:包含索引信息的位置、媒体格式、解压缩解码器标识、数据部分位置、数据部分格式以及媒体文件播放时间等全局性控制信息;
数据部分:负责对视频文件的画面信息进行描述,是对媒体文件的大小起决定性作用的部分;
索引信息:包含对数据部分中帧(尤其是关键帧)的位置的描述,具体地,可包括如下信息:帧时间戳、帧编号、帧在媒体文件中的起始和结束位置。对于非流式媒体文件的播放而言,索引信息是必需的,而在流式媒体文件的播放中,索引信息并非必需。
图3a、图3b示出了媒体文件的数据部分的多种可选格式中的两种,其中,关键帧描绘了一个基本画面的完整画面信息,预测帧则描述其所对应的画面与参考画面(如,关键帧所描述的基本画面)的区别。
图3a所示格式中,数据部分仅包括关键帧,采用该种格式的媒 体文件体积较大,因此,适用于对压缩率不敏感的情况。
在此基础上,为提高媒体文件的压缩率,引入预测帧的概念,如图3b所示,媒体文件的数据部分包括关键帧及其相应前向预测帧(如有)。其中各帧的播放(显示)顺序与其在媒体文件中的存储顺序、在解码器中的解码顺序一致。前向预测帧II、III均参考关键帧I。为实现图3b所示的播放顺序,解码器的一种典型操作如下所述:
1.解码关键帧I并将其缓存;
2.结合关键帧I解码前向预测帧II并将其缓存;
3.结合关键帧I解码前向预测帧III并将其缓存;
4.解码关键帧IV并将其缓存......。
播放装置顺序地由缓存器中提取经过解码后的各帧,以进行播放。
其中,各帧的类型可以基于帧头中的帧类型指示信息来加以确定。
本领域技术人员应理解,本发明为在基于P2P协议的视频下载方案中通过优先地获取文件控制信息(在非流式媒体文件中还包括索引信息)以实现利用该文件控制信息(在非流式媒体文件中还包括索引信息)查找需要进行播放的帧,以实现边下载边播放的目的。对于所查找并下载的各帧进行解码的过程可基于具体的媒体文件格式采用现有的各种解码方案来实现。实际应用中,往往只需要把帧分割开,分别输入解码器即可。
以下结合流程图对本发明的第一方面进行描述。
应当理解,由于媒体文件被分为大量分片,而本发明的部分操作需要对每个分片或每个帧来分别进行,因此,本文所涉及的流程图中所示各步骤之间的顺序关系仅针对具体实施例,不构成对本发明保护范围的限定。
对应优化程度不同的用户体验,本发明的第一方面有如下具体实施例:
第一实施例:为一种根据本发明第一方面的基于现有技术下载数据分片、无跳帧/无拖放功能的流式媒体文件点播控制方法
图4为根据本发明的第一实施例在节点中基于P2P协议来对流式媒体文件的点播进行控制的方法流程图,以下参照图4并结合图1、图3a和图3b进行描述。假设需要进行流式媒体文件点播的节点为图1所示节点1。
在步骤S10中,节点1获取节点2、3、4的资源相关信息,从而知晓其它各节点拥有哪些分片,以便在下载相应分片时有目的地选择下载源。由于节点2、3、4在作为节点1的下载源的同时,也可能在不停地下载属于该媒体文件的分片,因此,所述步骤10中,节点1除从目录服务器处获得其它节点的资源相关信息外,还由来自节点2、3、4中与节点1已建立连接的节点的资源信息报告消息来获取该等节点的资源相关信息。现有技术中对此已有成熟的支持方案,如,使用BT软件的节点在成功下载完成一个分片后,将向与其连接的其它各个节点发送包含该分片标识的“Have(拥有)”消息,表示其已经拥有了该分片。
在步骤S11中,节点1在该媒体文件的多个分片中确定其中的所有控制信息分片。该步骤的可实现性主要基于:分片大小和媒体文件的文件控制信息的大小均有一定限制且文件控制信息总是位于媒体文件的特定位置(如首部),容易理解,如先行根据该媒体文件的描述信息(如,种子文件所携带的描述信息)确定其文件类型,则文件控制信息的大小范围将更容易估计,以RMVB文件为例,其文件控制信息通常为50KB以内。可选地,节点1也可以在媒体文件首部大致确定若干个分片(以保证其中包括所有控制信息分片为前提),通常,1-2个分片可以包括所有文件控制信息。
在步骤S12中,节点1将所确定的所有控制信息分片全部下载到本地,其中,每个分片的下载源可以基于此前获得的其它各个节点的资源相关信息来确定。
在步骤S13中,节点1由所述所有控制信息分片中提取该媒体 文件的文件控制信息,播放器(模块)加载文件控制信息后,流式媒体文件播放的准备工作基本完成。
步骤S14与步骤S10-S13并无严格的顺序关系,也即,数据分片的下载可与文件控制信息的获得同时进行,也可在获得文件控制信息后进行。本实施例中,沿用现有技术如BT或电骡中的乱序下载、稀缺分片优先下载等方案来下载数据分片。
于是,当用户点击如《辛德勒的名单》的链接后,节点1依上述步骤获得文件控制信息,播放器加载该文件控制信息后,默认的当前播放位置为该媒体文件的数据部分始端,如,00小时:00分:00秒:000毫秒。这通常也符合人们欣赏媒体文件的习惯。
播放器要成功播放与该当前播放位置相对应的画面,需要对其对应帧进行解码。于是,在步骤S15中,节点1判断已下载的数据分片中是否包含所述当前播放位置的对应帧。假设图3a中的关键帧a位于数据部分始端,于是,00小时:00分:00秒:000毫秒的对应帧为关键帧a,关键帧a播放完毕后,下一个当前播放位置如00小时:00分:00秒:040毫秒的对应帧为关键帧b;假设图3b中的关键帧I位于数据部分始端,则,00小时:00分:00秒:000毫秒的对应帧为关键帧I,关键帧I播放完毕后,下一个当前播放位置如00小时:00分:00秒:040毫秒的对应帧为关键帧I与前向预测帧II(因为前向预测帧的解码继而显示需要依托关键帧)。
请先参看图3a,步骤S15即,节点1判断已下载的数据分片中是否包含完整的关键帧a。
节点1在步骤S15中判断已下载的数据分片中是否包含完整的关键帧a。所述判断可基于以下事实实现:
1.根据当前播放位置所对应的时间点和该媒体文件的码率,可以计算出该时间点在数据部分中的相应位置(如,第i字节);
2.由于每个分片的大小已知、帧长已知、且分片具有各自的标号,因此,可以在数据分片中准确地定位所述对应帧(如,第N分片的第j字节至第k字节)。
所述判断通常可以通过判断播放器能否成功读取关键帧a来进行。由此,可得一个判断结果。
如果判断结果表明,已下载数据分片中包含完整的关键帧a(播放器成功读取关键帧a),则在步骤S16中对关键帧a进行解码及其它相关处理,用于播放。
当关键帧a播放完毕,新的当前播放位置相应地改变(如,00小时:00分:00秒:040毫秒,指向关键帧b的帧头),接着,再针对所述新的当前播放位置执行步骤S15(判断播放器能否成功读取关键帧b)及其后续步骤。其中,播放位置在一帧成功播放后自动改变可由现有技术支持。
如果判断结果表明,已下载数据分片中不包含完整的关键帧a,节点1将维持当前播放位置不变,也即,不断重复执行步骤S15直至关键帧a的下载全部完成,再进到步骤S16中对其进行解码等处理以用于播放。在所述等待过程中,可提示用户当前点播状态为“载入中”(“Loading”)。
请参看图3b,在引入预测帧的压缩方式下,此时00小时:00分:00秒:000毫秒的对应帧为关键帧I。当该关键帧I尚未下载完毕时,播放器将不能成功读取关键帧I,步骤S15中将得到否定的判断结果,于是,重复步骤S15,直至该关键帧I下载完毕,进到步骤S16中对其进行解码等处理,用于播放。
仍请参照图3b,在关键帧I播放完毕后,新的播放位置对应关键帧I与前向预测帧II组成的帧组,节点1针对所述新的播放位置执行步骤S15中的判断,如果此时前向预测帧II尚未下载完毕,该方法将不断针对这个新的播放位置执行步骤S15所述的判断,直至前向预测帧II下载完成。
由于索引信息并非流式媒体文件播放之必需,故在此实施例中索引信息分片可随数据分片一起乱序下载,也可不下载。
不难看出,第一实施例中,由于数据分片之间并无下载优先级之分,更确切地说,数据分片的下载优先级与当前播放位置无关, 因此容易出现用户长时间等待的情况,用户体验较差。第二实施例在此基础上对数据分片的下载优先级进行优化,详情如下。
第二实施例:为一种根据本发明第一方面的,基于当前播放位置确定数据分片的下载优先级、无跳帧且无拖放功能的流式媒体文件点播控制方法
图5为根据本发明的第二实施例在节点中基于P2P协议来对流式媒体文件的点播进行控制的方法流程图,以下参照图5并结合图1、图3a及图3b进行描述。
为体现方案完整性,图5中仍示出了与图4中相同的步骤,但其相应的文字描述将较简略,请参看图4相关说明部分。
基于本发明的基本思想,最优先地根据其它多个节点的资源相关信息获得媒体文件的文件控制信息。此外,为有目的地为数据分片赋予优先级,在步骤S24中根据当前播放位置确定优先下载的数据分片。优选地,根据各数据分片在媒体文件的播放方向上与当前播放位置的距离远近来设置数据分片的下载优先级,距离当前播放位置越近,该数据分片的下载优先级越高,反之则越低。另外,当当前播放位置因为某种原因(如下文提到的跳帧、拖放等)而改变时,数据分片的下载优先级也将随之改变,距离新的当前播放位置越近的数据分片的下载优先级越高,反之越低。由此,可以在未下载的数据分片中选定一个优先下载的数据分片(下载优先级最高)。
具体地,可根据媒体文件的码率和时间点在媒体文件中确定当前播放位置所对应的位置,从而在各个分片中确定与该位置对应的数据分片,从而将其确定为最高下载优先级的数据分片,也即优先下载的数据分片。
于是,对应媒体文件初始的当前播放位置00小时:00分:00秒:000毫秒,优先下载的数据分片分别位于数据部分的首部。
此后,进到步骤S25中,节点1根据其掌握的其它节点的资源相关信息判断其在步骤S24中确定的优先下载的数据分片是否存在 于其它节点的可下载分片中。具体地,根据该优先下载的数据分片的分片号,基于从目录服务器处获得的信息以及来自其它节点的资源信息报告消息(如,“Have”)进行所述判断。
当判断结果为其它节点的可下载分片中包括所述优先下载的数据分片时,节点1确定一个下载源并在步骤S26中下载该数据分片。所述下载源可以随机选择,优选地,节点1在各个拥有该分片的节点中选择为其提供最快下载速度的节点作为该分片的下载源。
当判断结果为其它节点的可下载分片中不包括该优先下载的数据分片时,节点1将与该优先下载的数据分片相邻的下一数据分片作为新的优先下载的数据分片,继而回到步骤S25中再针对其执行相应的判断。
此外,下载进度可能超前于播放进度,也即,当确定的优先下载的数据分片可能属于已经下载完毕的数据分片时,该方法从该优先下载的数据分片开始沿文件播放方向向下查找,直至找到一个尚未下载完毕的数据分片,进而将其确定为新的优先下载的数据分片,然后判断是否有节点能够提供下载,如有,则下载该新的优先下载的数据分片。上述情况可能出现在如下情形中:
-网络速度和资源情况均足够理想;
-用户基于其它实施例选择向播放方向的反方向拖放(快退);
-用户将播放暂停或停止而允许下载器(模块)继续工作等。
第二实施例保证了下载对象(数据分片)与当前播放位置的适应性,在相同的网络条件下使得进行播放所需的缓存时间,并且使得在媒体文件下载的同时播放过程更加流畅,从而提高了用户体验。
第三实施例:为一种根据本发明第一方面的,基于当前播放位置确定数据分片的下载优先级、支持跳帧但无拖放功能的流式媒体文件点播控制方法
图6为根据本发明的第三实施例在节点中基于P2P协议来对流 式媒体文件的点播进行控制的方法流程图,以下参照图6并结合图1、图3a和图3b进行描述。
本实施例中,为支持跳帧,需要媒体文件的索引信息,获得索引信息的步骤S34与步骤S30-S33之间并无严格的顺序关系。同样,由于P2P技术为多源下载,因此在步骤S30-33与步骤S34的执行过程中,也可同时地由不同的其他用户处下载数据分片。
其中,索引信息可采用以下任一方式获得:
a.根据文件控制信息,计算索引信息位置,从而准确地确定所有索引信息分片,将其下载后提取索引信息;
b.根据种子文件中的描述信息获知媒体文件的文件类型,从而大致计算索引信息位置,以确定所有索引信息分片,继而下载并提取索引信息。
获得索引信息的过程基于如下事实:分片大小、媒体文件的索引信息大小均有一定限制且索引信息总是位于媒体文件的特定位置(如尾部)。不同类型媒体文件的索引信息尺寸相差比较大,一般AVI和WMV格式媒体文件的索引信息在1-5MByte左右,而RMVB格式媒体文件的索引信息尺寸对比较小,约256-500KByte。容易理解,确定了文件类型,可以更容易地估计索引信息的尺寸,从而确定所有索引信息分片。
以下描述第三实施例中如何实现流式媒体文件点播时的跳帧。
请参看图3a,假设图3a中关键帧a为文件点播之初的播放位置“00小时:00分:00秒:000毫秒”所指示。
如果在步骤S38中判断出已下载的数据分片中包含完整的关键帧a(如,解码器或播放器成功读取关键帧a),则进到步骤S39,对“00小时:00分:00秒:000毫秒”的对应帧即关键帧a进行解码等处理,用于播放。关键帧a播放完毕后,新的当前播放位置指向关键帧b,继而针对关键帧b执行步骤S38中的判断。
相反地,如果在步骤S38中判断出已下载的数据分片中不包含完整的关键帧a(如,只包括关键帧a的部分数据信息或不包括关键 帧a的数据信息,使得解码器或播放器无法成功读取关键帧a),节点1将在步骤S39’中优选地根据所述索引信息判断当前播放位置“00小时:00分:00秒:000毫秒”之后的其它播放位置(对应关键帧b、关键帧c、关键帧d等)中是否存在这样的另一播放位置,其对应帧已下载完成。索引信息通常包含关键帧的位置信息(如,各个关键帧在媒体文件播放时间中的相应时间点;或所述时间点与码流中相应字节的映射信息;或各个关键帧所在的分片号及其在该分片中的具体位置,等等),在有些情形下,其中还包含其它各种帧(如,前向预测帧、后向预测帧、双向预测帧等)的位置信息。
总之,根据索引信息,节点1可以对媒体文件中的至少所有关键帧进行定位。另外,根据媒体文件的码率和分片大小,可以在数据分片中确定各关键帧所对应的数据信息(如,第N分片的第i字节至第j字节)。从而可以实现步骤S39’中的判断。
如果不存在这样的一个播放位置,则可选地,该方法回到步骤S38,重新判断当前播放位置“00小时:00分:00秒:000毫秒”的对应帧即关键帧a是否下载完成。
如果存在这样的一个或多个播放位置,则可选地,该方法从中随机选择一个播放位置作为新的当前播放位置,并进到步骤S39中对其对应帧进行解码等处理,用于播放。优选地,该方法从多个满足条件的播放位置中挑选距离当前播放位置最近的一个播放位置作为新的当前播放位置,并对其对应帧进行解码等处理,用于播放。
可选地,在步骤S39’中,节点1还可基于索引信息执行以下操作:
1)判断已下载数据分片中是否包含当前播放位置的下一播放位置(如,00小时:00分:00秒:040毫秒)的对应帧(关键帧b);
1.1)如果1)中的判断结果为是,则将00小时:00分:00秒:040毫秒作为新的当前播放位置,并对其对应帧关键帧b进行解码等处理,用于播放;
1.2)如果1)中的判断结果为否,则说明关键帧b所在的若干数 据分片尚未下载完毕,于是,可再判断已下载数据分片中是否包含当前播放位置的再下一个播放位置(如,00小时:00分:00秒:080毫秒)的对应帧(关键帧c);
1.2.1)若1.2)中的判断结果也为否,则再针对再下一个播放位置(如,00小时:00分:00秒:120毫秒)的对应帧(关键帧d)进行上述判断。
一旦得到肯定的判断结果,该方法将进到步骤S39中对相应播放位置的对应帧进行解码等处理,用于播放。
以上对数据部分存储顺序如图3a所示的媒体文件在本实施例下的点播控制进行了描述,下面,参照图3b,对于采用预测帧的媒体文件的点播控制进行说明。
设当前播放位置为00小时:00分:00秒:000毫秒,其对应帧为关键帧I,如果关键帧I已经下载完毕,则将其进行解码等处理,并进行缓存或用于播放;
再对下一个播放位置00小时:00分:00秒:040毫秒的对应帧“关键帧I和前向预测帧II”是否下载完毕进行判断;
-如果下载完毕,则解码前向预测帧II(结合关键帧I)并显示,仍缓存关键帧I;对再下一个播放位置00小时:00分:00秒:080毫秒的对应帧“关键帧I和前向预测帧III”是否下载完毕进行判断,以此类推。
-如果“关键帧I和前向预测帧II”尚未下载完毕,则可再根据索引信息判断已下载数据分片中位于关键帧I之后的下一个关键帧是否下载完毕,如果该下一个关键帧已经下载完毕,则对其进行解码,
应当理解,本文中提及的播放位置(包括但不限于以如下描述方式体现:当前播放位置、下一播放位置)的对应帧或为一个关键帧,或为一个关键帧及其一个或多个预测帧。在跳帧中,取决于索引信息中的描述信息的不同,跳帧的目标播放位置也不同,也即,如果索引信息标识了所有帧(无论关键帧抑或预测帧)在媒体文件 中的位置,则当关键帧I下载完毕而前向预测帧II尚未下完时,播放器读取前向预测帧II失败,则可以将播放位置跳到与前向预测帧III相对应的播放位置如:00小时:00分:00秒:080毫秒,继而对该播放位置的对应帧“关键帧I和前向预测帧III”是否下载完毕进行判断。
第三实施例拥有一个变化例,现简要描述如下,请参照图7。图7示出了所述变化例所对应的媒体文件数据部分下载情况。虚线表示尚未下载完毕。
假设播放器当前播放到前向预测帧P1,播放器读取前向预测帧P2时发现P2不能读取,这可能是因为P2部分或全部落入了分片X的未下载部分。
于是,播放器根据该媒体文件的码率计算出该分片X实际对应的播放时间段的一个估计值。
因为压缩算法会根据媒体文件的实际情况来动态地调整码率,所以,每个数据分片所对应的时间段或其中包含的帧数量都是不定的,关于这些帧的指示信息可包含在索引信息中。
举例来讲,假设该媒体文件的分片大小为256KByte,平均码率为64KBPS,则每个数据分片大约包含4秒时间。其中,平均码率的计算方式为:平均码率=数据部分总尺寸/文件控制信息给出的媒体文件播放时间。
假设P2处于5分10秒,于是,跳过该未下载完毕的分片X,如,跳到5分14秒,读取索引信息,查询5分14秒的对应帧。获取该帧在文件中的偏移位置以后,查询该偏移位置对应的文件分片是否是分片X,如果是分片X,则该帧肯定还没有下载完毕,就查找下一个帧,一直找到一个帧完全位于分片X+1上(起始和结束时间的对应偏移位置均落在分片X+1中),该帧就是Pm+1。获取Pm+1以后,送给解码器进行解码即可。
另外一种情况就是,5分14秒的对应帧位于Pm+3上,前面的帧有一点浪费。优选地,可向后(靠近数据部分首部的方向)查找 几个已经下载的帧,送进解码器解码,以减少已下载帧的损失。
第四实施例:为一种根据本发明第一方面的,基于当前播放位置确定数据分片的下载优先级的,支持跳帧并支持拖放功能的流式媒体文件点播控制方法
在观看媒体文件的时候,用户可能需要选择一个播放位置,作为新的当前播放位置,这也就是我们常说的拖放功能。
具体的,用户可通过输入一个用于指示所选择的新播放位置的用户指示信息,以使播放进程跳至该新播放位置所对应的媒体文件的新播放时间点开始向后顺序播放。输入用户指示信息的实现方式可包括(但不限于):a.用户用鼠标拖动播放器上的进度条到其所指定位置(对应于该新播放位置);b.用户直接输入一个播放时间点,该时间点对应于在该媒体文件中的新播放位置。
仍请参看图6,在本实施例中,该方法还包括“根据用户指示信息确定新的当前播放位置”的步骤(未示出)。于是,节点1将根据用户指示信息所确定的新的当前播放位置来确定优先下载的数据分片,并在步骤S38中针对所述新的当前播放位置判断其对应帧是否已经下载完成。
用户利用计算机外设向第一点播控制装置发出用户指示信息后,新的当前播放位置的确定可以通过以下操作实现:
a.接收用户指示信息;
b.根据用户指示信息中的时间点,基于索引信息,查找与该时间点相对应的一个播放位置,具体地,查找与该时间点相对应的一个关键帧。
-如果该时间点与一个关键帧正好对应,则直接将该关键帧对该关键帧所在帧组进行解码等处理,并进行缓存或用于播放;
-如果该时间点与关键帧不对应,则优选地,查找与该时间点最接近的一个关键帧,更为优选地,查找在播放顺序上位于该时间点之后且与该时间点最接近的一个关键帧。
接着,对所确定的关键帧所在帧组进行处理,具体地,针对该帧组执行步骤S38及其后续操作,详情请参看以上各实施例的描述。
第四实施例拥有一个变化例,现简要描述如下:
-读取索引信息,找到与用户指示信息中的时刻最接近的帧,获取该帧在媒体文件中的起始和结束位置;
-查询所述起始和结束位置位置对应的数据分片;
-判断该数据分片是否已经下载完毕
-如果没有下载完毕,则等待直至该分片下载完毕(或依第三实施例进行自动跳帧);然后将该数据分片确定为优先下载的数据分片(下载优先级最高);
-如果已经下载完毕,则读取该帧,送入解码器解码,并将该数据分片之后的第一个没有下载完毕的数据分片确定为优先下载的数据分片。
与本发明的第一方面相类似地,本发明的第二方面有对应不同优化程度用户体验的如下几个具体实施例,以下一一详述。
第五实施例:为一种根据本发明第二方面的,基于现有技术下载数据分片、无跳帧/无拖放功能的非流式媒体文件点播控制方法
图8为根据本发明的第五实施例在节点中基于P2P协议来对非流式媒体文件的点播进行控制的方法流程图,以下参照图8并结合图1、图3a和图3b进行描述。假设需要进行流式媒体文件点播的节点为图1所示节点1。
在步骤S40中,节点1获取节点2、3、4的资源相关信息,从而知晓其它各节点拥有哪些分片,以便在下载相应分片时有目的地选择下载源。由于节点2、3、4在作为节点1的下载源的同时,也可能在不停地下载属于该媒体文件的分片,因此,所述步骤40中,节点1除从目录服务器处获得其它节点的资源相关信息外,还由来自节点2、3、4中与节点1已建立连接的节点的资源信息报告消息来获取该等节点的资源相关信息。现有技术中对此已有成熟的支持 方案,如,使用BT软件的节点在成功下载完成一个分片后,将向与其连接的其它各个节点发送包含该分片标识的“Have(拥有)”消息,表示其已经拥有了该分片。
在步骤S41中,节点1在该媒体文件的多个分片中确定其中的所有控制信息分片。该步骤的可实现性主要基于:分片大小和媒体文件的文件控制信息的大小均有一定限制且文件控制信息总是位于媒体文件的特定位置(如,媒体文件的首部),容易理解,如先行根据该媒体文件的描述信息(如,种子文件所携带的描述信息)确定其文件类型,则文件控制信息的大小范围将更容易估计。可选地,节点也可以在媒体文件首部大致确定若干个分片(以保证其中包括所有控制信息分片为前提),通常,1-2个分片可以包括所有文件控制信息。
在步骤S42中,节点1将所确定的所有控制信息分片全部下载到本地,其中,每个分片的下载源可以基于此前获得的其它各个节点的资源相关信息来确定。
在步骤S43中,节点1由所述所有控制信息分片中提取该媒体文件的文件控制信息。
在步骤S44中,节点1获得该媒体文件的索引信息。具体可通过确定所有索引信息分片后将其下载并从中提取索引信息来实现。其中,可以在获得文件控制信息以后,基于由文件控制信息计算出的索引信息位置来准确地确定索引信息分片,也可根据文件类型大致确定。换言之,索引分片的下载可与控制信息分片同时下载,而无需分先后。
同样,步骤S45中的数据分片的下载既可与控制信息分片、索引信息分片的下载同时进行,也可在控制信息分片下载后再行下载。本实施例中,沿用现有技术如BT或电骡中的乱序下载、稀缺分片优先下载等方案来下载数据分片。
于是,当用户点击如《辛德勒的名单》的链接后,节点1依上述步骤获得文件控制信息和索引信息,播放器加载该文件控制信息 和索引信息后,默认的当前播放位置为该媒体文件的数据部分始端,如,00小时:00分:00秒:000毫秒。这通常也符合人们欣赏媒体文件的习惯。
播放器要成功播放与该当前播放位置相对应的画面,需要对其对应帧进行解码处理。于是,在步骤S45中,节点1判断已下载的数据分片中是否包含所述当前播放位置的对应帧,如,对应帧的起始和结束时间点各自对应的时间点所对应的偏移位置所确定的区间是否落在下载完毕的数据分片中,优选地,是否落于各个数据分片的已下载部分中。假设图3a中的关键帧a位于数据部分始端,于是,00小时:00分:00秒:000毫秒的对应帧为关键帧a,关键帧a播放完毕后,下一个当前播放位置如00小时:00分:00秒:040毫秒的对应帧为关键帧b;假设图3b中的关键帧I位于数据部分始端,则,00小时:00分:00秒:000毫秒的对应帧为关键帧I,关键帧I播放完毕后,下一个当前播放位置如00小时:00分:00秒:040毫秒的对应帧为关键帧I与前向预测帧II。
请先参看图3a,节点1在步骤S46中判断已下载的数据分片中是否包含完整的关键帧a。
具体实践中,所述判断可以根据对应帧是否能够被播放器解码或读取来实施。未能成功解码或读取的帧将被视为尚未下载完毕。这应是本领域技术人员所能理解的,在此不作赘述。
如果步骤S46的判断结果表明,已下载数据分片中包含完整的关键帧a,则在步骤S47中对关键帧a进行解码及其它相关处理,用于播放。
当关键帧a播放完毕,新的当前播放位置相应地改变(如,00小时:00分:00秒:040毫秒,指向关键帧b的帧头),接着,再针对所述新的当前播放位置执行步骤S46(判断播放器能否成功读取关键帧b)及其后续步骤。其中,播放位置在一帧成功播放后自动改变可由现有技术支持。
如果步骤46中的判断结果表明,已下载数据分片中不包含完整 的关键帧a,节点1将维持当前播放位置不变,也即,不断重复执行步骤S46直至关键帧a的下载全部完成,再进到步骤S47中对其进行解码等处理以用于播放。在所述等待过程中,可提示用户当前点播状态为“载入中”(“Loading”)。
请参看图3b,在引入预测帧的压缩方式下,此时00小时:00分:00秒:000毫秒的对应帧为关键帧I。当该关键帧I尚未下载完毕时,步骤S46中将得到否定的判断结果,于是重复步骤S46,直至该关键帧I下载完毕,则进到步骤S47中对其进行解码等处理,用于播放。
仍请参照图3b,在关键帧I播放完毕后,新的当前播放位置对应关键帧I与前向预测帧II组成的帧组,节点1针对所述新的当前播放位置执行步骤S46中的判断,如果此时前向预测帧II尚未下载完毕(表现为如播放器无法成功读取前向预测帧II),该方法将不断针对这个新的当前播放位置执行步骤S46所述的判断,直至前向预测帧II下载完成。
不难看出,第五实施例中,由于数据分片之间没有下载优先级之分,更确切地说,数据分片的下载优先级与当前播放位置无关,因此容易出现用户长时间等待的情况,用户体验较差。第六实施例在此基础上对数据分片的下载优先级进行优化,详情如下。
第六实施例:为一种根据本发明第二方面的,基于当前播放位置确定数据分片的下载优先级、无跳帧/无拖放功能的非流式媒体文件点播控制方法
图9为根据本发明的第六实施例在节点中基于P2P协议来对非流式媒体文件的点播进行控制的方法流程图,以下参照图9并结合图1、图3a及图3b进行描述。
为体现方案完整性,图9中仍示出了与图8中相同的步骤,但其相应的文字描述将较简略,请酌情参看图8相关说明部分。
基于本发明的基本思想,最优先地根据其它多个节点的资源相 关信息获得媒体文件的文件控制信息。此外,为有目的地为数据分片赋予优先级,在步骤S55中根据当前播放位置确定优先下载的数据分片。优选地,根据各数据分片在媒体文件的播放方向上与当前播放位置的距离远近来设置数据分片的下载优先级,距离当前播放位置越近,该数据分片的下载优先级越高,反之则越低。另外,当当前播放位置因为一个整帧已经播放完毕而改变时,数据分片的下载优先级也将随之改变,距离新的当前播放位置越近的数据分片的下载优先级越高,反之越低。由此,可以在未下载的数据分片中选定一个优先下载的数据分片(下载优先级最高)。于是,对应媒体文件初始的当前播放位置00小时:00分:00秒:000毫秒,所述优先下载的数据分片为第一个数据分片,其后的数据分片下载优先级递减。
接着,进到步骤S56,节点1根据其掌握的其它节点的资源相关信息判断其在步骤S55中确定的优先下载的数据分片是否存在于其它节点的可下载分片中。具体地,所述判断可基于从目录服务器处获得的信息以及来自其它节点的资源信息报告消息(如,“Have”)进行。
当判断结果为其它节点的可下载分片中包括所述优先下载的数据分片时,节点1确定一个下载源并在步骤S57中下载该数据分片。所述下载源可以随机选择,优选地,节点1根据在各个拥有该分片的节点中选择为其提供最快下载速度的节点作为该分片的下载源。
当判断结果为其它节点的可下载分片中不包括该优先下载的数据分片时,节点1将与该优先下载的数据分片相邻的下一数据分片作为新的优先下载的数据分片,继而回到步骤S56中再针对其执行相应的判断。
此外,下载进度可能超前于播放进度,也即,当确定的优先下载的数据分片可能属于已经下载完毕的数据分片时,该方法从该优先下载的数据分片开始沿文件播放方向向下查找,直至找到一个尚未下载完毕的数据分片,进而将其确定为新的优先下载的数据分片, 然后判断是否有节点能够提供下载,如有,则下载该新的优先下载的数据分片。上述情况可能出现在如下情形中:
-网络速度和资源情况均足够理想;
-用户基于其它实施例选择向播放方向的反方向拖放(快退);
-用户将播放暂停或停止而允许下载器(模块)继续工作等。
第六实施例保证了下载对象与当前播放位置的适应性,在相同的网络条件下使得进行播放所需的缓存时间,并且使得在媒体文件下载的同时播放过程更加流畅,从而提高了用户体验。
第七实施例:为一种根据本发明第二方面的,基于当前播放位置确定数据分片的下载优先级,支持跳帧但无拖放功能的非流式媒体文件点播控制方法
图10为根据本发明的第七实施例在节点中基于P2P协议来对非流式媒体文件的点播进行控制的方法流程图,以下参照图10并结合图1、图3a和图3b进行描述。
请参看图3a,假设图3a中关键帧a为文件点播之初的播放位置“00小时:00分:00秒:000毫秒”所指示。步骤S60至步骤S68的描述请参看前述实施例。
如果在步骤S68中判断出已下载的数据分片中包含完整的关键帧a,则进到步骤S69,对“00小时:00分:00秒:000毫秒”的对应帧即关键帧a进行解码等处理,用于播放。关键帧a播放完毕后,新的当前播放位置指向关键帧b,继而针对关键帧b执行步骤S68中的判断。
相反地,如果在步骤S68中判断出已下载的数据分片中不包含完整的关键帧a(如,只包括关键帧a的部分数据信息或不包括关键帧a的数据信息),节点1将在步骤S69’中优选地根据所述索引信息判断当前播放位置“00小时:00分:00秒:000毫秒”之后的其它播放位置(对应关键帧b、关键帧c、关键帧d等)中是否存在这 样的另一播放位置,其对应帧已下载完成。索引信息通常包含关键帧的位置信息(如,各个关键帧在媒体文件播放时间中的相应时间点;或所述时间点与码流中相应字节的映射信息;或各个关键帧所在的分片号及其在该分片中的具体位置,等等)。
总之,根据索引信息,节点1可以对媒体文件中的至少所有关键帧进行定位。另外,根据媒体文件的码率和分片大小,可以在数据分片中确定各关键帧所对应的数据信息(如,第N分片的第i字节至第j字节)。从而可以实现步骤S69’中的判断。
如果不存在这样的一个播放位置,则可选地,该方法回到步骤S68,重新判断当前播放位置“00小时:00分:00秒:000毫秒”的对应帧即关键帧a是否下载完成。
如果存在这样的一个或多个播放位置,则可选地,该方法从中随机选择一个播放位置作为新的当前播放位置,并进到步骤S69中对其对应帧进行解码等处理,并进行缓存或用于播放。优选地,该方法从多个满足条件的播放位置中挑选距离当前播放位置最近的一个播放位置作为新的当前播放位置,并对其对应帧进行解码等处理,并进行缓存或用于播放。
可选地,在步骤S69’中,节点1还可基于索引信息执行以下操作:
1)判断已下载数据分片中是否包含当前播放位置的下一播放位置(如,00小时:00分:00秒:040毫秒)的对应帧(关键帧b);
1.1)如果1)中的判断结果为是,则将00小时:00分:00秒:040毫秒作为新的当前播放位置,并对其对应帧关键帧b进行解码等处理,并进行缓存或用于播放;
1.2)如果1)中的判断结果为否,则说明关键帧b所在的若干数据分片尚未下载完毕,于是,可再判断已下载数据分片中是否包含当前播放位置的再下一个播放位置(如,00小时:00分:00秒:080毫秒)的对应帧(关键帧c);
1.2.1)若1.2)中的判断结果也为否,则再针对再下一个播放位 置(如,00小时:00分:00秒:120毫秒)的对应帧(关键帧d)进行上述判断。
一旦得到肯定的判断结果,该方法将进到步骤S69中对相应播放位置的对应帧进行解码等处理,并进行缓存或用于播放。
以上对数据部分存储顺序如图3a所示的媒体文件在本实施例下的点播控制进行了描述,下面,参照图3b,对于采用预测帧的媒体文件的点播控制进行说明。
设当前播放位置为00小时:00分:00秒:000毫秒,其对应帧为关键帧I,如果关键帧I已经下载完毕,则将其进行解码等处理,并进行缓存或用于播放;
再对下一个播放位置00小时:00分:00秒:040毫秒的对应帧“关键帧I和前向预测帧II”是否下载完毕进行判断;
-如果下载完毕,则解码前向预测帧II(结合关键帧I)并显示,仍缓存关键帧I;对再下一个播放位置00小时:00分:00秒:080毫秒的对应帧“关键帧I和前向预测帧III”是否下载完毕进行判断,以此类推。
-如果“关键帧I和前向预测帧II”尚未下载完毕,则可再根据索引信息判断已下载数据分片中位于关键帧I之后的下一个关键帧是否下载完毕,如果该下一个关键帧已经下载完毕,则对其进行解码,
应当理解,本文中提及的播放位置(包括但不限于以如下描述方式体现:当前播放位置、下一播放位置)的对应帧或为一个关键帧,或为一个关键帧及其一个或多个预测帧。在跳帧中,取决于索引信息中的描述信息的不同,跳帧的目标播放位置也不同,也即,如果索引信息标识了所有帧(无论关键帧抑或预测帧)在媒体文件中的位置,则当关键帧I下载完毕而前向预测帧II尚未下载完时,播放器读取前向预测帧II失败,则可以将播放位置跳到与前向预测帧III相对应的播放位置如:00小时:00分:00秒:080毫秒,继而对该播放位置的对应帧“关键帧I和前向预测帧III”是否下载完 毕进行判断。
第七实施例拥有一个变化例,现简要描述如下,请参看图7。
假设播放器当前播放到前向预测帧P1,继而读取前向预测帧P2时发现P2不能读取,这可能是因为P2部分或全部落入了分片X的未下载部分。
于是,播放器根据该媒体文件的码率计算出该分片X实际包含的播放时间的一个估计值。
因为压缩算法会根据媒体文件的实际情况来动态地调整码率,也即,每个数据分片所包含的时间和帧数量都是不定的,这些指示信息都在索引中均有描述。
举例来讲,假设该媒体文件的分片大小为256KByte,平均码率为64KBPS,则每个数据分片大约包含4秒时间。其中,平均码率的计算方式为:平均码率=数据部分总尺寸/文件控制信息给出的媒体文件播放时间。
假设前向预测帧P2处于5分10秒,于是,跳过该未下载完毕的分片X,如,跳到5分14秒,读取索引信息,查询5分14秒的对应帧。获取该帧在文件中的偏移位置以后,查询该偏移位置对应的文件分片是否是分片X,如果是分片X,则可判断该帧肯定还没有下载完毕,就查找下一个帧,一直找到一个帧完全位于分片X+1上(起始和结束时间的对应偏移位置均落在分片X+1中),该帧就是Pm+1。获取Pm+1以后,送给解码器进行解码等处理,并进行缓存或用于播放。
另外一种情况就是,5分14秒的对应帧命中在Pm+3上,前面的帧有一点浪费。优选地,可向后(靠近数据部分首部的方向)查找几个已经下载的帧,送进解码器解码,以减少已下载帧的损失。
第八实施例:为一种根据本发明第二方面的,基于当前播放位置确定数据分片的下载优先级,支持跳帧/支持拖放功能的非流式媒体文件点播控制方法
在观看媒体文件的时候,用户可能需要选择一个播放位置,作为新的当前播放位置,这也就是我们常说的拖放功能。
具体的,用户可通过输入一个用于指示所选择的新播放位置的用户指示信息,以使播放进程跳至该新播放位置所对应的媒体文件的新播放时间点开始向后顺序播放。输入用户指示信息的实现方式可包括(但不限于):a.用户用鼠标拖动播放器上的进度条到其所指定位置(对应于该新播放位置);b.用户直接输入一个播放时间点,该时间点对应于在该媒体文件中的新播放位置。
仍请参看图10,在本实施例中,该方法还包括“根据用户指示信息确定新的当前播放位置”的步骤(未示出)。于是,节点1将根据用户指示信息所确定的新的当前播放位置来确定优先下载的数据分片,并在步骤S68中针对所述新的当前播放位置判断其对应帧是否已经下载完成。
用户利用计算机外设向第二点播控制装置发出用户指示信息后,新的当前播放位置的确定可以通过以下操作实现:
c.接收用户指示信息;
d.根据用户指示信息中的时间点,并基于索引信息,查找与该时间点相对应的一个播放位置,具体地,查找与该时间点相对应的一个关键帧。
-如果该时间点与一个关键帧正好对应,则直接将该关键帧对该关键帧所在帧组进行解码等操作;
-如果该时间点与关键帧不对应,则优选地,查找与该时间点最接近的一个关键帧,更优选地,查找在播放顺序上位于该时间点之后且与该时间点最接近的一个关键帧。
接着,对所确定的关键帧所在帧组进行解码,具体地,针对该帧组执行步骤S68及其后续操作,详情请参看以上各实施例的描述。
第四实施例拥有一个变化例,现简要描述如下:
-读取索引信息,找到与用户指示信息中的时刻最接近的帧,获取该帧在媒体文件中的起始和结束位置;
-查询所述起始和结束位置位置对应的数据分片;
-判断该数据分片是否已经下载完毕
-如果该数据分片未下载完毕,则等待直至该分片下载完毕(或依第三实施例进行自动跳帧);然后将该数据分片确定为优先下载的数据分片(下载优先级最高);
-如果该数据分片已经下载完毕,则读取该帧,送入解码器解码,并将该数据分片之后的第一个没有下载完毕的数据分片确定为优先下载的数据分片。
以下参照图11所示装置框图对本发明的第三方面的对应不同用户体验的具体实施例进行说明,请理解,第一方面与第三方面中相应的实施例将采用相同的编号。此外,图11中的某些装置(如,第四确定装置106)在一些实施例中并非必要,方便起见,将各实施例中会出现的各种装置统一绘于图11中。
图11所示第一点播控制装置10通常配置于用户设备(如,个人计算机)中,其中包括:第一确定装置100、第一获得装置101、获取装置102、第二下载装置103、数据处理装置104、第二获得装置105以及第四确定装置106。其中,所述第一获得装置101包括:第一下载装置1010、第一提取装置1011;所述第二下载装置103包括:第二确定装置1020、第一判断装置1021以及受控下载装置1022;所述数据处理装置104包括:第二判断装置1030以及受控处理装置1031;所述第二获得装置105包括:第三确定装置1040、第三下载装置1041以及第二提取装置1042。
第九实施例:为一种根据本发明第三方面的,基于现有技术下载数据分片,无跳帧/无拖放功能的流式媒体文件点播控制装置
请同时参照图11并结合图1、图3a和图3b。在此,假设需要进行流式媒体文件点播的节点为图1所示节点1。
获取装置102获取节点2、3、4的资源相关信息,节点1从而知晓其它各节点拥有哪些分片,以便在下载相应分片时有目的地选 择下载源。由于节点2、3、4在作为节点1的下载源的同时,也可能在不停地下载属于该媒体文件的分片,因此,获取装置102除从目录服务器处获得其它节点的资源相关信息外,还由来自节点2、3、4中与节点1已建立连接的节点的资源信息报告消息来获取该等节点的资源相关信息。现有技术中对此已有成熟的支持方案,如,使用BT软件的节点在成功下载完成一个分片后,将向与其连接的其它各个节点发送包含该分片标识的“Have(拥有)”消息,表示其已经拥有了该分片。
第一确定装置100在该媒体文件的多个分片中确定其中的所有控制信息分片。所述确定操作主要基于以下事实:媒体文件的文件控制信息的大小和分片大小均有一定限制且文件控制信息总是位于媒体文件的特定位置(如媒体文件的首部),容易理解,如先行根据该媒体文件的描述信息(如,种子文件所携带的描述信息)确定其文件类型,则文件控制信息的大小范围将更容易估计,以RMVB文件为例,其文件控制信息通常为50KB以内。可选地,第一确定装置100也可以在媒体文件首部大致确定若干个分片(以保证其中包括所有控制信息分片为前提),通常,1-2个分片可以包括所有文件控制信息。
于是,第一下载装置1010将第一确定装置1010所确定的所有控制信息分片全部下载到本地,其中,每个分片的下载源可以基于此前获得的其它各个节点的资源相关信息来确定。
此后,第一提取装置1011由所述所有控制信息分片中提取该媒体文件的文件控制信息,播放器(模块)加载文件控制信息后,流式媒体文件播放的准备工作基本完成。
第一获得装置101与第二下载装置103各自执行的操作并无严格的顺序关系,也即,数据分片的下载可与文件控制信息的获得同时进行,也可在获得文件控制信息后进行。本实施例中,沿用现有技术如BT或电骡中的乱序下载、稀缺分片优先下载等方案来下载数据分片。
于是,当用户点击如《辛德勒的名单》的链接后,节点1依上述步骤获得文件控制信息,播放器加载该文件控制信息后,默认的当前播放位置为该媒体文件的数据部分始端,如,00小时:00分:00秒:000毫秒。这通常也符合人们欣赏媒体文件的习惯。
播放器要成功播放与该当前播放位置相对应的画面,需要对其对应帧进行解码。于是,由第二判断装置1031判断已下载的数据分片中是否包含所述当前播放位置的对应帧。假设图3a中的关键帧a位于数据部分始端,于是,00小时:00分:00秒:000毫秒的对应帧为关键帧a,关键帧a播放完毕后,下一个当前播放位置如00小时:00分:00秒:040毫秒的对应帧为关键帧b;假设图3b中的关键帧I位于数据部分始端,则,00小时:00分:00秒:000毫秒的对应帧为关键帧I,关键帧I播放完毕后,下一个当前播放位置如00小时:00分:00秒:040毫秒的对应帧为关键帧I与前向预测帧II。
请先参看图3a,第二判断装置1030需要判断的是已下载的数据分片中是否包含完整的关键帧a。所述判断可基于以下事实实现:
1.根据当前播放位置所对应的时间点和该媒体文件的码率,可以计算出该时间点在数据部分中的相应位置(如,第i字节);
2.由于每个分片的大小已知、帧长已知、且分片具有各自的标号,因此,可以在数据分片中准确地定位所述对应帧(如,第N分片的第j字节至第k字节)。由此,可得一个判断结果。
如果判断结果表明,已下载数据分片中包含完整的关键帧a,则由受控处理装置1031对关键帧a进行解码及其他相关处理,用于播放。
当关键帧a播放完毕,新的当前播放位置相应地改变(如,00小时:00分:00秒:040毫秒,指向关键帧b的帧头),接着,再由第二判断装置1030针对所述新的当前播放位置执行判断操作。其中,播放位置在一帧成功播放后自动改变可由现有技术支持。
如果判断结果表明,已下载数据分片中不包含完整的关键帧a,节点1将维持当前播放位置不变,也即,由所述第二判断装置1030 不断重复执行判断直至关键帧a的下载全部完成,再由所述受控处理装置1031对其进行解码等处理以用于播放。在所述等待过程中,可提示用户当前点播状态为“载入中”(“Loading”)。
请参看图3b,在引入预测帧的压缩方式下,此时00小时:00分:00秒:000毫秒的对应帧为关键帧I。当该关键帧I尚未下载完毕时,第二判断装置1030将得到否定的判断结果,于是第二判断装置1030针对该当前播放位置重复判断,直至该关键帧I下载完毕,再由受控处理装置1031对其进行解码等处理,并进行缓存或用于播放。
仍请参照图3b,在关键帧I播放完毕后,新的播放位置对应关键帧I与前向预测帧II组成的帧组,第二判断装置1030针对所述新的播放位置执行判断操作,如果此时前向预测帧II尚未下载完毕,第二判断装置1030将不断针对这个新的播放位置执行判断操作,直至前向预测帧II下载完成。
由于索引信息并非流式媒体文件播放之必需,故在此实施例中索引信息分片可随数据分片一起乱序下载,也可不下载。于是,第二获得装置105为可选。
第十实施例:为一种根据本发明第三方面的,基于当前播放位置确定数据分片的下载优先级、无跳帧且无拖放功能的流式媒体文件点播控制装置
基于本发明的基本思想,最优先地由第一确定装置100与第一获得装置101根据其它多个节点的资源相关信息获得媒体文件的文件控制信息。此外,为有目的地为数据分片赋予优先级,由第二下载装置103中的第二确定装置1020来根据当前播放位置确定优先下载的数据分片。优选地,根据各数据分片在媒体文件的播放方向上与当前播放位置的距离远近来设置数据分片的下载优先级,距离当前播放位置越近,该数据分片的下载优先级越高,反之则越低。另外,当当前播放位置因为一个整帧已经播放完毕而改变时,数据分 片的下载优先级也将随之改变,距离新的当前播放位置越近的数据分片的下载优先级越高,反之越低。由此,可以在未下载的数据分片中选定一个优先下载的数据分片(下载优先级最高)。于是,对应媒体文件初始的当前播放位置00小时:00分:00秒:000毫秒,优先下载的数据分片分别位于图3a所示的关键帧a和图3b所示的关键帧I中。
此后,由第一判断装置1021根据获取装置102所掌握的其它节点的资源相关信息判断第二确定装置1020确定的优先下载的数据分片是否存在于其它节点的可下载分片中。具体地,所述判断可基于从目录服务器处获得的信息以及来自其它节点的资源信息报告消息(如,“Have”)进行。
当判断结果为其它节点的可下载分片中包括所述优先下载的数据分片时,受控下载装置1022确定一个下载源并下载该数据分片。所述下载源可以随机选择,优选地,受控下载装置1022在各个拥有该分片的节点中选择为节点1提供最快下载速度的节点作为该分片的下载源。
当判断结果为其它节点的可下载分片中不包括该优先下载的数据分片时,第一判断装置1021将与该优先下载的数据分片相邻的下一数据分片作为新的优先下载的数据分片,针对该新的优先下载的数据分片执行所述判断操作。
此外,下载进度可能超前于播放进度,也即,当确定的优先下载的数据分片可能属于已经下载完毕的数据分片时,该方法从该优先下载的数据分片开始沿文件播放方向向下查找,直至找到一个尚未下载完毕的数据分片,进而将其确定为新的优先下载的数据分片,然后判断是否有节点能够提供下载,如有,则下载该新的优先下载的数据分片。上述情况可能出现在如下情形中:
-网络速度和资源情况均足够理想;
-用户基于其它实施例选择向播放方向的反方向拖放(快退);
-用户将播放暂停或停止而允许下载器(模块)继续工作等。
第十一实施例:为一种根据本发明第三方面的,基于当前播放位置确定数据分片的下载优先级、支持跳帧但无拖放功能的流式媒体文件点播控制装置
本实施例中,为支持跳帧,需要由第二获得装置105来获得该媒体文件的索引信息,获得索引信息的操作与获得文件控制信息的操作之间并无严格的顺序关系。
其中,索引信息可采用以下任一方式获得:
a.根据文件控制信息,计算索引信息位置,从而由第三确定装置1040准确地确定所有索引信息分片,由第三下载装置1041将所述所有索引信息分片下载后,再由第二提取装置1042从中提取索引信息;
b.根据种子文件中的描述信息获知媒体文件的文件类型,从而大致计算索引信息位置,从而确定所有索引信息分片,继而下载并提取索引信息。
获得索引信息的过程基于如下事实:分片大小、媒体文件的索引信息大小均有一定限制且索引信息总是位于媒体文件的特定位置(如尾部)。不同类型媒体文件的索引信息尺寸相差比较大,一般AVI和WMV的索引信息在1-5MByte左右,而RMVB的索引信息尺寸对比较小,约256-500KByte。容易理解,确定了文件类型,可以更容易地估计索引信息的尺寸,从而确定所有索引信息分片。
以下描述第三实施例中如何实现流式媒体文件点播时的跳帧。
请参看图3a,假设图3a中关键帧a为文件点播之初的播放位置“00小时:00分:00秒:000毫秒”所指示。
如果第二判断装置1030判断出已下载的数据分片中包含完整的关键帧a,则通知受控处理装置1031,由后者对“00小时:00分:00秒:000毫秒”的对应帧即关键帧a进行解码等处理,用于播放。关键帧a播放完毕后,新的当前播放位置指向关键帧b,第二判断装 置1030继而针对关键帧b执行上述判断。
相反地,如果第二判断装置1030判断出已下载的数据分片中不包含完整的关键帧a(如,只包括关键帧a的部分数据信息或不包括关键帧a的数据信息),优选地,第二判断装置1030根据所述索引信息判断当前播放位置“00小时:00分:00秒:000毫秒”之后的其它播放位置(对应关键帧b、关键帧c、关键帧d等)中是否存在这样的另一播放位置,其对应帧已下载完成。索引信息通常包含关键帧的位置信息(如,各个关键帧在媒体文件播放时间中的相应时间点;或所述时间点与码流中相应字节的映射信息;或各个关键帧所在的分片号及其在该分片中的具体位置,等等)。
总之,根据索引信息,节点1可以对媒体文件中的所有关键帧进行定位。另外,根据媒体文件的码率和分片大小,可以在数据分片中确定各关键帧所对应的数据信息(如,第N分片的第i字节至第j字节),从而支持第二判断装置1030执行上述判断。
如果不存在这样的一个播放位置,则可选地,由第二判断装置1030重新判断当前播放位置“00小时:00分:00秒:000毫秒”的对应帧即关键帧a是否下载完成。
如果存在这样的一个或多个播放位置,则可选地,受控处理装置1031从中随机选择一个播放位置作为新的当前播放位置,并对其对应帧进行解码等处理,并进行缓存或用于播放。优选地,该方法从多个满足条件的播放位置中挑选距离当前播放位置最近的一个播放位置作为新的当前播放位置,并对其对应帧进行解码等处理,并进行缓存或用于播放。
可选地,,节点1还可基于索引信息执行以下操作:
1)由第二判断装置1030判断已下载数据分片中是否包含当前播放位置的下一播放位置(如,00小时:00分:00秒:040毫秒)的对应帧(关键帧b);
1.1)如果1)中的判断结果为是,则受控处理装置1031将00小时:00分:00秒:040毫秒作为新的当前播放位置,并对其对应 帧关键帧b进行解码等操作,并进行缓存或用于播放;
1.2)如果1)中的判断结果为否,则说明关键帧b所在的若干数据分片尚未下载完毕,于是,可再由第二判断装置1030判断已下载数据分片中是否包含当前播放位置的再下一个播放位置(如,00小时:00分:00秒:080毫秒)的对应帧(关键帧c);
1.2.1)若1.2)中的判断结果也为否,则第二判断装置1030再针对再下一个播放位置(如,00小时:00分:00秒:120毫秒)的对应帧(关键帧d)进行上述判断。
一旦得到肯定的判断结果,就由受控处理装置1031将相应播放位置的对应帧进行解码等处理,并进行缓存或用于播放。
以上对数据部分存储顺序如图3a所示的媒体文件在本实施例下的点播控制进行了描述,下面,参照图3b,对于采用预测帧的媒体文件的点播控制进行说明。
设当前播放位置为00小时:00分:00秒:000毫秒,其对应帧为关键帧I,如果关键帧I已经下载完毕,则将其进行解码等处理,并进行缓存或用于播放;
再对下一个播放位置00小时:00分:00秒:040毫秒的对应帧“关键帧I和前向预测帧II”是否下载完毕进行判断;
-如果下载完毕,则解码前向预测帧II(结合关键帧I)并显示,仍缓存关键帧I;对再下一个播放位置00小时:00分:00秒:080毫秒的对应帧“关键帧I和前向预测帧III”是否下载完毕进行判断,以此类推。
-如果“关键帧I和前向预测帧II”尚未下载完毕,则可再由第二判断装置1030根据索引信息判断已下载数据分片中位于关键帧I之后的下一个关键帧是否下载完毕,如果该下一个关键帧已经下载完毕,则对其进行解码,用于播放。
应当理解,本文中提及的播放位置(包括但不限于以如下描述方式体现:当前播放位置、下一播放位置)的对应帧或为一个关键帧,或为一个关键帧及其一个或多个预测帧。在跳帧中,取决于索引信 息中的描述信息的不同,跳帧的目标播放位置也不同,也即,如果索引信息标识了所有帧(无论关键帧或预测帧)在媒体文件中的位置,则当关键帧I下载完毕而前向预测帧II尚未下完时,可以将播放位置跳到与前向预测帧III相对应的播放位置如:00小时:00分:00秒:080毫秒,继而由第二判断装置1030对该播放位置的对应帧“关键帧I和前向预测帧III”是否下载完毕进行判断。
第三实施例拥有一个变化例,现简要描述如下,请参照图7。图7示出了所述变化例所对应的媒体文件数据部分下载情况。虚线表示尚未下载完毕。
假设播放器当前播放到前向预测帧P1,继而读取前向预测帧P2时发现P2不能读取,这可能是因为P2部分或全部落入了分片X的未下载部分。
于是,播放器根据该媒体文件的码率计算出该分片X实际包含的播放时间的一个估计值。
因为压缩算法会根据媒体文件的实际情况来动态地调整码率,也即,每个数据分片所包含的时间和帧数量都是不定的,这些指示信息都在索引中均有描述。
举例来讲,假设该媒体文件的分片大小为256KByte,平均码率为64KBPS,则每个数据分片大约包含4秒时间。其中,平均码率的计算方式为:平均码率=数据部分总尺寸/文件控制信息给出的媒体文件播放时间。
假设P2处于5分10秒,于是,跳过该未下载完毕的分片X,如,跳到5分14秒,读取索引信息,查询5分14秒的对应帧。获取该帧在文件中的偏移位置以后,查询该偏移位置对应的文件分片是否是分片X,如果是分片X,则该帧肯定还没有下载完毕,就找下一个帧,一直找到一个帧完全位于分片X+1上(起始和结束时间的对应偏移位置均落在分片X+1中),该帧就是Pm+1。获取P3以后,送给解码器进行解码即可。
另外一种情况就是,5分14秒的对应帧命中在Pm+3上,前面 的帧有一点浪费。优选地,可向后(靠近数据部分首部的方向)查找几个已经下载的帧,送进解码器解码,以减少已下载帧的损失。
第十二实施例:为一种根据本发明第三方面的,基于当前播放位置确定数据分片的下载优先级的,支持跳帧并支持拖放的流式媒体文件点播控制装置
在观看媒体文件的时候,用户可能需要选择一个播放位置,作为新的当前播放位置,这也就是我们常说的拖放功能。
具体的,用户可通过输入一个用于指示所选择的新播放位置的用户指示信息,以使播放进程跳至该新播放位置所对应的媒体文件的新播放时间点开始向后顺序播放。输入用户指示信息的实现方式可包括(但不限于):a.用户用鼠标拖动播放器上的进度条到其所指定位置(对应于该新播放位置);b.用户直接输入一个播放时间点,该时间点对应于在该媒体文件中的新播放位置。
在本实施例中,需由第四确定装置106根据用户指示信息确定新的当前播放位置。随之,第二确定装置100将根据用户指示信息所确定的新的当前播放位置来确定优先下载的数据分片,而第二判断装置1030也将针对所述新的当前播放位置判断其对应帧是否已经下载完成。
用户利用计算机外设向第一点播控制装置发出用户指示信息后,新的当前播放位置的确定可以通过以下操作实现:
-第四确定装置接收用户指示信息;
-接着,第四确定装置根据用户指示信息中的时间点,基于索引信息,查找与该时间点相对应的一个播放位置,具体地,查找与该时间点相对应的一个关键帧。
-如果该时间点与一个关键帧正好对应,则直接由受控处理装置1031对该关键帧所在帧组进行解码等操作;
-如果该时间点与关键帧不对应,则优选地,查找与该时间点最接近的一个关键帧,更为优选地,查找在播放顺序上位于 该时间点之后且与该时间点最接近的一个关键帧。
接着,对所确定的关键帧所在帧组进行解码,详情请参看以上各实施例的描述。
第四实施例拥有一个变化例,现简要描述如下:
-读取索引信息,找到与用户指示信息中的时刻最接近的帧,获取该帧在媒体文件中的起始和结束位置;
-查询所述起始和结束位置位置对应的数据分片;
-判断该数据分片是否已经下载完毕;
-如果没有下载完毕,则等待直至该分片下载完毕(或依第三实施例进行自动跳帧);然后将该数据分片确定为优先下载的数据分片(下载优先级最高);
-如果已经下载完毕,则读取该帧,送入解码器解码,并将该数据分片之后的第一个没有下载完毕的数据分片确定为优先下载的数据分片。
与本发明的第三方面相类似地,本发明的第四方面有对应不同优化程度用户体验的如下几个具体实施例,以下一一详述。
第十三实施例:为一种根据本发明第四方面的,基于现有技术下载数据分片、无跳帧/无拖放功能的非流式媒体文件点播控制装置
图12为根据本发明的第四方面的在节点中基于P2P协议来对非流式媒体文件的点播进行控制的第二点播控制装置框图,以下参照图12并结合图1、图3a和图3b进行描述。假设需要进行流式媒体文件点播的节点为图1所示节点1。为方便起见,将以下各实施例中可能出现的装置均示于图12中。图中所示第二点播控制装置包括:第一确定装置200、第一获得装置201、第二获得装置202、获取装置203、第三下载装置204、数据处理装置205以及第四确定装置206,其中,所述第一获得装置201包括:第一下载装置2010以及第一提取装置2011;所述第二获得装置包括:第二确定装置2020、第二下载装置2021以及第二提取装置2022;所述第三下载装置204包括: 第三确定装置2040、第一判断装置2041以及受控下载装置2042;所述数据处理装置205包括:第二判断装置2050以及受控处理装置2051。
获取装置203获取节点2、3、4的资源相关信息,节点1从而知晓其它各节点拥有哪些分片,以便在下载相应分片时有目的地选择下载源。由于节点2、3、4在作为节点1的下载源的同时,也可能在不停地下载属于该媒体文件的分片,因此,获取装置203除从目录服务器处获得其它节点的资源相关信息外,还由来自节点2、3、4中与节点1已建立连接的节点的资源信息报告消息来获取该等节点的资源相关信息。现有技术中对此已有成熟的支持方案,如,使用BT软件的节点在成功下载完成一个分片后,将向与其连接的其它各个节点发送包含该分片标识的“Have(拥有)”消息,表示其已经拥有了该分片。
第一确定装置200在该媒体文件的多个分片中确定其中的所有控制信息分片。该确定操作的可实现性主要基于:媒体文件的文件控制信息的大小和分片大小均有一定限制且文件控制信息总是位于媒体文件的特定位置(如首部),容易理解,如先行根据该媒体文件的描述信息(如,种子文件所携带的描述信息)确定其文件类型,则文件控制信息的大小范围将更容易估计。可选地,节点也可以在媒体文件首部大致确定若干个分片(以保证其中包括所有控制信息分片为前提),通常,1-2个分片可以包括所有文件控制信息。
接着,第一下载装置2010将第一确定装置200确定的所有控制信息分片全部下载到本地,其中,每个分片的下载源可以基于此前获得的其它各个节点的资源相关信息来确定。
此后,由第一提取装置2011由所述所有控制信息分片中提取该媒体文件的文件控制信息。
所述第二获得装置202负责获得该媒体文件的索引信息。具体可通过第二确定装置2020确定所有索引信息分片后,由第二下载装置2021下载所述所有索引信息分片,再由第二提取装置2022从中 提取索引信息来实现。其中,索引信息分片的确定可以在获得文件控制信息以后,基于由文件控制信息计算出的索引信息位置来准确地确定,也可根据文件类型大致确定所有的索引信息分片。换言之,索引分片的下载可与控制信息分片同时下载,而无需分先后。
同样,第三下载装置204执行的数据分片的下载既可与控制信息分片、索引信息分片的下载同时进行,也可在控制信息分片下载后再行下载。本实施例中,沿用现有技术如BT或电骡中的乱序下载、稀缺分片优先下载等方案来下载数据分片。
于是,当用户点击如《辛德勒的名单》的链接后,节点1依上述步骤获得文件控制信息和索引信息,播放器加载该文件控制信息和索引信息后,默认的当前播放位置为该媒体文件的数据部分始端,如,00小时:00分:00秒:000毫秒。这通常也符合人们欣赏媒体文件的习惯。
播放器要成功播放与该当前播放位置相对应的画面,需要对其对应帧进行解码。于是,第二判断装置205判断已下载的数据分片中是否包含所述当前播放位置的对应帧,如,对应帧的起始和结束时间点各自对应的时间点所对应的偏移位置所确定的区间是否落在下载完毕的数据分片中,优选地,是否落于各个数据分片的已下载部分中。假设图3a中的关键帧a位于数据部分始端,于是,00小时:00分:00秒:000毫秒的对应帧为关键帧a,关键帧a播放完毕后,下一个当前播放位置如00小时:00分:00秒:040毫秒的对应帧为关键帧b;假设图3b中的关键帧I位于数据部分始端,则,00小时:00分:00秒:000毫秒的对应帧为关键帧I,关键帧I播放完毕后,下一个当前播放位置如00小时:00分:00秒:040毫秒的对应帧为关键帧I与前向预测帧II。
请先参看图3a,第二判断装置2050对已下载的数据分片中是否包含完整的关键帧a进行判断。所述判断可基于以下事实实现:
1.根据当前播放位置所对应的时间点和该媒体文件的码率,可以计算出该时间点在数据部分中的相应位置(如,第i字节);
2.由于每个分片的大小已知、帧长已知、且分片具有各自的标号,因此,可以在数据分片中准确地定位所述对应帧(如,第N分片的第i字节至第j字节)。
所述判断可以根据对应帧是否能够被播放器读取来得出结论。未能成功读取的帧将被视为尚未下载完毕。
如果第二判断装置2050的判断结果表明,已下载数据分片中包含完整的关键帧a,则通知受控处理装置2051,对关键帧a进行解码及其它相关处理,用于播放。
当关键帧a播放完毕,新的当前播放位置相应地改变(如,00小时:00分:00秒:040毫秒,指向关键帧b的帧头),接着,再由第二判断装置2050针对所述新的当前播放位置执行相应判断。其中,播放位置在一帧成功播放后自动改变可由现有技术支持。
如果第二判断装置2050的判断结果表明,已下载数据分片中不包含完整的关键帧a,节点1将维持当前播放位置不变,也即,第二判断装置2050不断重复执行上述判断直至关键帧a的下载全部完成,再由受控处理装置2051对其进行解码等处理以用于播放。在所述等待过程中,可提示用户当前点播状态为“载入中”(“Loading”)。
请参看图3b,在引入预测帧的压缩方式下,此时00小时:00分:00秒:000毫秒的对应帧为关键帧I。当该关键帧I尚未下载完毕时,第二判断装置2050将得到否定的判断结果,于是第二判断装置2050将重复针对该当前播放位置执行所述判断,直至该关键帧I下载完毕,则通知受控处理装置2051中对其进行解码等处理,用于播放。
仍请参照图3b,在关键帧I播放完毕后,新的当前播放位置对应关键帧I与前向预测帧II组成的帧组,第二判断装置2050针对所述新的当前播放位置执行判断,如果此时前向预测帧II尚未下载完毕(表现为如播放器无法成功读取前向预测帧II),第二判断装置2050将不断针对这个新的当前播放位置执行所述判断,直至前向预测帧II下载完成。
第十四实施例:为一种根据本发明第四方面的,基于当前播放位置确定数据分片的下载优先级、无跳帧/无拖放功能的非流式媒体文件点播控制装置
基于本发明的基本思想,最优先地由第一确定装置200和第一获得装置201根据其它多个节点的资源相关信息来获得该媒体文件的文件控制信息。此外,为有目的地为数据分片赋予优先级,还须由第三确定装置2040根据当前播放位置确定优先下载的数据分片。优选地,根据各数据分片在媒体文件的播放方向上与当前播放位置的距离远近来设置数据分片的下载优先级,距离当前播放位置越近,该数据分片的下载优先级越高,反之则越低。另外,当当前播放位置因为一个整帧已经播放完毕而改变时,数据分片的下载优先级也将随之改变,距离新的当前播放位置越近的数据分片的下载优先级越高,反之越低。由此,可以在未下载的数据分片中选定一个优先下载的数据分片(下载优先级最高)。于是,对应媒体文件初始的当前播放位置00小时:00分:00秒:000毫秒,优先下载的数据分片分别位于图3a所示的关键帧a和图3b所示的关键帧b中。
此后,由第一判断装置2041根据节点1掌握的其它节点的资源相关信息判断此前确定的优先下载的数据分片是否存在于其它节点的可下载分片中。具体地,所述判断可基于从目录服务器处获得的信息以及来自其它节点的资源信息报告消息(如,“Have”)进行。
当判断结果为其它节点的可下载分片中包括所述优先下载的数据分片时,受控下载装置2042确定一个下载源并下载该数据分片。所述下载源可以随机选择,优选地,节点1根据在各个拥有该分片的节点中选择为其提供最快下载速度的节点作为该分片的下载源。
当判断结果为其它节点的可下载分片中不包括该优先下载的数据分片时,第一判断装置2041将与该优先下载的数据分片相邻的下一数据分片作为新的优先下载的数据分片,继而针对所述新的优先下载的数据分片执行相应判断。
此外,下载进度可能超前于播放进度,也即,当确定的优先下载的数据分片可能属于已经下载完毕的数据分片时,该方法从该优先下载的数据分片开始沿文件播放方向向下查找,直至找到一个尚未下载完毕的数据分片,进而将其确定为新的优先下载的数据分片,然后判断是否有节点能够提供下载,如有,则下载该新的优先下载的数据分片。上述情况可能出现在如下情形中:
-网络速度和资源情况均足够理想;
-用户基于其它实施例选择向播放方向的反方向拖放(快退);
-用户将播放暂停或停止而允许下载器(模块)继续工作等。
第十五实施例:为一种根据本发明第四方面的,基于当前播放位置确定数据分片的下载优先级,支持跳帧但无拖放功能的非流式媒体文件点播控制装置
请参看图3a,假设图3a中关键帧a为文件点播之初的播放位置“00小时:00分:00秒:000毫秒”所指示。
如果第二判断装置2050判断出已下载的数据分片中包含完整的关键帧a,则通知受控处理装置2051,由后者对“00小时:00分:00秒:000毫秒”的对应帧即关键帧a进行解码等处理,用于播放。关键帧a播放完毕后,新的当前播放位置指向关键帧b,第二判断装置2050继而针对关键帧b执行如上判断。
相反地,如果第二判断装置2050判断出已下载的数据分片中不包含完整的关键帧a(如,只包括关键帧a的部分数据信息或不包括关键帧a的数据信息),优选地,由第二判断装置2050根据所述索引信息判断当前播放位置“00小时:00分:00秒:000毫秒”之后的其它播放位置(对应关键帧b、关键帧c、关键帧d等)中是否存在这样的另一播放位置,其对应帧已下载完成。索引信息通常包含关键帧的位置信息(如,各个关键帧在媒体文件播放时间中的相应时间点;或所述时间点与码流中相应字节的映射信息;或各个关键 帧所在的分片号及其在该分片中的具体位置,等等)。
总之,根据索引信息,节点1可以对媒体文件中的所有关键帧进行定位。另外,根据媒体文件的码率和分片大小,可以在数据分片中确定各关键帧所对应的数据信息(如,第N分片的第i字节至第j字节)。
如果不存在这样的一个播放位置,则可选地,第二判断装置2050将重新判断当前播放位置“00小时:00分:00秒:000毫秒”的对应帧即关键帧a是否下载完成。
如果存在这样的一个或多个播放位置,则可选地,受控处理装置2051从中随机选择一个播放位置作为新的当前播放位置,并对其对应帧进行解码等处理,用于播放。优选地,从多个满足条件的播放位置中挑选距离当前播放位置最近的一个播放位置作为新的当前播放位置,并对其对应帧进行解码等处理,用于播放。
可选地,节点1还可基于索引信息执行以下操作:
1)第二判断装置2050判断已下载数据分片中是否包含当前播放位置的下一播放位置(如,00小时:00分:00秒:040毫秒)的对应帧(关键帧b);
1.1)如果1)中的判断结果为是,则受控处理装置2051将00小时:00分:00秒:040毫秒作为新的当前播放位置,并对其对应帧关键帧b进行解码等操作,用于播放;
1.2)如果1)中的判断结果为否,则说明关键帧b所在的若干数据分片尚未下载完毕,于是,可再由第二判断装置2050判断已下载数据分片中是否包含当前播放位置的再下一个播放位置(如,00小时:00分:00秒:080毫秒)的对应帧(关键帧c);
1.2.1)若1.2)中的判断结果也为否,则第二判断装置2050再针对再下一个播放位置(如,00小时:00分:00秒:120毫秒)的对应帧(关键帧d)进行上述判断。
一旦得到肯定的判断结果,将由受控处理装置2051对相应播放位置的对应帧进行解码等处理,并进行缓存或用于播放。
以上对数据部分存储顺序如图3a所示的媒体文件在本实施例下的点播控制进行了描述,下面,参照图3b,对于采用预测帧的媒体文件的点播控制进行说明。
设当前播放位置为00小时:00分:00秒:000毫秒,其对应帧为关键帧I,如果关键帧I已经下载完毕,则将其解码并用于播放,缓存;
再对下一个播放位置00小时:00分:00秒:040毫秒的对应帧“关键帧I和前向预测帧II”是否下载完毕进行判断;
-如果该对应帧“关键帧I和前向预测帧II”下载完毕,则解码前向预测帧II(结合关键帧I)并显示,仍缓存关键帧I;对再下一个播放位置00小时:00分:00秒:080毫秒的对应帧“关键帧I和前向预测帧III”是否下载完毕进行判断,以此类推。
-如果该对应帧“关键帧I和前向预测帧II”尚未下载完毕,则可再根据索引信息判断已下载数据分片中位于关键帧II之后的下一个关键帧是否下载完毕,如果该下一个关键帧已经下载完毕,则对其进行解码,
应当理解,本文中提及的播放位置(包括但不限于以如下描述方式体现:当前播放位置、下一播放位置)的对应帧或为一个关键帧,或为一个关键帧及其一个或多个预测帧。在跳帧中,取决于索引信息中的描述信息的不同,跳帧的目标播放位置也不同,也即,如果索引信息标识了所有帧(无论关键帧抑或预测帧)在媒体文件中的位置,则当关键帧I下载完毕而前向预测帧II尚未下完时,可以将播放位置跳到与前向预测帧III相对应的播放位置如:00小时:00分:00秒:080毫秒,继而对该播放位置的对应帧“关键帧I和前向预测帧III”是否下载完毕进行判断。
第七实施例拥有一个变化例,现简要描述如下,请参看图7。
假设播放器当前播放到前向预测帧P1,继而读取前向预测帧P2时发现P2不能读取,这可能是因为P2部分或全部落入了分片X的未下载部分。
于是,播放器根据该媒体文件的码率计算出该分片X实际包含的播放时间的一个估计值。
因为压缩算法会根据媒体文件的实际情况来动态地调整码率,也即,每个数据分片所包含的时间和帧数量都是不定的,这些指示信息都在索引中均有描述。
举例来讲,假设该媒体文件的分片大小为256KByte,平均码率为64KBPS,则每个数据分片大约包含4秒时间。其中,平均码率的计算方式为:平均码率=数据部分总尺寸/文件控制信息给出的媒体文件播放时间。
假设P2处于5分10秒,于是,跳过该未下载完毕的分片X,如,跳到5分14秒,读取索引信息,查询5分14秒的对应帧。获取该帧在文件中的偏移位置以后,查询该偏移位置对应的文件分片是否是分片X,如果是分片X,则该帧肯定还没有下载完毕,就找下一个帧,一直找到一个帧完全位于分片X+1上(起始和结束时间的对应偏移位置均落在分片X+1中),该帧就是Pm+1。获取Pm+1以后,送给解码器进行解码即可。
另外一种情况就是,5分14秒的对应帧命中在Pm+3上,前面的帧有一点浪费。优选地,可向后(靠近数据部分首部的方向)查找几个已经下载的帧,送进解码器解码,以减少已下载帧的损失。
第十六实施例:为一种根据本发明第四方面的,基于当前播放位置确定数据分片的下载优先级,支持跳帧/支持拖放功能的非流式媒体文件点播控制装置
在观看媒体文件的时候,用户可能需要选择一个播放位置,作为新的当前播放位置,这也就是我们常说的拖放。目前,拖放的实现形式主要包括:a.用户用鼠标拖动播放器上的进度条到指定位置(一个时间点);b.用户通过直接输入一个时间点,以使文件转由该时间点开始向后顺序播放。
在本实施例中,还需第四确定装置206来根据用户指示信息确 定新的当前播放位置。随之,第三确定装置2040根据用户指示信息所确定的新的当前播放位置来确定优先下载的数据分片,第二判断装置2050则针对所述新的当前播放位置判断其对应帧是否已经下载完成。
用户利用计算机外设向第二点播控制装置发出用户指示信息后,新的当前播放位置的确定可以通过以下操作实现:
-接收用户指示信息;
-根据用户指示信息中的时间点,基于索引信息,查找与该时间点相对应的一个播放位置,具体地,查找与该时间点相对应的一个关键帧。
-如果该时间点与一个关键帧正好对应,则直接将该关键帧对该关键帧所在帧组进行解码等操作;
-如果该时间点与关键帧不对应,则优选地,查找与该时间点最接近的一个关键帧,更为优选地,查找在播放顺序上位于该时间点之后且与该时间点最接近的一个关键帧。
接着,对所确定的关键帧所在帧组进行解码,具体地,由第二判断装置2050针对该帧组执行判断步骤,详情请参看以上各实施例的描述。
第四实施例拥有一个变化例,现简要描述如下:
-读取索引信息,找到与用户指示信息中的时刻最接近的帧,获取该帧在媒体文件中的起始和结束位置;
-查询所述起始和结束位置位置对应的数据分片;
-判断该数据分片是否已经下载完毕
-如果没有下载完毕,则等待直至该分片下载完毕(或依第三实施例进行自动跳帧);然后将该数据分片确定为优先下载的数据分片(下载优先级最高);
-如果已经下载完毕,则读取该帧,送入解码器解码,并将该数据分片之后的第一个没有下载完毕的数据分片确定为优先下载的数据分片。
图13为具体实现本发明提出的点播控制方案的P2P软件结构示意图,其中包括用户界面模块、播放模块、下载模块、数据缓冲模块、存储模块。
用户界面模块根据用户指令控制播放模块和下载模块,如,开始/停止播放、拖动播放、开始/停止下载。
以下简要介绍本发明的实际测试情况。该测试基于以下不失一般性的假设:
-媒体文件为500MB大小的RMVB文件,其文件控制信息大
小为50KB,索引信息大约100KB;
-播放时间约120分钟;
-码率=500MB/(120*60)=69KBPS;
-在该测试中尝试下载同时播放该媒体文件的节点(以下简称测试节点)为拥有1M带宽的ADSL用户,其下载速度一般为100KBPS-120KBPS;
-网络上有其它5个节点可供测试节点下载文件分片,测试节点由所述5个节点的下载速度相同即20KBPS;
-P2P的文件分片大小一般为128KB-256KB,因此,由一个用户处完整下载一个文件分片需时6-7秒。
首先,根据用户的命令(如,用户移动光标至网页上的一个对应该媒体文件的点播指令的链接或按钮并点击鼠标左键),测试节点启动相应的点播任务;
此后,大致会有10秒钟左右的启动时间,这段时间内,测试节点将获取种子文件并连接其它节点;
其中,由于此次测试中文件控制信息与索引信息的大小均小于分片大小,因此,只需要分别下载位于该媒体文件的首部和尾部的两个分片即可保证下载所有的控制信息分片和索引信息分片。
于是,安排由所述5个节点中的一个处下载该控制信息分片,由其中另一节点处下载索引信息分片,并由其它3个节点处分别下载紧接着控制信息分片的3个数据分片;
基于此,6-7秒后即可开始该媒体文件的播放(下载同步进行中)。
以上对本发明的实施例进行了描述,但是本发明并不局限于特定的系统、设备和具体协议,本领域内技术人员可以在所附权利要求的范围内做出各种变形或修改。
Claims (43)
1.一种在用户设备中基于P2P协议来对流式媒体文件的点播进行控制的方法,其中,该方法包括以下步骤:
a.确定所述媒体文件的多个分片中包含文件控制信息的所有控制信息分片;
b.基于所确定的所述所有控制信息分片,获得所述文件控制信息;
其中,该方法还包括以下步骤:
i下载所述媒体文件的一个或多个数据分片;
其中,该方法还包括以下步骤:
x根据所述文件控制信息,对已下载的数据分片进行处理,生成经处理的数据,用于播放;
其中,所述步骤i包括以下步骤:
i1.根据当前播放位置,确定优先下载的数据分片;
i2.根据其它多个用户设备的资源相关信息,判断所述其它多个用户设备的可下载分片中是否包括所述优先下载的数据分片;
i3.如果所述其它多个用户设备的可下载分片中包括所述优先下载的数据分片,则下载所述优先下载的数据分片;
其中,所述步骤x包括以下步骤:
x1.判断已下载的数据分片中是否包含当前播放位置的对应帧;
x2.如果已下载的数据分片中包含该当前播放位置的对应帧,则对该当前播放位置的所述对应帧进行处理,生成经处理的数据,用于播放。
2.根据权利要求1所述的方法,其中,该方法还包括步骤:
-获取其它多个用户设备的资源相关信息;
所述步骤b包括:
b1.根据所述其它多个用户设备的资源相关信息,下载所确定的所有控制信息分片;
b2.从所有控制信息分片中提取所述文件控制信息。
3.根据权利要求1所述的方法,其中,所述步骤i还包括:
3’.如果所述其它多个用户设备的可下载分片中不包括所述优先下载的数据分片,则将该媒体文件的多个数据分片中与该优先下载的数据分片相邻的下一个数据分片作为新的优先下载的数据分片,重复步骤i2。
4.根据权利要求1所述的方法,其中,该方法还包括:
-获得所述媒体文件的索引信息。
5.根据权利要求4所述的方法,其中,所述获得所述媒体文件的索引信息的步骤包括:
-确定所述媒体文件的多个分片中包含索引信息的所有索引信息分片;
-下载确定的所述所有索引信息分片;
-从所述所有索引信息分片中提取所述索引信息。
6.根据权利要求4所述的方法,其中,所述步骤x还包括:
x2’.如果已下载的数据分片中不包含所述当前播放位置的对应帧,则基于所述索引信息,判断已下载的数据分片中是否包含另一播放位置的对应帧;
x3’.如果已下载的数据分片中包含另一播放位置的对应帧,则将该另一播放位置作为新的当前播放位置,执行步骤x2。
7.根据权利要求6所述的方法,其中,所述步骤x2’还包括:
-如果已下载的数据分片中不包含所述当前播放位置的对应帧,则基于所述索引信息,判断已下载的数据分片中是否包含所述当前播放位置的下一播放位置的对应帧;
所述步骤x3’还包括:如果已下载的数据分片中包含所述当前播放位置的下一播放位置的对应帧,则将该下一播放位置作为新的当前播放位置,执行步骤x2。
8.根据权利要求4所述的方法,其中,还包括步骤:
-根据用户指示信息以及所述索引信息,确定新的当前播放位置;
所述步骤i1还包括:根据所述新的当前播放位置,确定优先下载的数据分片;
所述步骤x1还包括:判断已下载的数据分片中是否包含所述新的当前播放位置的对应帧;
所述步骤x2还包括:如果已下载的数据分片中包含所述新的当前播放位置的对应帧,则对所述新的当前播放位置的所述对应帧进行处理,生成经处理的数据,用于播放。
9.根据权利要求1所述的方法,其中,所述对应帧包括关键帧。
10.根据权利要求9所述的方法,其中,所述对应帧包括关键帧和与所述关键帧相对应的一个或多个预测帧。
11.根据权利要求1-3中任一项所述的方法,其中,所述流式媒体文件包括:RM格式文件、RMVB格式文件、WMV格式文件以及ASF格式文件。
12.一种在用户设备中基于P2P协议来对非流式媒体文件的点播进行控制的方法,其中,该方法包括以下步骤:
o.确定所述媒体文件的多个分片中包含文件控制信息的所有控制信息分片;
p.基于所确定的所述所有控制信息分片,获得所述文件控制信息;
其中,该方法还包括以下步骤:
m.获得该媒体文件的索引信息;
其中,该方法还包括以下步骤:
j.下载所述媒体文件的一个或多个数据分片;
其中,该方法还包括以下步骤:
y.根据所述文件控制信息以及所述索引信息,对已下载的数据进行处理,生成经处理的数据,用于播放;
其中,所述步骤j包括以下步骤:
j1.根据当前播放位置,确定优先下载的数据分片;
j2.根据所述其它多个用户设备的资源相关信息,判断所述其它多个用户设备的可下载分片中是否包括所述优先下载的数据分片;
j3.如果所述其它多个用户设备的可下载分片中包括所述优先下载的数据分片,则下载所述优先下载的数据分片;
其中,所述步骤y包括以下步骤:
y1.判断已下载的数据分片中是否包含所述当前播放位置的对应帧;
y2.如果已下载的数据分片中包含该当前播放位置的对应帧,则对该当前播放位置的所述对应帧进行处理,生成经处理的数据,用于播放。
13.根据权利要求12所述的方法,其中,该方法还包括步骤:
-获取其它多个用户设备的资源相关信息;
所述步骤p包括:
p1.根据所述其它多个用户设备的资源相关信息,下载所确定的所有控制信息分片;
p2.从所有控制信息分片中提取所述文件控制信息。
14.根据权利要求12或13所述的方法,其中,所述步骤m包括:
m1.确定所述媒体文件的多个分片中包含索引信息的所有索引信息分片;
m2.基于所确定的所有索引信息分片,获得所述索引信息。
15.根据权利要求12所述的方法,其中,所述步骤j还包括:
j3’.如果所述其它多个用户设备的可下载分片中不包括所述优先下载的数据分片,则将该媒体文件中与该优先下载的数据分片相邻的下一个数据分片作为新的优先下载的数据分片,重复步骤j2。
16.根据权利要求12所述的方法,其中,所述步骤y还包括:
y2’.如果已下载的数据分片中不包含该当前播放位置的对应帧,则基于所述索引信息,判断已下载的数据分片中是否包含另一播放位置的对应帧;
y3’.如果已下载的数据分片中包含另一播放位置的对应帧,则将该另一播播放位置作为新的当前播放位置,执行步骤y2。
17.根据权利要求16所述的方法,其中,所述步骤y2’还包括:
-如果已下载的数据分片中不包含所述当前播放位置的对应帧,则基于所述索引信息,判断已下载的数据分片中是否包含所述当前播放位置的下一播放位置的对应帧;
所述步骤y3’还包括:如果已下载的数据分片中包含所述当前播放位置的下一播放位置的对应帧,则将该下一播放位置作为新的当前播放位置,执行步骤y2。
18.根据权利要求12所述的方法,其中,该方法还包括步骤:
-根据用户指示信息,确定新的当前播放位置;
所述步骤j1还包括:根据所述新的当前播放位置,确定优先下载的数据分片;
所述步骤y1还包括:判断已下载的数据分片中是否包含所述新的当前播放位置的对应帧;
所述步骤y2还包括:如果已下载的数据分片中包含所述新的当前播放位置的对应帧,则对所述新的当前播放位置的所述对应帧进行处理,生成经处理的数据,用于播放。
19.根据权利要求12所述的方法,其中,所述对应帧包括关键帧。
20.根据权利要求19所述的方法,其中,所述对应帧包括关键帧和与所述关键帧相对应的一个或多个预测帧。
21.根据权利要求12或13所述的方法,其中,所述非流式媒体文件包括:AVI格式文件。
22.一种在用户设备中基于P2P协议来对流式媒体文件的点播进行控制的第一点播控制装置,包括:
第一确定装置,用于确定所述媒体文件的多个分片中包含文件控制信息的所有控制信息分片;
第一获得装置,用于基于所确定的所述所有控制信息分片,获得所述文件控制信息;
第二下载装置,用于下载所述媒体文件的一个或多个数据分片;
数据处理装置,用于根据所述文件控制信息,对已下载的数据进行处理,生成经处理的数据,用于播放;
其中,所述第二下载装置包括:
第二确定装置,用于根据当前播放位置,确定优先下载的数据分片;
第一判断装置,用于根据其它多个用户设备的资源相关信息,判断所述其它多个用户设备的可下载分片中是否包括所述优先下载的数据分片;
受控下载装置,用于当所述其它多个用户设备的可下载分片中包括所述优先下载的数据分片时,下载所述优先下载的数据分片;
其中,所述数据处理装置包括:
第二判断装置,用于判断已下载的数据分片中是否包含当前播放位置的对应帧;
受控处理装置,用于当已下载的数据分片中包含该当前播放位置的对应帧时,对该当前播放位置的所述对应帧进行处理,生成经处理的数据,用于播放。
23.根据权利要求22所述的第一点播控制装置,其中,还包括:
获取装置,用于获取其它多个用户设备的资源相关信息;
所述第一获得装置还包括:
第一下载装置,用于根据所述其它多个用户设备的资源相关信息,下载所确定的所有控制信息分片;
第一提取装置,用于从所述所有控制信息分片中提取所述文件控制信息。
24.根据权利要求22所述的第一点播控制装置,其中,所述第一判断装置还用于,当所述其它多个用户设备的可下载分片中不包括所述优先下载的数据分片时,将该媒体文件的多个数据分片中与该优先下载的数据分片相邻的下一个数据分片作为新的优先下载的数据分片,根据所述其它多个用户设备的资源相关信息,判断所述其它多个用户设备的可下载分片中是否包括所述新的优先下载的数据分片。
25.根据权利要求22所述的第一点播控制装置,其中,还包括:
第二获得装置,用于获得所述媒体文件的索引信息。
26.根据权利要求25所述的第一点播控制装置,其中,所述第二获得装置包括:
第三确定装置,用于确定所述媒体文件的多个分片中包含索引信息的所有索引信息分片;
第三下载装置,用于下载确定的所述所有索引信息分片;
第二提取装置,用于从所述所有索引信息分片中提取所述索引信息。
27.根据权利要求25所述的第一点播控制装置,其中,
所述第二判断装置还用于,当已下载的数据分片中不包含所述当前播放位置的对应帧时,基于所述索引信息,判断已下载的数据分片中是否包含另一播放位置的对应帧;
所述受控处理装置还用于,当已下载的数据分片中包含另一播放位置的对应帧时,将该另一播放位置作为新的当前播放位置,对所述新的当前播放位置的对应帧进行处理,生成经处理的数据,用于播放。
28.根据权利要求27所述的第一点播控制装置,其中,
所述第二判断装置还用于,当已下载的数据分片中不包含所述当前播放位置的对应帧时,基于所述索引信息,判断已下载的数据分片中是否包含所述当前播放位置的下一播放位置的对应帧;
所述受控处理装置还用于:如果已下载的数据分片中包含所述当前播放位置的下一播放位置的对应帧,则将该下一播播放位置作为新的当前播放位置,对所述新的当前播放位置的对应帧进行处理,生成经处理的数据,用于播放。
29.根据权利要求25所述的第一点播控制装置,其中,还包括:
第四确定装置,用于根据用户指示信息以及所述索引信息,确定新的当前播放位置;
所述第一判断装置还用于,根据所述新的当前播放位置,确定优先下载的数据分片;
所述第二判断装置还用于,判断已下载的数据分片中是否包含所述新的当前播放位置的对应帧;
所述受控处理装置还用于,如果已下载的数据分片中包含所述新的当前播放位置的对应帧,则对所述新的当前播放位置的对应帧进行处理,生成经处理的数据,用于播放。
30.根据权利要求22所述的第一点播控制装置,其中,所述对应帧包括关键帧。
31.根据权利要求30所述的第一点播控制装置,其中,所述对应帧包括关键帧和与所述关键帧相对应的一个或多个预测帧。
32.根据权利要求22-24中任一项所述的第一点播控制装置,其中,所述流式媒体文件包括:RM格式文件、RMVB格式文件、WMV格式文件以及ASF格式文件。
33.一种在用户设备中基于P2P协议来对非流式媒体文件的点播进行控制的第二点播控制装置,其中,包括:
第一确定装置,用于确定所述媒体文件的多个分片中包含文件控制信息的所有控制信息分片;
第一获得装置,用于基于所确定的所述所有控制信息分片,获得所述文件控制信息;
第二获得装置,用于获得该媒体文件的索引信息;
第三下载装置,用于下载所述媒体文件的一个或多个数据分片;
数据处理装置,用于根据所述文件控制信息以及所述索引信息,对已下载的数据进行处理,生成经处理的数据,用于播放;
其中,所述第三下载装置包括:
第三确定装置,用于根据当前播放位置,确定优先下载的数据分片;
第一判断装置,用于根据所述其它多个用户设备的资源相关信息,判断所述其它多个用户设备的可下载分片中是否包括所述优先下载的数据分片;
受控下载装置,用于当所述其它多个用户设备的可下载分片中包括所述优先下载的数据分片时,下载所述优先下载的数据分片;
其中,所述数据处理装置包括:
第二判断装置,用于判断已下载的数据分片中是否包含所述当前播放位置的对应帧;
受控处理装置,用于当已下载的数据分片中包含该当前播放位置的对应帧时,对该当前播放位置的所述对应帧进行处理,生成经处理的数据,用于播放。
34.根据权利要求33所述的第二点播控制装置,其中,还包括:
获取装置,用于获取其它多个用户设备的资源相关信息;
所述第一获得装置包括:
第一下载装置,用于根据所述其它多个用户设备的资源相关信息,下载所确定的所有控制信息分片;
第一提取装置,用于从所有控制信息分片中提取所述文件控制信息。
35.根据权利要求33或34所述的第二点播控制装置,其中,所述第二获得装置包括:
第二确定装置,用于确定所述媒体文件的多个分片中包含索引信息的所有索引信息分片;
第二下载装置,用于下载确定的所述所有索引信息分片;
第二提取装置,用于从所述所有索引信息分片中提取所述索引信息。
36.根据权利要求33所述的第二点播控制装置,其中,所述第一判断装置还用于,当所述其它多个用户设备的可下载分片中不包括所述优先下载的数据分片时,将该媒体文件中与该优先下载的数据分片相邻的下一个数据分片作为新的优先下载的数据分片,根据所述其它多个用户设备的资源相关信息,判断所述其它多个用户设备的可下载分片中是否包括所述新的优先下载的数据分片。
37.根据权利要求33所述的第二点播控制装置,其中,
所述第二判断装置还用于,当已下载的数据分片中不包含所述当前播放位置的对应帧时,基于所述索引信息,判断已下载的数据分片中是否包含另一播放位置的对应帧;
所述受控处理装置还用于,当已下载的数据分片中包含另一播放位置的对应帧时,将该另一播放位置作为新的当前播放位置,对所述新的当前播放位置的对应帧进行处理,生成经处理的数据,用于播放。
38.根据权利要求37所述的第二点播控制装置,其中,
所述第二判断装置还用于,当已下载的数据分片中不包含所述当前播放位置的对应帧时,基于所述索引信息,判断已下载的数据分片中是否包含所述当前播放位置的下一播放位置的对应帧;
所述受控处理装置还用于:如果已下载的数据分片中包含所述当前播放位置的下一播放位置的对应帧,则将该下一播放位置作为新的当前播放位置,对所述新的当前播放位置的对应帧进行处理,生成经处理的数据,用于播放。
39.根据权利要求33所述的第二点播控制装置,其中,还包括:
第四确定装置,用于根据用户指示信息,确定新的当前播放位置;
所述第三确定装置还用于,根据所述新的当前播放位置,确定优先下载的数据分片;
所述第二判断装置还用于,判断已下载的数据分片中是否包含所述新的当前播放位置的对应帧;
所述受控处理装置还用于,当已下载的数据分片中包含所述新的当前播放位置的对应帧时,对所述新的当前播放位置的所述对应帧进行处理,生成经处理的数据,用于播放。
40.根据权利要求33所述的第二点播控制装置,其中,所述对应帧包括关键帧。
41.根据权利要求40所述的第二点播控制装置,其中,所述对应帧包括关键帧和与所述关键帧相对应的一个或多个预测帧。
42.根据权利要求33或34所述的第二点播控制装置,其中,所述非流式媒体文件包括:AVI格式文件。
43.一种在用户设备中用于对媒体文件的点播进行控制的点播控制装置,其中,包括根据权利要求22-32中任一项所述的第一点播控制装置和/或根据权利要求33-42中任一项所述的第二点播控制装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200710062866.5A CN101227590B (zh) | 2007-01-19 | 2007-01-19 | 基于p2p协议的媒体文件点播控制方法及装置 |
US12/010,081 US20090083812A1 (en) | 2007-01-19 | 2008-01-18 | Method and apparatus for controlling on-demand play of media files based on P2P protocols |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200710062866.5A CN101227590B (zh) | 2007-01-19 | 2007-01-19 | 基于p2p协议的媒体文件点播控制方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101227590A CN101227590A (zh) | 2008-07-23 |
CN101227590B true CN101227590B (zh) | 2013-03-06 |
Family
ID=39859315
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200710062866.5A Active CN101227590B (zh) | 2007-01-19 | 2007-01-19 | 基于p2p协议的媒体文件点播控制方法及装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20090083812A1 (zh) |
CN (1) | CN101227590B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230418468A1 (en) * | 2022-06-28 | 2023-12-28 | Adobe Inc. | Optimizing storage-related costs with compression in a multi-tiered storage device |
Families Citing this family (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101420457B (zh) * | 2008-12-03 | 2011-10-05 | 腾讯科技(深圳)有限公司 | 对等体下载数据分片的方法、装置及对等体 |
US9538142B2 (en) * | 2009-02-04 | 2017-01-03 | Google Inc. | Server-side support for seamless rewind and playback of video streaming |
US10045083B2 (en) | 2009-07-13 | 2018-08-07 | The Directv Group, Inc. | Satellite seeding of a peer-to-peer content distribution network |
CN102014143A (zh) * | 2009-09-04 | 2011-04-13 | 株式会社日立制作所 | 数据接收/发送终端、装置、方法及机顶盒 |
CN101697553B (zh) * | 2009-10-12 | 2012-07-11 | 中国科学院计算技术研究所 | P2p环境下的数据传输方法 |
CN102196008A (zh) * | 2010-03-08 | 2011-09-21 | 株式会社日立制作所 | 点对点下载方法、视频设备和内容发送方法 |
CN102196001B (zh) * | 2010-03-15 | 2014-03-19 | 腾讯科技(深圳)有限公司 | 一种影片文件下载装置及方法 |
GB2489746A (en) * | 2011-04-08 | 2012-10-10 | Philip John Thorne | Streaming out of sequence frames for computer animation |
CN102857326A (zh) * | 2011-06-27 | 2013-01-02 | 上海安达通信息安全技术股份有限公司 | 大文件快传技术 |
CN102231761A (zh) * | 2011-08-12 | 2011-11-02 | 乐视网信息技术(北京)股份有限公司 | 一种p2p数据交互方法 |
CN102843616B (zh) | 2012-08-13 | 2018-06-15 | 中兴通讯股份有限公司 | Iptv系统实现边放边下的方法、终端及cdn服务器 |
CN103327103A (zh) * | 2013-06-25 | 2013-09-25 | 北京网梯科技发展有限公司 | 对html课件边下载边播放的方法及系统 |
CN105338022B (zh) * | 2014-07-07 | 2019-04-23 | 深圳市云帆世纪科技有限公司 | 基于p2p的数据传输方法及系统 |
CN105323597B (zh) * | 2014-08-04 | 2019-03-08 | 中国电信股份有限公司 | Mp4文件播放方法、处理方法和装置以及播放系统 |
WO2016065468A1 (en) * | 2014-10-27 | 2016-05-06 | Zed Creative Inc. | Methods and systems for multimedia content |
CN104581229B (zh) | 2015-01-16 | 2018-08-03 | 京东方科技集团股份有限公司 | 一种流媒体数据传输装置、方法和系统 |
CN108124202B (zh) * | 2015-01-30 | 2020-07-21 | 青岛海信传媒网络技术有限公司 | 一种使流媒体服务器支持hls协议的方法 |
CN104661083A (zh) * | 2015-02-06 | 2015-05-27 | 南京传唱软件科技有限公司 | 视频播放方法、系统、流媒体播放方法、装置及系统 |
CN105049957B (zh) * | 2015-07-13 | 2018-07-24 | 无锡天脉聚源传媒科技有限公司 | 一种基于Web端的视频合成方法及装置 |
CN105681894A (zh) * | 2016-01-04 | 2016-06-15 | 努比亚技术有限公司 | 显示视频文件的装置及方法 |
US10621137B2 (en) * | 2016-04-05 | 2020-04-14 | Shutterstock, Inc. | Architecture for predicting network access probability of data files accessible over a computer network |
WO2018119947A1 (zh) * | 2016-12-29 | 2018-07-05 | 深圳天珑无线科技有限公司 | 一种协作传输的方法及装置 |
CN107147919B (zh) * | 2017-06-19 | 2020-11-27 | 网宿科技股份有限公司 | 直播快速启播方法及系统 |
CN108111537B (zh) * | 2018-01-17 | 2021-03-23 | 杭州当虹科技股份有限公司 | 一种快速预览mp4格式的在线流媒体视频内容的方法 |
CN108848060B (zh) | 2018-05-17 | 2021-08-24 | 上海哔哩哔哩科技有限公司 | 一种多媒体文件处理方法、处理系统及计算机可读存储介质 |
US11886390B2 (en) | 2019-04-30 | 2024-01-30 | JFrog Ltd. | Data file partition and replication |
US11340894B2 (en) | 2019-04-30 | 2022-05-24 | JFrog, Ltd. | Data file partition and replication |
US11386233B2 (en) | 2019-04-30 | 2022-07-12 | JFrog, Ltd. | Data bundle generation and deployment |
CN111935535B (zh) * | 2019-05-13 | 2022-06-17 | 阿里巴巴集团控股有限公司 | 数据处理方法、装置、终端设备及计算机存储介质 |
US10972289B2 (en) | 2019-07-19 | 2021-04-06 | JFrog, Ltd. | Software release verification |
US10999314B2 (en) | 2019-07-19 | 2021-05-04 | JFrog Ltd. | Software release tracking and logging |
CN111193772B (zh) * | 2019-12-05 | 2022-04-05 | 商客通尚景科技(上海)股份有限公司 | 文件下载方法及服务器 |
CN111031383B (zh) * | 2019-12-06 | 2022-08-05 | RealMe重庆移动通信有限公司 | 流媒体传输方法及装置、电子设备 |
US11695829B2 (en) | 2020-01-09 | 2023-07-04 | JFrog Ltd. | Peer-to-peer (P2P) downloading |
CN111698466B (zh) * | 2020-05-07 | 2022-03-01 | 浙江大华技术股份有限公司 | 监控录像断点下载的方法、装置、设备和介质 |
CN112383606B (zh) * | 2020-11-09 | 2023-12-19 | 福建亿榕信息技术有限公司 | 一种桌面容器镜像增量p2p分发方法及设备 |
US11860680B2 (en) | 2020-11-24 | 2024-01-02 | JFrog Ltd. | Software pipeline and release validation |
US12061889B2 (en) | 2021-10-29 | 2024-08-13 | JFrog Ltd. | Software release distribution across a hierarchical network |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6339785B1 (en) * | 1999-11-24 | 2002-01-15 | Idan Feigenbaum | Multi-server file download |
KR20040041082A (ko) * | 2000-07-24 | 2004-05-13 | 비브콤 인코포레이티드 | 멀티미디어 북마크와 비디오의 가상 편집을 위한 시스템및 방법 |
US7689510B2 (en) * | 2000-09-07 | 2010-03-30 | Sonic Solutions | Methods and system for use in network management of content |
US7555559B2 (en) * | 2003-02-28 | 2009-06-30 | Onion Networks, KK | Parallel data transfer over multiple channels with data order prioritization |
US7408986B2 (en) * | 2003-06-13 | 2008-08-05 | Microsoft Corporation | Increasing motion smoothness using frame interpolation with motion analysis |
-
2007
- 2007-01-19 CN CN200710062866.5A patent/CN101227590B/zh active Active
-
2008
- 2008-01-18 US US12/010,081 patent/US20090083812A1/en not_active Abandoned
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230418468A1 (en) * | 2022-06-28 | 2023-12-28 | Adobe Inc. | Optimizing storage-related costs with compression in a multi-tiered storage device |
Also Published As
Publication number | Publication date |
---|---|
CN101227590A (zh) | 2008-07-23 |
US20090083812A1 (en) | 2009-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101227590B (zh) | 基于p2p协议的媒体文件点播控制方法及装置 | |
CN102740159B (zh) | 媒体文件存储格式和自适应传送系统 | |
CN103024561B (zh) | 一种拖拽进度条的显示方法及装置 | |
CN102439578B (zh) | 动态可变速率媒体传送系统 | |
US10397293B2 (en) | Dynamic chunking for delivery instances | |
CN101868793B (zh) | 一种对等回放装置及其操作方法 | |
CN103959271B (zh) | 用户自适应http流管理器和使用其的方法 | |
CN109032738A (zh) | 多媒体播放控制方法、装置、终端及存储介质 | |
US9021537B2 (en) | Pre-buffering audio streams | |
CN101415069B (zh) | 一种服务器及其在线播放视频的发送方法 | |
US7860996B2 (en) | Media streaming with seamless ad insertion | |
US8943215B2 (en) | Distributed smooth streaming utilizing dynamic manifests | |
CN111770355B (zh) | 媒体服务器确定方法、装置、服务器以及存储介质 | |
CN102577272A (zh) | 低等待时间的可高速缓存的媒体流式传输 | |
US20070300268A1 (en) | Method and apparatus for facilitating interactions with a digital video feed | |
CN107920258B (zh) | 一种数据处理方法及装置 | |
CN102196008A (zh) | 点对点下载方法、视频设备和内容发送方法 | |
CN101715650A (zh) | 机顶盒对等端辅助的视频点播 | |
CN110198494B (zh) | 一种视频播放方法、装置、设备和存储介质 | |
CN101202882B (zh) | 一种媒体资源传输方法、系统及机顶盒 | |
CN106331788A (zh) | 一种视频下载方法及装置 | |
CN114404960A (zh) | 云游戏资源数据处理方法、装置、计算机设备和存储介质 | |
CN111510789A (zh) | 视频播放方法、系统、计算机设备及计算机可读存储介质 | |
US20180137890A1 (en) | Virtual Video Editing | |
US20170140443A1 (en) | Dynamic manifest generation for delivery instances |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |