CN101287107A - 媒体文件的点播方法、系统和设备 - Google Patents
媒体文件的点播方法、系统和设备 Download PDFInfo
- Publication number
- CN101287107A CN101287107A CNA2008101113849A CN200810111384A CN101287107A CN 101287107 A CN101287107 A CN 101287107A CN A2008101113849 A CNA2008101113849 A CN A2008101113849A CN 200810111384 A CN200810111384 A CN 200810111384A CN 101287107 A CN101287107 A CN 101287107A
- Authority
- CN
- China
- Prior art keywords
- media
- media file
- request
- index information
- server
- 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.)
- Granted
Links
Images
Classifications
-
- 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/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/238—Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
- H04N21/2387—Stream processing in response to a playback request from an end-user, e.g. for trick-play
-
- 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/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/65—Transmission of management data between client and server
- H04N21/658—Transmission by the client directed to the server
- H04N21/6587—Control parameters, e.g. trick play commands, viewpoint selection
-
- 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/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
- H04N21/8455—Structuring of content, e.g. decomposing content into time segments involving pointers to the content, e.g. pointers to the I-frames of the video stream
-
- 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/17336—Handling of requests in head-ends
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明公开了一种媒体文件的点播方法,包括:服务器在接收到来自客户端的媒体点播请求时,将自定义媒体文件中的索引信息提供给客户端;服务器在接收到来自客户端的播放进度请求时,根据播放进度请求中的请求时间,在索引信息中查找与请求时间相对应的媒体数据起始偏移位置;服务器根据媒体数据起始偏移位置,读取自定义媒体文件中与请求时间相对应的媒体数据并提供给客户端。本发明还公开了一种媒体文件的点播系统和设备,通过对原始媒体文件解析得到的索引信息,将原始媒体文件按照时间划分为各个片段,使得用户在观看节目并拖动播放进度条时,能够按照时间请求数据,从而迅速获取拖动位置对应时间的媒体数据,增加了用户的使用体验。
Description
技术领域
本发明涉及互联网中的视频和音频点播技术,尤其涉及一种媒体文件的点播方法、系统和设备。
背景技术
随着社会经济的发展和科技进步,用户对数据、图像业务,特别是多媒体业务方面的需求与日俱增,开拓新型的带宽业务成为信息业的重要目标,而视频点播(VOD,Video on Demand)是宽带业务中最有代表性的典型应用之一。VOD使用户可以根据自己的兴趣,在计算机或电视上自由的点播流媒体服务器中的媒体节目,主动性完全掌握在用户手中,从根本上改变了用户被动观看节目的不足。
传统的VOD是采用客户端/服务器(C/S)连接模式提供点播业务的,由于输入/输出(I/O)瓶颈的限制,一台流媒体服务器只能支持有限的并发流;而要解决十万、百万级用户同时收看的问题,不仅需要大量的流媒体服务器,还需要极宽的网络带宽。因此,C/S模式已经称为制约VOD发展的瓶颈。
目前的VOD系统多采用点对点(P2P,Peer to Peer)技术,P2P技术是一种通过系统间的直接交换所达成的计算机资源与信息共享的技术。P2P技术将许多用户终端组合成一个网络,共享其中的带宽,共同处理其中的信息。与传统的C/S模式不同,P2P工作方式中,每个用户终端即是客户端又是服务器。以共享下载文件为例,下载同一个文件的众多用户终端中的每一个用户终端只需下载文件的一个片段,然后相互交换,最终每个用户终端都能得到完整的文件。P2P技术使用户终端在享受服务器资源的同时,也可利用自身的空闲资源为其他的用户终端提供服务;由于资源可以在点对点之间传输,不一定经过流媒体服务器,这样可以节约流媒体服务器的带宽成本,在有限的带宽资源下,满足大量的用户同时在线点播节目的需求。
现有的VOD技术,无法对媒体文件按照时间划分片段,因此,在用户观看媒体节目并拖动进度条时,客户端只能按照进度条占总进度的长度比例,向服务器请求位于媒体文件总长相同比例处的媒体数据。例如:用户拖动后的进度条占总进度的1/2,则客户端向服务器请求位于媒体文件总长1/2处的媒体数据。而由于媒体文件中各个数据包的大小存在不同,因此,通常媒体文件时长并非与媒体文件的长度等比对应,例如:一个100兆(M)大小的媒体文件,播放该媒体文件需要的总时长为1800秒(s),则位于第50M的媒体数据并不一定是在第900s播放;同样,第450s播放的并不一定是位于第25M的媒体数据。
由此可知,现有的VOD技术中,用户在客户端上拖动进度条进行媒体数据的请求,并不是按照真正的时间来请求的;并且服务器需要根据客户端的进度请求对媒体文件进行在线分析,从而定位所请求的媒体数据,这个过程需要花费较长的延迟时间。由于现有技术无法根据客户端的进度请求,迅速定位媒体文件中的媒体数据,导致从拖动进度条到播放媒体节目的延迟时间较长,因此给用户带来不好的使用体验。
发明内容
有鉴于此,本发明的主要目的在于提供一种媒体文件的预处理方法、系统和设备,以解决现有的媒体播放过程中,拖动进度条时延迟时间较长的问题。
为达到上述目的,本发明的技术方案是这样实现的:
本发明提供了一种媒体文件的点播方法,包括:
服务器在接收到来自客户端的媒体点播请求时,将自定义媒体文件中的索引信息提供给所述客户端;
服务器在接收到来自所述客户端的播放进度请求时,根据所述播放进度请求中携带的请求时间,在所述索引信息中查找与所述请求时间相对应的媒体数据起始偏移位置;
服务器根据所述媒体数据起始偏移位置,读取所述自定义媒体文件中与所述请求时间相对应的媒体数据,并将所述媒体数据提供给所述客户端。
所述索引信息包括:原始媒体文件的总时长、原始媒体文件的数据包总数、每个数据包的大小、原始媒体文件的头部大小、平均码率、内存管理单元总数、每秒钟的媒体数据在原始媒体文件中的起始偏移位置、每秒钟的媒体数据中是否存在关键帧、每秒钟所包含的内存管理单元数量、每秒钟所包含的数据包数量。
所述将自定义媒体文件中的索引信息提供给客户端之前,该方法还包括:
服务器对所述原始媒体文件进行解析,得到对应的索引信息;
服务器组合所述原始媒体文件和索引信息,生成所述自定义媒体文件。
所述服务器组合所述原始媒体文件和索引信息,具体包括:服务器将所述索引信息以二进制的方式写入所述原始媒体文件的尾部或头部。
所述读取自定义媒体文件中与请求时间相对应的媒体数据,并将媒体数据提供给客户端,进一步包括:
服务器将从自身磁盘所读取的媒体数据缓存到内存中,则所述服务器再次接收到媒体点播请求时,直接从所述内存中读取所述媒体数据,并提供给所述客户端;
在所述内存空间已满的情况下,通过淘汰算法将点播频率较低的媒体数据从所述内存中删除。
本发明还提供了一种媒体文件的点播方法,包括:
客户端向服务器发送媒体点播请求,并接收来自所述服务器的索引信息;
在媒体播放过程中,客户端根据所述索引信息获取进度条的拖放位置所对应的请求时间,并将所述请求时间携带在播放进度请求中发送给所述服务器;
客户端接收来自所述服务器的对应所述请求时间的媒体数据,并进行媒体播放。
所述索引信息包括:原始媒体文件的总时长、原始媒体文件的数据包总数、每个数据包的大小、原始媒体文件的头部大小、平均码率、内存管理单元总数、每秒钟的媒体数据在原始媒体文件中的起始偏移位置、每秒钟的媒体数据中是否存在关键帧、每秒钟所包含的内存管理单元数量、每秒钟所包含的数据包数量。
所述获取进度条的拖放位置所对应的请求时间,具体包括:
客户端根据所述进度条占总进度的比例,以及所述索引信息中的原始媒体文件总时长,获取所述拖放位置所对应的第一时间;
客户端查找所述索引信息,判断所述第一时间对应的媒体数据中是否存在关键帧;
如果所述第一时间对应的媒体数据中存在关键帧,则确定所述第一时间为拖放位置所对应的请求时间;否则,选取与所述第一时间最近的存在关键帧的第二时间为拖放位置所对应的请求时间。
本发明还提供了一种媒体文件的点播系统,包括:
客户端,用于根据来自服务器的索引信息,获取进度条的拖放位置所对应的请求时间,并将所述请求时间携带在播放进度请求中发送给所述服务器;接收来自所述服务器的媒体数据,进行媒体播放;
服务器,用于将自定义媒体文件中的索引信息提供给所述客户端,并根据来自所述客户端的播放进度请求中的请求时间,查找所述索引信息,得到与所述请求时间相对应的媒体数据起始偏移位置;且根据所述媒体数据起始偏移位置,读取所述自定义媒体文件中与所述请求时间相对应的媒体数据提供给所述客户端。
所述服务器包括:
索引信息提供模块,用于在接收到来自所述客户端的媒体点播请求时,将自定义媒体文件中的索引信息提供给所述客户端,并供所述服务器自身进行索引信息的查找;
起始偏移位置查找模块,用于在接收到来自所述客户端的播放进度请求时,根据所述播放进度请求中的请求时间,查找所述索引信息,得到与所述请求时间相对应的媒体数据起始偏移位置;
媒体数据读取模块,用于根据所述媒体数据起始偏移位置,读取所述自定义媒体文件中与所述请求时间相对应的媒体数据,并将所述媒体数据提供给所述客户端。
所述服务器还包括自定义媒体文件生成模块,用于对所述原始媒体文件进行解析,得到对应的索引信息,并组合所述原始媒体文件和索引信息,生成所述自定义媒体文件。
所述客户端包括:
发送模块,用于向所述服务器发送媒体点播请求和播放进度请求,所述播放进度请求中携带请求时间;
请求时间获取模块,用于在媒体播放过程中,获取进度条的拖放位置所对应的请求时间;
接收模块,用于接收来自所述服务器的索引信息和媒体数据。
本发明还提供了一种服务器,包括:
索引信息提供模块,用于在接收到来自客户端的媒体点播请求时,将自定义媒体文件中的索引信息提供给所述客户端,并供所述服务器自身进行索引信息的查找;
起始偏移位置查找模块,用于在接收到来自所述客户端的播放进度请求时,根据所述播放进度请求中的请求时间,查找所述索引信息,得到与所述请求时间相对应的媒体数据起始偏移位置;
媒体数据读取模块,用于根据所述媒体数据起始偏移位置,读取所述自定义媒体文件中与所述请求时间相对应的媒体数据,并将所述媒体数据提供给所述客户端。
所述媒体数据读取模块包括:
媒体数据缓存子模块,用于将所述服务器从自身磁盘所读取的媒体数据缓存到内存中;
媒体数据更新子模块,用于在所述服务器的内存空间已满的情况下,通过淘汰算法将点播频率较低的媒体数据从所述内存中删除。
所述服务器还包括自定义媒体文件生成模块,用于对所述原始媒体文件进行解析,得到对应的索引信息,并组合所述原始媒体文件和索引信息,生成所述自定义媒体文件。
本发明还提供了一种客户端,包括:
发送模块,用于向服务器发送媒体点播请求和播放进度请求,所述播放进度请求中携带请求时间;
请求时间获取模块,用于在媒体播放过程中,获取进度条的拖放位置所对应的请求时间;
接收模块,用于接收来自所述服务器的索引信息和媒体数据。
所述请求时间获取模块包括:
第一时间获取子模块,用于根据所述进度条占总进度的比例,以及所述索引信息中的原始媒体文件总时长,获取所述拖放位置所对应的第一时间;
第一时间判断子模块,用于查找所述索引信息,判断所述第一时间对应的媒体数据中是否存在关键帧;
请求时间确定子模块,用于根据判断结果,确定所述第一时间为拖放位置所对应的请求时间,或者选取与所述第一时间最近的存在关键帧的第二时间为拖放位置所对应的请求时间。
本发明所提供的媒体文件的预处理方法、系统和设备,通过对原始媒体文件解析得到的索引信息,索引信息在不改变原始媒体文件的前提下,将原始媒体文件按照时间划分为各个片段,并记录有每秒钟的媒体数据中是否含有关键帧的相关信息;索引信息写入原始媒体文件的尾部或头部,形成新的自定义媒体文件;本发明使得用户在观看节目并拖动播放进度条时,能够按照时间请求数据,从而迅速从服务器获取拖动位置对应时间的媒体数据,缩短了拖动进度条时的延迟时间,增加了用户的使用体验;并且由于本发明将原始媒体文件以时间为单位进行了逻辑上的切割,因此,对于P2P模式的点播系统而言,任何一个用户终端在点播了原始媒体文件中的一个片段之后,都可以向流媒体服务器上报自己的资源信息,从而成为一个有效的种子,可以向其他用户终端分享本地的媒体数据,最大限度的做到了资源共享,且更为有效的降低了网络带宽。
附图说明
图1为本发明中服务器实现的媒体文件的点播方法流程图;
图2为本发明中客户端实现的媒体文件的点播方法流程图;
图3为本发明一种媒体文件点播系统的组成结构示意图。
具体实施方式
下面结合附图和具体实施例对本发明的技术方案进一步详细阐述。
本发明在流媒体服务器上对原始媒体文件进行预处理,通过解析得到原始媒体文件对应的索引信息,包括:原始媒体文件的总时长、原始媒体文件的数据包总数、每个数据包的大小、原始媒体文件的头部大小、平均码率、内存管理单元总数、每秒钟的媒体数据在原始媒体文件中的起始偏移位置、每秒钟的媒体数据中是否存在关键帧、每秒钟所包含的内存管理单元数量、每秒钟所包含的数据包数量等等。解析得到的索引信息保存在数据结构中,并以二进制的方式写入原始媒体文件的尾部或头部,从而生成新的自定义媒体文件。需要指出的是,将索引信息写入原始媒体文件的头部,使得原始媒体文件的位置发生变化,需要重新修改原始媒体文件的位置;而将索引信息写入原始媒体文件的尾部,则不需要修改原始媒体文件的位置,其操作相对简单,因此,实际应用中优选的将索引信息写入原始媒体文件的尾部。
保存索引信息的数据结构如下:
#ifndef_FRAME_INDEX_H
#define_FRAME_INDEX_H
/*the max seconds in one wmv file*/
#define MAX_DURATION 360 0*4
/*the size of memory manage unit*/
#define MEM_MGR_UNIT 1*1 024*1024
/*the max number of memory manage unit in one wmv file*/
#define MEDIA_FILE_MAX_MEM_MGR_UNITS 1000
/*designed for mem manage unit*/
typedef struct
{
/*the memory manage unit offset in wmv file*/
unsigned long long memMgrUnitOffset;
/*the size of memory manage unit*/
unsigned int size;
/*the begin second in this memory manage unit*/
unsigned int beginSecond;
/*the end second in this memory manage unit*/
unsigned int endSecond;
}MemMrgUnit;
typedef struct
{
/*total seconds in this wmv file*/
unsigned int totalSeconds;
/*total packets in this wmv file*/
unsigned int totalPackets;
/*packet size*/
unsigned int packetSize;
/*the size of this wmv file header*/
unsigned int headerSize;
/*average biterate*/
unsigned int aveBiterate;
/*the number of memory manage unit in this wmv file*/
unsigned int totalMemMgrUnit;
/*the offset byte of seekable flag in wmv file*/
unsigned int mediaHeaderFlagOffset;
/*seconds offset in this wmv file*/
unsigned long long fileSecondOffset[MAX_DURATION];
/*if this second has I frame*/
unsigned int secondHasIFrame[MAX_DURATION];
/*the packets number of this second*/
unsigned int secondHasPackets[MAX_DURATION];
/*which memory manage unit this second belong to*/
unsigned int secondBelongToMemMgr[MAX_DURATION];
/*the array of memory manage unit*/
MemMrgUnit memMrgUint[MEDIA_FILE_MAX_MEM_MGR_UNITS];
charpad[512-(sizeof(dummySecondIndex)%512)];
}dummySecondIndex;
#endif
上述数据结构中包括对变量的宏定义,定义媒体文件的最大时长MAX_DURATION为3600*4秒,即4个小时;定义内存管理单元大小MEM_MGR_UNIT为1*1024*1024字节,即1M;定义内存管理单元的最大数量MEDIA_FILE_MAX_MEM_MGR_UNITS为1000。所谓内存管理单元是指,服务器将自身的内存存储空间划分为多个内存管理单元,并将从磁盘读取的媒体数据以秒为单位分块缓存到各个内存管理单元中,从而在下次进行媒体点播并需要读取所述媒体数据时,服务器可以直接从内存中读取,而不需要再读磁盘,能够提高效率。并且,出于内存存储空间有限的考虑,在内存空间已满的情况下,通过淘汰算法将点播频率较低的媒体数据从内存中删除,从而留出空间用来存储新的媒体数据。从而,在实际应用中,通常将点播频率较高的媒体数据存储在内存管理单元中,而将点播频率较低的媒体文件存储在磁盘中。
上述数据结构中还包括每个内存管理单元的开始秒(beginSecond)和结束秒(endSecond),以及解析原始媒体文件得到的索引信息,包括:原始媒体文件总时长(totalSeconds)、原始媒体文件的数据包总数(totalPackets)、每个数据包的大小(packetSize)、原始媒体文件头部大小(headerSize)、平均码率(aveBiterate)、内存管理单元总数(totalMemMgrUnit)、每秒钟的媒体数据在原始媒体文件中的起始偏移位置(long long fileSecondOffset)、每秒钟的媒体数据中是否存在关键帧(secondHasIFrame)、每秒钟所包含的内存管理单元数量(secondBelongToMemMgr)、每秒钟所包含的数据包数量(secondHasPackets)等等。
需要指出的是,本发明中对原始媒体文件的预处理支持在线和离线的两种操作方式。所谓离线的预处理,是指用户利用预处理工具在离线情况下对原始媒体文件进行解析得到索引信息,并生成由原始媒体文件和索引信息组成的自定义媒体文件,然后将预处理后的自定义媒体文件上载到流媒体服务器中。所谓在线的预处理,是指流媒体服务器对上载的原始媒体文件进行解析,并生成由原始媒体文件和索引信息组成的自定义媒体文件。由此可知,在线的预处理需要经历一定的在线时延,且对流媒体服务器的性能要求较高,因此,实际应用中,优选的采用离线的预处理方式。
本发明基于上述预处理操作所实现的媒体文件点播方法,对于C/S模式和P2P模式的点播系统都是适用的。相同的地方在于,两种模式的点播系统都是在流媒体服务器上对原始媒体文件进行预处理,解析得到索引信息。不同的地方在于,C/S模式的点播系统中,各个用户终端都是统一的从流媒体服务器获取媒体文件,也即媒体文件的提供者只能是流媒体服务器;P2P模式的点播系统中,媒体文件最初是从流媒体服务器传输到P2P网络中的用户终端,但由于P2P支持资源在用户终端之间的传输,因此,媒体文件的提供者可以是流媒体服务器,也可以是拥有媒体文件的用户终端。
本发明中为了描述方便,将作为媒体文件提供者的设备统称为服务器,将作为媒体文件接收者的设备统称为客户端。从而,在C/S模式的点播系统中,服务器即指流媒体服务器,客户端即指用户终端;在P2P模式的点播系统中,服务器可以是流媒体服务器,也可以是拥有媒体文件的用户终端,而客户端即指请求接收媒体文件的用户终端。
下面,从服务器的实现上对本发明的媒体文件点播方法进行详细阐述,如图1所示,图1为本发明中服务器实现的媒体文件的点播方法流程图,主要包括以下步骤:
步骤101,服务器在接收到来自客户端的媒体点播请求时,将自定义媒体文件中的索引信息提供给客户端。
客户端需要点播服务器上的自定义媒体文件时,向服务器发送媒体点播请求;而服务器接收到来自客户端的媒体点播请求后,先将自定义媒体文件中的索引信息发送给客户端,由客户端进行接收。
步骤102,服务器在接收到来自客户端的播放进度请求时,根据播放进度请求中的请求时间,在索引信息查找与请求时间相对应的媒体数据起始偏移位置。
在服务器向客户端播放自定义媒体文件的过程中,根据来自客户端的播放进度请求中的请求时间,在索引信息中查找;由于索引信息中将原始媒体文件按照时间划分为不同的片段,实际应用中通常是按秒划分,因此服务器可以根据每秒钟的媒体数据在原始媒体文件中的起始偏移位置,找到与请求时间相对应的媒体数据起始偏移位置。例如:一个媒体文件的时长为60s,按秒划分为60个片段,每秒钟分别对应一部分媒体数据,即每秒钟的开始时刻都对应着原始媒体文件中的一个起始偏移位置,当客户端请求第45s的媒体数据时,服务器可以迅速找到第45s的开始时刻在媒体文件中所对应的起始偏移位置。
步骤103,服务器根据媒体数据起始偏移位置,读取自定义媒体文件中与请求时间相对应的媒体数据,并将媒体数据提供给客户端。
服务器将自身的内存存储空间划分为多个内存管理单元,并将从磁盘读取的媒体数据以秒为单位分块缓存到各个内存管理单元中,从而在下次进行媒体点播并需要读取所述媒体数据时,服务器可以直接从内存中读取,而不需要再读磁盘,能够提高效率。并且,出于内存存储空间有限的考虑,在内存空间已满的情况下,通过淘汰算法将点播频率较低的媒体数据从内存中删除,从而留出空间用来存储新的媒体数据。从而,在实际应用中,通常将点播频率较高的媒体数据存储在内存管理单元中,而将点播频率较低的媒体文件存储在磁盘中。
下面举例说明淘汰算法的操作,在存储空间为1G的内存中存储有媒体数据A、B、C、D,由于这些媒体数据占满了内存的存储空间,从而比较各个媒体数据的点播频率,并发现媒体数据C的点播频率最低;因此服务器将媒体数据C从内存中删除,从而在内存中留出一定的空间,用来存储新的媒体数据。当内存空间再次占满时,继续采用上述相同的操作,将当前的内存中点播频率最低的媒体文件删除。
接续步骤102中的举例,服务器找到第45s的开始时刻在媒体文件中所对应的起始偏移位置后,即从该起始偏移位置开始,读取第45s所对应的媒体数据提供给客户端;然后,继续按照媒体数据的存储顺序读取第46s到60s的媒体数据提供给客户端。
下面,从客户端的实现上对本发明的媒体文件点播方法进一步详细阐述,如图2所示,图2为本发明中客户端实现的媒体文件的点播方法流程图,主要包括以下步骤:
步骤201,客户端向服务器发送媒体点播请求,并接收来自服务器的索引信息。
步骤202,客户端在媒体播放过程中,根据索引信息,获取进度条的拖放位置所对应的请求时间,并将请求时间携带在播放进度请求中发送给服务器。
客户端根据拖放后的进度条占总进度的比例,以及索引信息中的原始媒体文件总时长,计算得到拖放位置所对应的第一时间。然后,查找索引信息,由于索引信息中存储有每秒钟的媒体数据中是否存在关键帧的信息,从而可以判断第一时间对应的媒体数据中是否存在关键帧,如果存在,则确定第一时间为拖放位置所对应的请求时间;否则,选取与第一时间最近的存在关键帧的第二时间为拖放位置所对应的请求时间。
媒体文件中并不是每个数据包都存在关键帧,而客户端的媒体播放工具在播放媒体数据时,是通过查找关键帧来进行的,如果服务器发给客户端的媒体数据中不存在关键帧,则客户端的播放器无法找到关键帧,可能导致播放失败。因此,本发明中通过上述的操作手段可以保证客户端发送给服务器的请求时间所对应的媒体数据中存在关键帧,从而确保媒体播放工具能够正常播放媒体数据。举例说明如下:
客户端计算得到拖放位置所对应的第一时间为30s,根据每秒钟的媒体数据中是否存在关键帧的信息,客户端判断出第30s的媒体数据中不存在关键帧,而查找相邻的第29s的媒体数据中不存在关键帧,第31s的媒体数据中存在关键帧,从而可以选择第31s为拖放位置所对应的请求时间,并将请求时间携带在播放进度请求中发送给服务器。服务器接收到来自客户端的播放进度请求后,向客户端提供第31s的媒体数据,而并非第30s的媒体数据。
步骤203,客户端接收来自服务器的对应请求时间的媒体数据,并进行媒体播放。
接续步骤202中的举例,服务器从第31s开始,将第31s之后的媒体数据按存储顺序依次提供给客户端;而客户端则从第31s开始,按序进行媒体数据的播放,直到播放结束。
为实现上述本发明的媒体点播方法,本发明还提供了一种媒体点播系统,如图3所示,包括相互连接的客户端10和服务器20。客户端10,用于向服务器20发送媒体点播请求,并接收来自服务器20的索引信息;在媒体播放过程中,根据索引信息,获取进度条的拖放位置所对应的请求时间,并将请求时间携带在播放进度请求中发送给服务器20;还用于接收来自服务器20的对应请求时间的媒体数据,并进行媒体播放。服务器20,用于在接收到来自客户端10的媒体点播请求时,将自定义媒体文件中的索引信息提供给客户端10;还用于在接收到来自客户端10的播放进度请求时,根据播放进度请求中的请求时间,在索引信息中查找与请求时间相对应的媒体数据起始偏移位置;并根据媒体数据起始偏移位置,读取自定义媒体文件中与请求时间相对应的媒体数据提供给客户端10。
其中,客户端10包括:发送模块11、请求时间获取模块12和接收模块13。发送模块11,用于向服务器20发送媒体点播请求和播放进度请求,播放进度请求中携带请求时间。请求时间获取模块12,与发送模块11相连接,用于在媒体播放过程中,获取进度条的拖放位置所对应的请求时间。接收模块13,与发送模块11相连接,用于根据发送的媒体点播请求或播放进度请求,接收来自服务器20的索引信息求或媒体数据。
请求时间获取模块12还包括:第一时间获取子模块121、第一时间判断子模块122和请求时间确定子模块123。第一时间获取子模块121,用于根据进度条占总进度的比例,以及索引信息中的原始媒体文件总时长,获取拖放位置所对应的第一时间。第一时间判断子模块122,与第一时间获取子模块121相连接,用于查找索引信息,判断第一时间对应的媒体数据中是否存在关键帧。请求时间确定子模块123,与第一时间判断子模块122相连接,用于根据判断结果,如果第一时间对应的媒体数据中存在关键帧,则确定第一时间为拖放位置所对应的请求时间;否则,选取与第一时间最近的存在关键帧的第二时间为拖放位置所对应的请求时间。
服务器20包括:自定义媒体文件生成模块21、索引信息提供模块22、起始偏移位置查找模块23和媒体数据读取模块24。自定义媒体文件生成模块21,用于对原始媒体文件进行解析,得到对应的索引信息,并组合原始媒体文件和索引信息,生成自定义媒体文件。索引信息提供模块22,与自定义媒体文件生成模块21相连接,用于在接收到来自客户端10的媒体点播请求时,将自定义媒体文件中的索引信息提供给10客户端,并供服务器20自身进行索引信息的查找。起始偏移位置查找模块23,与索引信息提供模块22相连接,用于在接收到来自客户端10的播放进度请求时,根据播放进度请求中的请求时间,在索引信息中查找与请求时间相对应的媒体数据起始偏移位置。媒体数据读取模块24,与起始偏移位置查找模块23相连接,用于根据媒体数据起始偏移位置,读取自定义媒体文件中与请求时间相对应的媒体数据,并将媒体数据提供给客户端10。
其中,媒体数据读取模块24还包括相互连接的媒体数据缓存子模块241和媒体数据更新子模块242。媒体数据缓存子模块241,用于将服务器20从自身磁盘所读取的媒体数据缓存到内存中。媒体数据更新子模块242,用于在服务器20的内存空间已满的情况下,通过淘汰算法将长期不被点播的媒体数据从内存中删除。
综上所述,由于本发明预先对原始媒体文件进行解析,得到索引信息,从而在媒体文件的播放过程中,无需服务器再对原始媒体文件进行解析,缩短了服务器的响应时间,在使用体验上即为拖动进度条时的延迟时间的缩短。另外,本发明中的媒体文件都是以时间为单位进行逻辑上的切割,使得用户可以更加直观的按照时间请求数据,从而达到较佳的体验效果。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
Claims (17)
1、一种媒体文件的点播方法,其特征在于,包括:
服务器在接收到来自客户端的媒体点播请求时,将自定义媒体文件中的索引信息提供给所述客户端;
服务器在接收到来自所述客户端的播放进度请求时,根据所述播放进度请求中携带的请求时间,在所述索引信息中查找与所述请求时间相对应的媒体数据起始偏移位置;
服务器根据所述媒体数据起始偏移位置,读取所述自定义媒体文件中与所述请求时间相对应的媒体数据,并将所述媒体数据提供给所述客户端。
2、根据权利要求1所述媒体文件的点播方法,其特征在于,所述索引信息包括:原始媒体文件的总时长、原始媒体文件的数据包总数、每个数据包的大小、原始媒体文件的头部大小、平均码率、内存管理单元总数、每秒钟的媒体数据在原始媒体文件中的起始偏移位置、每秒钟的媒体数据中是否存在关键帧、每秒钟所包含的内存管理单元数量、每秒钟所包含的数据包数量。
3、根据权利要求1或2所述媒体文件的点播方法,其特征在于,所述将自定义媒体文件中的索引信息提供给客户端之前,该方法还包括:
服务器对所述原始媒体文件进行解析,得到对应的索引信息;
服务器组合所述原始媒体文件和索引信息,生成所述自定义媒体文件。
4、根据权利要求3所述媒体文件的点播方法,其特征在于,所述服务器组合所述原始媒体文件和索引信息,具体包括:服务器将所述索引信息以二进制的方式写入所述原始媒体文件的尾部或头部。
5、根据权利要求1所述媒体文件的点播方法,其特征在于,所述读取自定义媒体文件中与请求时间相对应的媒体数据,并将媒体数据提供给客户端,进一步包括:
服务器将从自身磁盘所读取的媒体数据缓存到内存中,则所述服务器再次接收到媒体点播请求时,直接从所述内存中读取所述媒体数据,并提供给所述客户端;
在所述内存空间已满的情况下,通过淘汰算法将点播频率较低的媒体数据从所述内存中删除。
6、一种媒体文件的点播方法,其特征在于,包括:
客户端向服务器发送媒体点播请求,并接收来自所述服务器的索引信息;
在媒体播放过程中,客户端根据所述索引信息获取进度条的拖放位置所对应的请求时间,并将所述请求时间携带在播放进度请求中发送给所述服务器;
客户端接收来自所述服务器的对应所述请求时间的媒体数据,并进行媒体播放。
7、根据权利要求6所述媒体文件的点播方法,其特征在于,所述索引信息包括:原始媒体文件的总时长、原始媒体文件的数据包总数、每个数据包的大小、原始媒体文件的头部大小、平均码率、内存管理单元总数、每秒钟的媒体数据在原始媒体文件中的起始偏移位置、每秒钟的媒体数据中是否存在关键帧、每秒钟所包含的内存管理单元数量、每秒钟所包含的数据包数量。
8、根据权利要求6或7所述媒体文件的点播方法,其特征在于,所述获取进度条的拖放位置所对应的请求时间,具体包括:
客户端根据所述进度条占总进度的比例,以及所述索引信息中的原始媒体文件总时长,获取所述拖放位置所对应的第一时间;
客户端查找所述索引信息,判断所述第一时间对应的媒体数据中是否存在关键帧;
如果所述第一时间对应的媒体数据中存在关键帧,则确定所述第一时间为拖放位置所对应的请求时间;否则,选取与所述第一时间最近的存在关键帧的第二时间为拖放位置所对应的请求时间。
9、一种媒体文件的点播系统,其特征在于,包括:
客户端,用于根据来自服务器的索引信息,获取进度条的拖放位置所对应的请求时间,并将所述请求时间携带在播放进度请求中发送给所述服务器;接收来自所述服务器的媒体数据,进行媒体播放;
服务器,用于将自定义媒体文件中的索引信息提供给所述客户端,并根据来自所述客户端的播放进度请求中的请求时间,查找所述索引信息,得到与所述请求时间相对应的媒体数据起始偏移位置;且根据所述媒体数据起始偏移位置,读取所述自定义媒体文件中与所述请求时间相对应的媒体数据提供给所述客户端。
10、根据权利要求9所述媒体文件的点播系统,其特征在于,所述服务器包括:
索引信息提供模块,用于在接收到来自所述客户端的媒体点播请求时,将自定义媒体文件中的索引信息提供给所述客户端,并供所述服务器自身进行索引信息的查找;
起始偏移位置查找模块,用于在接收到来自所述客户端的播放进度请求时,根据所述播放进度请求中的请求时间,查找所述索引信息,得到与所述请求时间相对应的媒体数据起始偏移位置;
媒体数据读取模块,用于根据所述媒体数据起始偏移位置,读取所述自定义媒体文件中与所述请求时间相对应的媒体数据,并将所述媒体数据提供给所述客户端。
11、根据权利要求9或10所述媒体文件的点播系统,其特征在于,所述服务器还包括自定义媒体文件生成模块,用于对所述原始媒体文件进行解析,得到对应的索引信息,并组合所述原始媒体文件和索引信息,生成所述自定义媒体文件。
12、根据权利要求9所述媒体文件的点播系统,其特征在于,所述客户端包括:
发送模块,用于向所述服务器发送媒体点播请求和播放进度请求,所述播放进度请求中携带请求时间;
请求时间获取模块,用于在媒体播放过程中,获取进度条的拖放位置所对应的请求时间;
接收模块,用于接收来自所述服务器的索引信息和媒体数据。
13、一种服务器,其特征在于,包括:
索引信息提供模块,用于在接收到来自客户端的媒体点播请求时,将自定义媒体文件中的索引信息提供给所述客户端,并供所述服务器自身进行索引信息的查找;
起始偏移位置查找模块,用于在接收到来自所述客户端的播放进度请求时,根据所述播放进度请求中的请求时间,查找所述索引信息,得到与所述请求时间相对应的媒体数据起始偏移位置;
媒体数据读取模块,用于根据所述媒体数据起始偏移位置,读取所述自定义媒体文件中与所述请求时间相对应的媒体数据,并将所述媒体数据提供给所述客户端。
14、根据权利要求13所述服务器,其特征在于,所述媒体数据读取模块包括:
媒体数据缓存子模块,用于将所述服务器从自身磁盘所读取的媒体数据缓存到内存中;
媒体数据更新子模块,用于在所述服务器的内存空间已满的情况下,通过淘汰算法将点播频率较低的媒体数据从所述内存中删除。
15、根据权利要求13或14所述服务器,其特征在于,所述服务器还包括自定义媒体文件生成模块,用于对所述原始媒体文件进行解析,得到对应的索引信息,并组合所述原始媒体文件和索引信息,生成所述自定义媒体文件。
16、一种客户端,其特征在于,包括:
发送模块,用于向服务器发送媒体点播请求和播放进度请求,所述播放进度请求中携带请求时间;
请求时间获取模块,用于在媒体播放过程中,获取进度条的拖放位置所对应的请求时间;
接收模块,用于接收来自所述服务器的索引信息和媒体数据。
17、根据权利要求16所述客户端,其特征在于,所述请求时间获取模块包括:
第一时间获取子模块,用于根据所述进度条占总进度的比例,以及所述索引信息中的原始媒体文件总时长,获取所述拖放位置所对应的第一时间;
第一时间判断子模块,用于查找所述索引信息,判断所述第一时间对应的媒体数据中是否存在关键帧;
请求时间确定子模块,用于根据判断结果,确定所述第一时间为拖放位置所对应的请求时间,或者选取与所述第一时间最近的存在关键帧的第二时间为拖放位置所对应的请求时间。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101113849A CN101287107B (zh) | 2008-05-29 | 2008-05-29 | 媒体文件的点播方法、系统和设备 |
PCT/CN2009/071738 WO2009143741A1 (zh) | 2008-05-29 | 2009-05-12 | 媒体文件的点播方法、系统和设备 |
US12/863,151 US20110055881A1 (en) | 2008-05-29 | 2009-05-12 | Media file on-demand method, system and appartus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101113849A CN101287107B (zh) | 2008-05-29 | 2008-05-29 | 媒体文件的点播方法、系统和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101287107A true CN101287107A (zh) | 2008-10-15 |
CN101287107B CN101287107B (zh) | 2010-10-13 |
Family
ID=40059043
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008101113849A Active CN101287107B (zh) | 2008-05-29 | 2008-05-29 | 媒体文件的点播方法、系统和设备 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20110055881A1 (zh) |
CN (1) | CN101287107B (zh) |
WO (1) | WO2009143741A1 (zh) |
Cited By (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009143741A1 (zh) * | 2008-05-29 | 2009-12-03 | 腾讯科技(深圳)有限公司 | 媒体文件的点播方法、系统和设备 |
CN102006500A (zh) * | 2010-10-29 | 2011-04-06 | 蓝汛网络科技(北京)有限公司 | 一种应用于缓存服务器的视频拖拽方法及装置 |
WO2011047499A1 (en) * | 2009-10-21 | 2011-04-28 | Telefonaktiebolaget L M Ericsson (Publ) | Method, apparatus and system for media position control |
WO2011054319A1 (zh) * | 2009-11-09 | 2011-05-12 | 华为技术有限公司 | 一种在httpstreaming系统中实现分层请求内容的方法,装置和系统 |
WO2011110117A2 (zh) * | 2011-04-21 | 2011-09-15 | 华为技术有限公司 | 基于超文本传输协议的多码率定位播放方法、设备及系统 |
CN102196001A (zh) * | 2010-03-15 | 2011-09-21 | 腾讯科技(深圳)有限公司 | 一种影片文件下载装置及方法 |
CN102461119A (zh) * | 2009-06-15 | 2012-05-16 | 捷讯研究有限公司 | 促进客户端控制的无会话适配的方法和装置 |
CN102625140A (zh) * | 2012-03-19 | 2012-08-01 | 烽火通信科技股份有限公司 | 流媒体服务器以帧为粒度实时下载播放的方法 |
CN102833597A (zh) * | 2012-07-04 | 2012-12-19 | 合一网络技术(北京)有限公司 | 一种基于统计的网络视频分发流量控制系统和方法 |
CN103442000A (zh) * | 2013-08-22 | 2013-12-11 | 北京星网锐捷网络技术有限公司 | Web缓存置换方法及装置、http代理服务器 |
CN103747296A (zh) * | 2013-12-31 | 2014-04-23 | 深圳市同洲电子股份有限公司 | 一种视频播放的方法及系统 |
CN104394474A (zh) * | 2014-11-25 | 2015-03-04 | 苏州航天系统工程有限公司 | 流媒体快速定位点播方法 |
CN104394476A (zh) * | 2014-11-28 | 2015-03-04 | 乐视致新电子科技(天津)有限公司 | 一种时移播放方法及媒体播放器 |
CN105302883A (zh) * | 2015-10-13 | 2016-02-03 | 深圳市乐唯科技开发有限公司 | 一种基于时间的媒体文件的管理方法和系统 |
CN106101867A (zh) * | 2016-07-20 | 2016-11-09 | 深圳芯智汇科技有限公司 | 一种提高flv视频跳播速度和定位精确性的方法 |
CN106791957A (zh) * | 2016-12-07 | 2017-05-31 | 北京华夏电通科技有限公司 | 视频直播处理方法及装置 |
CN107483979A (zh) * | 2017-09-12 | 2017-12-15 | 中广热点云科技有限公司 | 一种应用于缓存服务器的视频拖拽方法及装置 |
CN107959862A (zh) * | 2016-10-14 | 2018-04-24 | 上海交通大学 | 基于广播系统的媒体点播模式控制方法 |
CN107979570A (zh) * | 2016-10-25 | 2018-05-01 | 北京优朋普乐科技有限公司 | 网络电台资源数据处理方法和装置 |
CN108306849A (zh) * | 2017-01-13 | 2018-07-20 | 上海交通大学 | 一种基于广播系统的媒体点播服务控制方法 |
CN108924630A (zh) * | 2018-05-29 | 2018-11-30 | 武汉斗鱼网络科技有限公司 | 一种显示缓存进度的方法和播放设备 |
CN110139157A (zh) * | 2019-05-16 | 2019-08-16 | 腾讯科技(深圳)有限公司 | 一种精确定位播放方法、装置、设备及介质 |
WO2020133608A1 (zh) * | 2018-12-28 | 2020-07-02 | 网宿科技股份有限公司 | 一种拖拉视频数据的处理方法及代理服务器 |
WO2020134892A1 (zh) * | 2018-12-29 | 2020-07-02 | 华为技术有限公司 | 一种媒体文件裁剪的方法、电子设备和服务器 |
CN111429871A (zh) * | 2020-03-20 | 2020-07-17 | 腾讯音乐娱乐科技(深圳)有限公司 | 媒体文件获取方法及装置、存储介质 |
US10855736B2 (en) | 2009-09-22 | 2020-12-01 | Qualcomm Incorporated | Enhanced block-request streaming using block partitioning or request controls for improved client-side handling |
CN113068064A (zh) * | 2021-03-18 | 2021-07-02 | 深圳市迅雷网络技术有限公司 | 传输流媒体文件处理方法、装置、计算机设备和存储介质 |
CN114579771A (zh) * | 2022-02-24 | 2022-06-03 | 珠海海奇半导体有限公司 | 一种媒体文件播放方法及播放系统、控制装置、存储介质 |
US11477253B2 (en) | 2006-06-09 | 2022-10-18 | Qualcomm Incorporated | Enhanced block-request streaming system using signaling or block creation |
Families Citing this family (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6307487B1 (en) | 1998-09-23 | 2001-10-23 | Digital Fountain, Inc. | Information additive code generator and decoder for communication systems |
US7068729B2 (en) | 2001-12-21 | 2006-06-27 | Digital Fountain, Inc. | Multi-stage code generator and decoder for communication systems |
US9240810B2 (en) | 2002-06-11 | 2016-01-19 | Digital Fountain, Inc. | Systems and processes for decoding chain reaction codes through inactivation |
EP2355360B1 (en) | 2002-10-05 | 2020-08-05 | QUALCOMM Incorporated | Systematic encoding and decoding of chain reaction codes |
EP2722995B1 (en) | 2003-10-06 | 2023-04-19 | QUALCOMM Incorporated | Soft-Decision Decoding of Multi-Stage Chain Reaction Codes |
WO2005112250A2 (en) | 2004-05-07 | 2005-11-24 | Digital Fountain, Inc. | File download and streaming system |
KR101292851B1 (ko) | 2006-02-13 | 2013-08-02 | 디지털 파운튼, 인크. | 가변적 fec 오버헤드 및 보호 구간을 이용하는 스트리밍및 버퍼링 |
US9270414B2 (en) | 2006-02-21 | 2016-02-23 | Digital Fountain, Inc. | Multiple-field based code generator and decoder for communications systems |
US7971129B2 (en) | 2006-05-10 | 2011-06-28 | Digital Fountain, Inc. | Code generator and decoder for communications systems operating using hybrid codes to allow for multiple efficient users of the communications systems |
US9419749B2 (en) | 2009-08-19 | 2016-08-16 | Qualcomm Incorporated | Methods and apparatus employing FEC codes with permanent inactivation of symbols for encoding and decoding processes |
US9380096B2 (en) | 2006-06-09 | 2016-06-28 | Qualcomm Incorporated | Enhanced block-request streaming system for handling low-latency streaming |
US9178535B2 (en) | 2006-06-09 | 2015-11-03 | Digital Fountain, Inc. | Dynamic stream interleaving and sub-stream based delivery |
US9386064B2 (en) | 2006-06-09 | 2016-07-05 | Qualcomm Incorporated | Enhanced block-request streaming using URL templates and construction rules |
US9209934B2 (en) | 2006-06-09 | 2015-12-08 | Qualcomm Incorporated | Enhanced block-request streaming using cooperative parallel HTTP and forward error correction |
RU2010114256A (ru) | 2007-09-12 | 2011-10-20 | Диджитал Фаунтин, Инк. (Us) | Формирование и передача исходной идентификационной информации для обеспечения надежного обмена данными |
US9281847B2 (en) | 2009-02-27 | 2016-03-08 | Qualcomm Incorporated | Mobile reception of digital video broadcasting—terrestrial services |
US9288010B2 (en) | 2009-08-19 | 2016-03-15 | Qualcomm Incorporated | Universal file delivery methods for providing unequal error protection and bundled file delivery services |
KR101786051B1 (ko) * | 2009-11-13 | 2017-10-16 | 삼성전자 주식회사 | 데이터 제공 방법 및 장치와 데이터 수신 방법 및 장치 |
US9485546B2 (en) | 2010-06-29 | 2016-11-01 | Qualcomm Incorporated | Signaling video samples for trick mode video representations |
US8918533B2 (en) | 2010-07-13 | 2014-12-23 | Qualcomm Incorporated | Video switching for streaming video data |
US9185439B2 (en) | 2010-07-15 | 2015-11-10 | Qualcomm Incorporated | Signaling data for multiplexing video components |
US9596447B2 (en) | 2010-07-21 | 2017-03-14 | Qualcomm Incorporated | Providing frame packing type information for video coding |
US9456015B2 (en) | 2010-08-10 | 2016-09-27 | Qualcomm Incorporated | Representation groups for network streaming of coded multimedia data |
US8958375B2 (en) | 2011-02-11 | 2015-02-17 | Qualcomm Incorporated | Framing for an improved radio link protocol including FEC |
US9270299B2 (en) | 2011-02-11 | 2016-02-23 | Qualcomm Incorporated | Encoding and decoding using elastic codes with flexible source block mapping |
US10078695B2 (en) | 2011-04-11 | 2018-09-18 | Evertz Microsystems Ltd. | Methods and systems for network based video clip generation and management |
US9524378B2 (en) | 2011-05-31 | 2016-12-20 | Qualcomm Incorporated | Apparatus and method of in-application licensing |
US20120311656A1 (en) * | 2011-05-31 | 2012-12-06 | Hohlfeld Matthew W | Apparatus and method of layered licensing |
US9253233B2 (en) | 2011-08-31 | 2016-02-02 | Qualcomm Incorporated | Switch signaling methods providing improved switching between representations for adaptive HTTP streaming |
US9843844B2 (en) | 2011-10-05 | 2017-12-12 | Qualcomm Incorporated | Network streaming of media data |
US9294226B2 (en) | 2012-03-26 | 2016-03-22 | Qualcomm Incorporated | Universal object delivery and template-based file delivery |
US9871842B2 (en) | 2012-12-08 | 2018-01-16 | Evertz Microsystems Ltd. | Methods and systems for network based video clip processing and management |
CN104023278B (zh) * | 2013-03-01 | 2018-08-10 | 联想(北京)有限公司 | 流媒体数据处理方法和电子设备 |
US20150381736A1 (en) * | 2014-06-30 | 2015-12-31 | Chris Timothy Seltzer | Distributed cloud storage |
US9905271B2 (en) | 2015-06-15 | 2018-02-27 | Sling Media Pvt Ltd | Real-time positioning of current-playing-position marker on progress bar and index file generation for real-time content |
US10289281B2 (en) * | 2015-11-30 | 2019-05-14 | International Business Machines Corporation | Progress bar updated based on crowd sourced statistics |
US10200383B2 (en) | 2016-06-29 | 2019-02-05 | Rapid7, Inc. | Neutralizing malicious locators |
CN109491618A (zh) * | 2018-11-20 | 2019-03-19 | 上海科技大学 | 基于混合存储的数据管理系统、方法、终端及介质 |
CN109862423B (zh) * | 2019-01-03 | 2021-06-22 | 珠海亿智电子科技有限公司 | 一种视频seek方法、装置、终端及计算机可读存储介质 |
CN111726659B (zh) * | 2019-03-20 | 2022-06-07 | 阿里巴巴集团控股有限公司 | 一种视频的轮播方法、装置、电子设备及存储介质 |
CN114845152B (zh) * | 2021-02-01 | 2023-06-30 | 腾讯科技(深圳)有限公司 | 播放控件的显示方法、装置、电子设备及存储介质 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5586264A (en) * | 1994-09-08 | 1996-12-17 | Ibm Corporation | Video optimized media streamer with cache management |
US20050203927A1 (en) * | 2000-07-24 | 2005-09-15 | Vivcom, Inc. | Fast metadata generation and delivery |
US7716700B2 (en) * | 2002-11-25 | 2010-05-11 | Time Warner Interactive Video Group Inc. | Technique for delivering entertainment programming content including commercial content therein over a communications network |
US8266659B2 (en) * | 2003-05-16 | 2012-09-11 | Time Warner Cable LLC | Technique for collecting data relating to activity of a user receiving entertainment programs through a communications network |
US7739715B2 (en) * | 2003-06-24 | 2010-06-15 | Microsoft Corporation | Variable play speed control for media streams |
US20050102371A1 (en) * | 2003-11-07 | 2005-05-12 | Emre Aksu | Streaming from a server to a client |
CN1561111A (zh) * | 2004-02-26 | 2005-01-05 | 晶晨半导体(上海)有限公司 | 在数字视频压缩码流中快速索引播放信息的方法 |
US20060090186A1 (en) * | 2004-10-21 | 2006-04-27 | Santangelo Bryan D | Programming content capturing and processing system and method |
US20060174290A1 (en) * | 2004-11-23 | 2006-08-03 | Garwin Richard L | Enhanced program viewing method |
FR2883692A1 (fr) * | 2005-03-25 | 2006-09-29 | Thomson Licensing Sa | Procede d'envoi de commande a un serveur de flux de donnees numeriques et appareil implementant le procede |
US20070073837A1 (en) * | 2005-05-24 | 2007-03-29 | Johnson-Mccormick David B | Online multimedia file distribution system and method |
CN1929595B (zh) * | 2005-09-06 | 2010-05-05 | 中兴通讯股份有限公司 | 一种视频点播过程中定位播放的系统及其实现方法 |
CN100525447C (zh) * | 2005-12-07 | 2009-08-05 | 联合信源数字音视频技术(北京)有限公司 | 支持精确定位的音视频媒体数据组织实现方法 |
CN1801929A (zh) * | 2005-12-08 | 2006-07-12 | 复旦大学 | 一种网络互动电视系统实现时移功能的方法 |
US20070220118A1 (en) * | 2006-03-15 | 2007-09-20 | Loyer Douglas E | Systems, Methods, and Apparatus for Delivering Randomly Accessible Audio and Video Media |
CN101106637A (zh) * | 2006-07-13 | 2008-01-16 | 中兴通讯股份有限公司 | 通过机顶盒实现对外接存储设备的媒体文件播放的方法 |
CN1976440B (zh) * | 2006-12-11 | 2011-03-30 | 中山大学 | 一种在iptv中精确定位播放进度的方法及系统 |
CN101287107B (zh) * | 2008-05-29 | 2010-10-13 | 腾讯科技(深圳)有限公司 | 媒体文件的点播方法、系统和设备 |
-
2008
- 2008-05-29 CN CN2008101113849A patent/CN101287107B/zh active Active
-
2009
- 2009-05-12 US US12/863,151 patent/US20110055881A1/en not_active Abandoned
- 2009-05-12 WO PCT/CN2009/071738 patent/WO2009143741A1/zh active Application Filing
Cited By (50)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11477253B2 (en) | 2006-06-09 | 2022-10-18 | Qualcomm Incorporated | Enhanced block-request streaming system using signaling or block creation |
WO2009143741A1 (zh) * | 2008-05-29 | 2009-12-03 | 腾讯科技(深圳)有限公司 | 媒体文件的点播方法、系统和设备 |
CN102461119A (zh) * | 2009-06-15 | 2012-05-16 | 捷讯研究有限公司 | 促进客户端控制的无会话适配的方法和装置 |
CN102461119B (zh) * | 2009-06-15 | 2015-02-04 | 黑莓有限公司 | 促进客户端控制的无会话适配的方法和装置 |
US11770432B2 (en) | 2009-09-22 | 2023-09-26 | Qualcomm Incorporated | Enhanced block-request streaming system for handling low-latency streaming |
US10855736B2 (en) | 2009-09-22 | 2020-12-01 | Qualcomm Incorporated | Enhanced block-request streaming using block partitioning or request controls for improved client-side handling |
US11743317B2 (en) | 2009-09-22 | 2023-08-29 | Qualcomm Incorporated | Enhanced block-request streaming using block partitioning or request controls for improved client-side handling |
EP2491715A4 (en) * | 2009-10-21 | 2014-06-25 | Ericsson Telefon Ab L M | METHOD, DEVICE AND SYSTEM FOR MEDIA POSITION CONTROL |
US8935320B2 (en) | 2009-10-21 | 2015-01-13 | Telefonaktiebolaget Lm Ericsson (Publ) | Method, apparatus and system for media position control |
EP2491715A1 (en) * | 2009-10-21 | 2012-08-29 | Telefonaktiebolaget L M Ericsson (PUBL) | Method, apparatus and system for media position control |
WO2011047499A1 (en) * | 2009-10-21 | 2011-04-28 | Telefonaktiebolaget L M Ericsson (Publ) | Method, apparatus and system for media position control |
CN102055718B (zh) * | 2009-11-09 | 2014-12-31 | 华为技术有限公司 | 一种在http streaming系统中实现分层请求内容的方法,装置和系统 |
WO2011054319A1 (zh) * | 2009-11-09 | 2011-05-12 | 华为技术有限公司 | 一种在httpstreaming系统中实现分层请求内容的方法,装置和系统 |
CN102196001A (zh) * | 2010-03-15 | 2011-09-21 | 腾讯科技(深圳)有限公司 | 一种影片文件下载装置及方法 |
CN102196001B (zh) * | 2010-03-15 | 2014-03-19 | 腾讯科技(深圳)有限公司 | 一种影片文件下载装置及方法 |
WO2011113331A1 (zh) * | 2010-03-15 | 2011-09-22 | 腾讯科技(深圳)有限公司 | 一种影片文件下载装置及方法 |
CN102006500B (zh) * | 2010-10-29 | 2012-12-26 | 蓝汛网络科技(北京)有限公司 | 一种应用于缓存服务器的视频拖拽方法及装置 |
CN102006500A (zh) * | 2010-10-29 | 2011-04-06 | 蓝汛网络科技(北京)有限公司 | 一种应用于缓存服务器的视频拖拽方法及装置 |
CN102845041A (zh) * | 2011-04-21 | 2012-12-26 | 华为技术有限公司 | 基于超文本传输协议的多码率定位播放方法、设备及系统 |
WO2011110117A3 (zh) * | 2011-04-21 | 2012-03-22 | 华为技术有限公司 | 基于超文本传输协议的多码率定位播放方法、设备及系统 |
CN102845041B (zh) * | 2011-04-21 | 2015-11-25 | 华为技术有限公司 | 基于超文本传输协议的多码率定位播放方法、设备及系统 |
WO2011110117A2 (zh) * | 2011-04-21 | 2011-09-15 | 华为技术有限公司 | 基于超文本传输协议的多码率定位播放方法、设备及系统 |
CN102625140A (zh) * | 2012-03-19 | 2012-08-01 | 烽火通信科技股份有限公司 | 流媒体服务器以帧为粒度实时下载播放的方法 |
CN102833597B (zh) * | 2012-07-04 | 2016-03-30 | 合一网络技术(北京)有限公司 | 一种基于统计的网络视频分发流量控制系统和方法 |
CN102833597A (zh) * | 2012-07-04 | 2012-12-19 | 合一网络技术(北京)有限公司 | 一种基于统计的网络视频分发流量控制系统和方法 |
CN103442000B (zh) * | 2013-08-22 | 2016-08-10 | 北京星网锐捷网络技术有限公司 | Web缓存置换方法及装置、http代理服务器 |
CN103442000A (zh) * | 2013-08-22 | 2013-12-11 | 北京星网锐捷网络技术有限公司 | Web缓存置换方法及装置、http代理服务器 |
CN103747296A (zh) * | 2013-12-31 | 2014-04-23 | 深圳市同洲电子股份有限公司 | 一种视频播放的方法及系统 |
CN104394474B (zh) * | 2014-11-25 | 2017-09-15 | 苏州航天系统工程有限公司 | 流媒体快速定位点播方法 |
CN104394474A (zh) * | 2014-11-25 | 2015-03-04 | 苏州航天系统工程有限公司 | 流媒体快速定位点播方法 |
CN104394476A (zh) * | 2014-11-28 | 2015-03-04 | 乐视致新电子科技(天津)有限公司 | 一种时移播放方法及媒体播放器 |
CN105302883B (zh) * | 2015-10-13 | 2018-12-21 | 深圳市乐唯科技开发有限公司 | 一种基于时间的媒体文件的管理方法和系统 |
CN105302883A (zh) * | 2015-10-13 | 2016-02-03 | 深圳市乐唯科技开发有限公司 | 一种基于时间的媒体文件的管理方法和系统 |
CN106101867B (zh) * | 2016-07-20 | 2019-01-22 | 深圳芯智汇科技有限公司 | 一种提高flv视频跳播速度和定位精确性的方法 |
CN106101867A (zh) * | 2016-07-20 | 2016-11-09 | 深圳芯智汇科技有限公司 | 一种提高flv视频跳播速度和定位精确性的方法 |
CN107959862A (zh) * | 2016-10-14 | 2018-04-24 | 上海交通大学 | 基于广播系统的媒体点播模式控制方法 |
CN107979570A (zh) * | 2016-10-25 | 2018-05-01 | 北京优朋普乐科技有限公司 | 网络电台资源数据处理方法和装置 |
CN106791957A (zh) * | 2016-12-07 | 2017-05-31 | 北京华夏电通科技有限公司 | 视频直播处理方法及装置 |
CN108306849A (zh) * | 2017-01-13 | 2018-07-20 | 上海交通大学 | 一种基于广播系统的媒体点播服务控制方法 |
CN108306849B (zh) * | 2017-01-13 | 2020-12-18 | 上海交通大学 | 一种基于广播系统的媒体点播服务控制方法 |
CN107483979B (zh) * | 2017-09-12 | 2019-12-03 | 中广热点云科技有限公司 | 一种应用于缓存服务器的视频拖拽方法及装置 |
CN107483979A (zh) * | 2017-09-12 | 2017-12-15 | 中广热点云科技有限公司 | 一种应用于缓存服务器的视频拖拽方法及装置 |
CN108924630A (zh) * | 2018-05-29 | 2018-11-30 | 武汉斗鱼网络科技有限公司 | 一种显示缓存进度的方法和播放设备 |
WO2020133608A1 (zh) * | 2018-12-28 | 2020-07-02 | 网宿科技股份有限公司 | 一种拖拉视频数据的处理方法及代理服务器 |
WO2020134892A1 (zh) * | 2018-12-29 | 2020-07-02 | 华为技术有限公司 | 一种媒体文件裁剪的方法、电子设备和服务器 |
CN110139157B (zh) * | 2019-05-16 | 2021-03-16 | 腾讯科技(深圳)有限公司 | 一种精确定位播放方法、装置、设备及介质 |
CN110139157A (zh) * | 2019-05-16 | 2019-08-16 | 腾讯科技(深圳)有限公司 | 一种精确定位播放方法、装置、设备及介质 |
CN111429871A (zh) * | 2020-03-20 | 2020-07-17 | 腾讯音乐娱乐科技(深圳)有限公司 | 媒体文件获取方法及装置、存储介质 |
CN113068064A (zh) * | 2021-03-18 | 2021-07-02 | 深圳市迅雷网络技术有限公司 | 传输流媒体文件处理方法、装置、计算机设备和存储介质 |
CN114579771A (zh) * | 2022-02-24 | 2022-06-03 | 珠海海奇半导体有限公司 | 一种媒体文件播放方法及播放系统、控制装置、存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN101287107B (zh) | 2010-10-13 |
WO2009143741A1 (zh) | 2009-12-03 |
US20110055881A1 (en) | 2011-03-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101287107B (zh) | 媒体文件的点播方法、系统和设备 | |
US20140165119A1 (en) | Offline download method, multimedia file download method and system thereof | |
Hei et al. | IPTV over P2P streaming networks: the mesh-pull approach | |
US6421726B1 (en) | System and method for selection and retrieval of diverse types of video data on a computer network | |
Wu et al. | Exploring the optimal replication strategy in P2P-VoD systems: Characterization and evaluation | |
US8880650B2 (en) | System and method for storing streaming media file | |
KR101629338B1 (ko) | 저스트-인-타임 분산 비디오 캐시 | |
KR101359081B1 (ko) | 성능 인식 p2p 콘텐트 온 디맨드 | |
US7698451B2 (en) | Method and apparatus for instant playback of a movie title | |
CN1897588B (zh) | 一种混合模式的网络文件传输方法及系统 | |
CN103108008B (zh) | 一种下载文件的方法及文件下载系统 | |
US20090007196A1 (en) | Method and apparatus for sharing media files among network nodes with respect to available bandwidths | |
CN106791889B (zh) | 一种视频处理方法及系统、分布式对象存储系统 | |
CN101873355A (zh) | 一种下载文件的方法、装置和系统 | |
CN101146110A (zh) | 一种播放流媒体的方法、系统及装置 | |
US20070140140A1 (en) | System and apparatus for distributing data over a network | |
CN101742238A (zh) | 一种rtsp和p2p相结合的流媒体点播方法及装置 | |
Kao et al. | Aggregate profit-based caching replacement algorithms for streaming media transcoding proxy systems | |
CN100576906C (zh) | 一种网络内容传输控制系统和方法 | |
Wang et al. | PLVER: Joint stable allocation and content replication for edge-assisted live video delivery | |
Das et al. | Popularity-based caching for IPTV services over P2P networks | |
US20020147827A1 (en) | Method, system and computer program product for streaming of data | |
CN109525622A (zh) | 分片资源id的生成方法、资源分享方法,装置及电子设备 | |
CN103428231B (zh) | 离线下载方法和系统 | |
CN101005602A (zh) | 一种向媒体终端提供媒体数据的系统及方法 |
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 |