CN104539984B - 一种视频播放方法、装置及系统 - Google Patents
一种视频播放方法、装置及系统 Download PDFInfo
- Publication number
- CN104539984B CN104539984B CN201410844597.8A CN201410844597A CN104539984B CN 104539984 B CN104539984 B CN 104539984B CN 201410844597 A CN201410844597 A CN 201410844597A CN 104539984 B CN104539984 B CN 104539984B
- Authority
- CN
- China
- Prior art keywords
- data block
- client
- target video
- video
- data
- 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
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/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/262—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
- H04N21/26283—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists for associating distribution time parameters to content, e.g. to generate electronic program guide data
-
- 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/239—Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明实施例公开了一种视频播放方法、装置及系统,视频点播服务器接收并存储视频直播服务器发送的目标视频的文件头信息数据块、将目标视频切分得到的N个数据块以及生成的目标视频的数据块映射表;接收客户端发送的针对目标视频的点播指令;根据点播指令,向发送点播指令的客户端发送目标视频的数据块以及数据块映射表,使得发送点播指令的客户端根据接收到的数据块映射表中包含的用于播放目标视频的每个数据块的位置信息,播放每个数据块对应的视频内容。由于数据块映射表中包含用于播放目标视频的每个数据块的位置信息,因此允许每个数据块的大小不相同,进而使得视频直播切分的数据块可以被视频点播所使用,避免资源的浪费,提高资源利用率。
Description
技术领域
本发明涉及视频播放领域,特别涉及一种视频播放方法、装置及系统。
背景技术
网络视频的播放方式分为直播和点播两种播放方式。视频直播是指随着事件的发生、发展进程,同步制作和播出视频,视频的制作和播出同时发生;而视频点播是指根据用户的需求播放已制作完成的视频,视频的制作和播出非同时发生。
目前,视频点播服务器将视频切分为大小相同的若干数据块;而视频直播服务器将视频按照固定的时间间隔进行切分,但是由于每一固定时间间隔中的视频的码率不相同,导致切分的数据块大小不相同;即使视频直播服务器按照视频点播服务器切分视频的方式对视频切分,也不能保证最后一次切分的数据块大小与之前切分的数据块大小相同,并且直播的视频数据在分发时,尚无法知道文件的大小,因此也无法形成文件头信息,而直播的视频在切块完成后,需要在文件头部增加文件头信息才能形成一个完整的视频文件,但是不能保证文件头信息对应的数据块与切分的数据块大小相同。
由于视频直播切分的数据块和视频点播切分的数据块大小不相同,视频直播切分的数据块在视频直播完成后被丢弃,这就造成视频直播切分的数据块不能被视频点播所使用,进而造成了视频直播切分的数据块资源的浪费,资源利用率不高。
发明内容
本发明实施例的目的在于提供一种视频播放方法、装置及系统,以使视频直播切分的数据块能被视频点播所使用,避免资源的浪费,提高资源利用率。
为达到上述目的,本发明实施例公开了一种视频播放方法,应用于包含视频直播服务器和视频点播服务器的视频播放系统,包括:
视频直播服务器获得直播的目标视频的视频数据,将所述视频数据切分为N个数据块;
在所述目标视频直播完成之后,生成所述目标视频的文件头信息数据块和数据块映射表,所述数据块映射表中包含用于播放目标视频的每个数据块的位置信息;
将所述文件头信息数据块、所述N个数据块以及所述数据块映射表发送给视频点播服务器;
视频点播服务器接收并存储所述视频直播服务器发送的所述文件头信息数据块、所述N个数据块以及所述数据块映射表;
接收第一客户端发送的针对所述目标视频的点播指令;
根据所述点播指令,向所述第一客户端发送所述目标视频的数据块以及所述数据块映射表,使得所述第一客户端根据接收到的所述数据块映射表中包含的用于播放目标视频的每个数据块的位置信息,播放每个数据块对应的视频内容。
较佳的,所述将所述N个数据块发送给视频点播服务器,包括:
所述视频直播服务器每切分完成一个数据块,即时将切分的数据块发送给视频点播服务器;或
所述N个数据块切分完成之后,将所述N个数据块同时发送给视频点播服务器。
较佳的,所述视频点播服务器预先存储客户端向所述视频点播服务器上报的自身客户端存储的数据块信息;
所述向所述第一客户端发送所述目标视频的数据块,包括:
根据所述视频点播服务器预先存储客户端向所述视频点播服务器上报的自身客户端存储的数据块信息,判断除所述第一客户端的其他客户端是否有所述第一客户端自身没有存储的所述目标视频的全部数据块;
如果是,指示除所述第一客户端之外的其他客户端向所述第一客户端发送:所述第一客户端自身没有存储的所述目标视频的全部数据块;
如果否,判断除所述第一客户端的其他客户端是否存储有所述第一客户端自身没有存储的所述目标视频的部分数据块;
在除所述第一客户端的其他客户端存储有所述第一客户端自身没有存储的所述目标视频的部分数据块的情况下,向所述第一客户端发送:所述第一客户端自身没有存储的、且除所述第一客户端之外的其他客户端没有存储的数据块,并指示除所述第一客户端之外的其他客户端向所述第一客户端发送:所述第一客户端自身没有存储的、且除所述第一客户端的其他客户端存储的所述目标视频的数据块;
在除所述第一客户端的其他客户端没有存储所述第一客户端自身没有存储的所述目标视频的部分数据块的情况下,向所述第一客户端发送所述目标视频的全部数据块。
为达到上述目的,本发明实施例公开了一种视频播放方法,应用于第一客户端,包括:
向视频点播服务器发送针对目标视频的点播指令;
接收所述视频点播服务器发送的所述目标视频的数据块以及数据块映射表,所述数据块映射表是由视频直播服务器在所述目标视频直播完成后,生成并发送给所述视频点播服务器的,所述数据块映射表中包含用于播放目标视频的每个数据块的位置信息;
根据接收到的所述数据块映射表中包含的用于播放目标视频的每个数据块的位置信息,播放每个数据块对应的视频内容。
较佳的,客户端预先向所述视频点播服务器上报自身客户端存储的数据块信息;所述方法还包括:
接收第二客户端发送的所述第一客户端自身没有存储的所述目标视频的数据块,其中,所述第二客户端为:除所述第一客户端之外的、所述视频点播服务器根据预先存储的客户端自身存储的数据块信息,指示向所述第一客户端发送数据块的客户端。
为达到上述目的,本发明实施例公开了一种视频播放方法,应用于视频点播服务器,包括:
接收并存储视频直播服务器发送的目标视频的文件头信息数据块、将目标视频切分得到的N个数据块以及生成的目标视频的数据块映射表,所述数据块映射表中包含用于播放目标视频的每个数据块的位置信息;
接收客户端发送的针对所述目标视频的点播指令;
根据所述点播指令,向发送所述点播指令的客户端发送所述目标视频的数据块以及所述数据块映射表,使得发送所述点播指令的客户端根据接收到的所述数据块映射表中包含的用于播放目标视频的每个数据块的位置信息,播放每个数据块对应的视频内容。
较佳的,所述视频点播服务器预先存储客户端向所述视频点播服务器上报的自身客户端存储的数据块信息;所述向发送所述点播指令的客户端发送所述目标视频的数据块,包括:
根据所述视频点播服务器预先存储客户端向所述视频点播服务器上报的自身客户端存储的数据块信息,判断除发送所述点播指令的客户端的其他客户端是否有发送所述点播指令的客户端自身没有存储的所述目标视频的全部数据块;
如果是,指示除发送所述点播指令的客户端之外的其他客户端向发送所述点播指令的客户端发送:发送所述点播指令的客户端自身没有存储的所述目标视频的全部数据块;
如果否,判断除发送所述点播指令的客户端的其他客户端是否存储有发送所述点播指令的客户端自身没有存储的所述目标视频的部分数据块;
在除发送所述点播指令的客户端的其他客户端存储有发送所述点播指令的客户端自身没有存储的所述目标视频的部分数据块的情况下,向发送所述点播指令的客户端发送:发送所述点播指令的客户端自身没有存储的、且除发送所述点播指令的客户端之外的其他客户端没有存储的数据块,并指示除发送所述点播指令的客户端之外的其他客户端向发送所述点播指令的客户端发送:发送所述点播指令的客户端自身没有存储的、且除发送所述点播指令的客户端的其他客户端含有的所述目标视频的部分数据块;
在除发送所述点播指令的客户端的其他客户端没有存储发送所述点播指令的客户端自身没有存储的所述目标视频的部分数据块的情况下,向发送所述点播指令的客户端发送所述目标视频的全部数据块。
为达到上述目的,本发明实施例公开了一种视频播放系统,包括:视频直播服务器和视频点播服务器,其中,
所述视频直播服务器,用于获得直播的目标视频的视频数据,将所述视频数据切分为N个数据块;在所述目标视频直播完成之后,生成所述目标视频的文件头信息数据块和数据块映射表,所述数据块映射表中包含用于播放目标视频的每个数据块的位置信息;将所述文件头信息数据块、所述N个数据块以及所述数据块映射表发送给所述视频点播服务器;
所述视频点播服务器,用于接收并存储所述视频直播服务器发送的所述文件头信息数据块、所述N个数据块以及所述数据块映射表;接收第一客户端发送的针对所述目标视频的点播指令;根据所述点播指令,向所述第一客户端发送所述目标视频的数据块以及所述数据块映射表,使得所述第一客户端根据接收到的所述数据块映射表中包含的用于播放目标视频的每个数据块的位置信息,播放每个数据块对应的视频内容。
较佳的,所述视频直播服务器包括:直播视频数据获得单元、映射表生成单元、第一数据发送单元,其中,
所述直播视频数据获得单元,用于获得直播的目标视频的视频数据,将所述视频数据切分为N个数据块;
所述映射表生成单元,用于在所述目标视频直播完成之后,生成所述目标视频的文件头信息数据块和数据块映射表,所述数据块映射表中包含用于播放目标视频的每个数据块的位置信息;
所述第一数据发送单元,用于将所述文件头信息数据块、所述N个数据块以及所述数据块映射表发送给所述视频点播服务器;
所述视频点播服务器包括:第一数据接收单元、点播指令接收单元、第二数据发送单元,其中,
所述第一数据接收单元,用于接收并存储所述视频直播服务器发送的所述文件头信息数据块、所述N个数据块以及所述数据块映射表;
所述点播指令接收单元,用于接收第一客户端发送的针对所述目标视频的点播指令;
所述第二数据发送单元,用于根据所述点播指令接收单元接收到的点播指令,向所述第一客户端发送所述目标视频的数据块以及所述数据块映射表,使得所述第一客户端根据接收到的所述数据块映射表中包含的用于播放目标视频的每个数据块的位置信息,播放每个数据块对应的视频内容。
较佳的,所述第一数据发送单元,包括:第一数据发送子单元和第二数据发送子单元,其中,
所述第一数据发送子单元,用于所述视频直播服务器每切分完成一个数据块,即时将切分的数据块发送给所述视频点播服务器;或
所述N个数据块切分完成之后,将所述N个数据块同时发送给所述视频点播服务器;
所述第二数据发送子单元,用于将所述文件头信息数据块以及所述数据块映射表发送给所述视频点播服务器。
较佳的,所述视频点播服务器预先存储客户端向所述视频点播服务器上报的自身客户端存储的数据块信息;所述第二数据发送单元,包括:第三数据发送子单元、第一判断子单元、指示子单元、第二判断子单元、第四数据发送子单元和第五数据发送子单元,其中,
所述第三数据发送子单元,用于向所述第一客户端发送所述目标视频的数据块映射表;
所述第一判断子单元,用于根据所述视频点播服务器预先存储客户端向所述视频点播服务器上报的自身客户端存储的数据块信息,判断除所述第一客户端的其他客户端是否有所述第一客户端自身没有存储的所述目标视频的全部数据块;
所述指示子单元,用于在所述第一判断子单元判断结果为是的情况下,指示除所述第一客户端之外的其他客户端向所述第一客户端发送:所述第一客户端自身没有存储的所述目标视频的全部数据块;
所述第二判断子单元,用于在所述第一判断子单元判断结果为否的情况下,判断除所述第一客户端的其他客户端是否存储有所述第一客户端自身没有存储的所述目标视频的部分数据块;
所述第四数据发送子单元,用于在所述第二判断子单元判断结果为是的情况下,向所述第一客户端发送:所述第一客户端自身没有存储的、且除所述第一客户端之外的其他客户端没有存储的数据块,并指示除所述第一客户端之外的其他客户端向所述第一客户端发送:所述第一客户端自身没有存储的、且除所述第一客户端的其他客户端存储的所述目标视频的数据块;
所述第五数据发送子单元,用于在所述第二判断子单元判断结果为否的情况下,向所述第一客户端发送所述目标视频的全部数据块。
为达到上述目的,本发明实施例公开了一种视频播放装置,应用于第一客户端,包括:点播指令发送单元、第二数据接收单元和视频播放单元,其中,
所述点播指令发送单元,用于向视频点播服务器发送针对目标视频的点播指令;
所述第二数据接收单元,用于接收所述视频点播服务器发送的所述目标视频的数据块以及数据块映射表,所述数据块映射表是由视频直播服务器在所述目标视频直播完成后,生成并发送给所述视频点播服务器的,所述数据块映射表中包含用于播放目标视频的每个数据块的位置信息;
所述视频播放单元,用于根据所述第二数据接收单元接收到的所述数据块映射表中包含的用于播放目标视频的每个数据块的位置信息,播放每个数据块对应的视频内容。
较佳的,客户端预先向所述视频点播服务器上报自身客户端存储的数据块信息;所述第二数据接收单元,还用于:
接收第二客户端发送的所述第一客户端自身没有存储的所述目标视频的数据块,其中,所述第二客户端为:除所述第一客户端之外的、所述视频点播服务器根据预先存储的客户端自身存储的数据块信息,指示向所述第一客户端发送数据块的客户端。
为达到上述目的,本发明实施例公开了一种视频播放装置,应用于视频点播服务器,包括:第一数据接收单元、点播指令接收单元、第二数据发送单元,其中,
所述第一数据接收单元,用于接收并存储视频直播服务器发送的目标视频的文件头信息数据块、将目标视频切分得到的N个数据块以及生成的目标视频的数据块映射表,所述数据块映射表中包含用于播放目标视频的每个数据块的位置信息;
所述点播指令接收单元,用于接收客户端发送的针对所述目标视频的点播指令;
所述第二数据发送单元,用于根据所述点播指令接收单元接收到的点播指令,向发送所述点播指令的客户端发送所述目标视频的数据块以及所述数据块映射表,使得发送所述点播指令的客户端根据接收到的所述数据块映射表中包含的用于播放目标视频的每个数据块的位置信息,播放每个数据块对应的视频内容。
较佳的,所述视频点播服务器预先存储客户端向所述视频点播服务器上报的自身客户端存储的数据块信息;所述第二数据发送单元,包括:第三数据发送子单元、第一判断子单元、指示子单元、第二判断子单元、第四数据发送子单元和第五数据发送子单元,其中,
所述第三数据发送子单元,用于向发送所述点播指令的客户端发送所述目标视频的数据块映射表;
所述第一判断子单元,用于根据所述视频点播服务器预先存储客户端向所述视频点播服务器上报的自身客户端存储的数据块信息,判断除发送所述点播指令的客户端的其他客户端是否有发送所述点播指令的客户端自身没有存储的所述目标视频的全部数据块;
所述指示子单元,用于在所述第一判断子单元判断结果为是的情况下,指示除发送所述点播指令的客户端之外的其他客户端向发送所述点播指令的客户端发送:发送所述点播指令的客户端自身没有存储的所述目标视频的全部数据块;
所述第二判断子单元,用于在所述第一判断子单元判断结果为否的情况下,判断除发送所述点播指令的客户端的其他客户端是否存储有发送所述点播指令的客户端自身没有存储的所述目标视频的部分数据块;
所述第四数据发送子单元,用于在所述第二判断子单元判断结果为是的情况下,向发送所述点播指令的客户端发送:发送所述点播指令的客户端自身没有存储的、且除发送所述点播指令的客户端之外的其他客户端没有存储的数据块,并指示除发送所述点播指令的客户端之外的其他客户端向发送所述点播指令的客户端发送:发送所述点播指令的客户端自身没有存储的、且除发送所述点播指令的客户端的其他客户端存储的所述目标视频的数据块;
所述第五数据发送子单元,用于在所述第二判断子单元判断结果为否的情况下,向发送所述点播指令的客户端发送所述目标视频的全部数据块。
由上述的技术方案可见,本发明实施例提供了一种视频播放方法、装置及系统,视频直播服务器获得直播的目标视频的视频数据,将所述视频数据切分为N个数据块;在所述目标视频直播完成之后,生成所述目标视频的文件头信息数据块和数据块映射表,所述数据块映射表中包含用于播放目标视频的每个数据块的位置信息;将所述文件头信息数据块、所述N个数据块以及所述数据块映射表发送给视频点播服务器;视频点播服务器接收并存储所述视频直播服务器发送的所述文件头信息数据块、所述N个数据块以及所述数据块映射表;接收第一客户端发送的针对所述目标视频的点播指令;根据所述点播指令,向所述第一客户端发送所述目标视频的数据块以及所述数据块映射表,使得所述第一客户端根据接收到的所述数据块映射表中包含的用于播放目标视频的每个数据块的位置信息,播放每个数据块对应的视频内容。由于数据块映射表中包含用于播放目标视频的每个数据块的位置信息,因此允许每个数据块的大小不相同,进而使得视频直播切分的数据块可以被视频点播所使用,避免资源的浪费,提高资源利用率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的视频播放方法的第一种流程示意图;
图2为本发明实施例提供的视频播放方法的第二种流程示意图;
图3为本发明实施例提供的应用于第一客户端的视频播放方法的第一种流程示意图;
图4为本发明实施例提供的应用于第一客户端的视频播放方法的第二种流程示意图;
图5为本发明实施例提供的应用于视频点播服务器的视频播放方法的第一种流程示意图;
图6为本发明实施例提供的应用于视频点播服务器的视频播放方法的第二种流程示意图;
图7为本发明实施例提供的视频播放系统的第一种结构示意图;
图8为本发明实施例提供的视频播放系统的第二种结构示意图;
图9为本发明实施例提供的应用于第一客户端的视频播放装置的结构示意图;
图10为本发明实施例提供的应用于视频点播服务器的视频播放装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面通过具体实施例,对本发明进行详细说明。
图1为本发明实施例提供的视频播放方法的第一种流程示意图;该方法应用于包含视频直播服务器和视频点播服务器的视频播放系统,方法可以包括:
S101:视频直播服务器获得直播的目标视频的视频数据,将所述视频数据切分为N个数据块;
示例性的,直播的目标视频可以是网站自行举办的专题性节目,也可以是电视正在播放的视频节目;对于第一种节目,网站会在视频现场有专门的摄像人员采集视频,将视频信号发送回网站的视频直播服务器;对于第二种节目,网站一般会直接从机顶盒输出的AV信号采集视频,将采集的视频发送给视频直播服务器。
假设视频直播服务器获得直播的视频A的视频数据,将视频A每30秒进行一次切分,得到切分的数据块。
S102:在所述目标视频直播完成之后,生成所述目标视频的文件头信息数据块和数据块映射表;
其中,所述数据块映射表中包含用于播放目标视频的每个数据块的位置信息;
在实际应用中,每个数据块的位置信息可以为每个数据块相对于文件头信息数据块的偏移位置。数据块映射表中保存的是每个数据块的标识及每个数据相对于文件头信息数据块的偏移位置。
示例性的,在视频A直播完成之后,数据块切分完成,此时生成视频A的文件头信息数据块和数据块映射表,其中,文件头信息数据块中包含视频A的文件大小、播放时长、数据块的个数等信息。
假设步骤S101将视频A切分为5个数据块,其中,第一数据块相对于文件头信息数据块的偏移位置为000C00H,即文件头信息数据块大小为3K;第二数据块相对于文件头信息数据块的偏移位置为200C00H,第一数据块大小为2M;第三数据块相对于文件头信息数据块的偏移位置为300C00H,第二数据块大小为1M;第四数据块相对于文件头信息数据块的偏移位置为600C00H,第三数据块大小为3M;第五数据块相对于文件头信息数据块的偏移位置为700C00H,第四数据块大小为1M;假设文件头信息数据块中记录视频A大小为10485763K,即10M零3K,则第五数据块大小为3M。数据映射表如表1所示:
表1
S103:将所述文件头信息数据块、所述N个数据块以及所述数据块映射表发送给视频点播服务器;
在实际应用中,视频点播服务器可以每切分完成一个数据块,即时将切分的数据块发送给视频点播服务器,文件头信息数据块和数据块映射表生成后,将文件头信息数据块和数据块映射表发送给视频点播服务器,也可以在数据块切分完成之后,将切分的数据块、文件头信息数据块以及数据块映射表同时发送给视频点播服务器。
S104:视频点播服务器接收并存储所述视频直播服务器发送的所述文件头信息数据块、所述N个数据块以及所述数据块映射表;
视频点播服务器接收并存储视频直播服务器发送的视频A的文件头信息数据块、切分的5个数据块以及数据块映射表。
S105:接收第一客户端发送的针对所述目标视频的点播指令;
S106:根据所述点播指令,向所述第一客户端发送所述目标视频的数据块以及所述数据块映射表。
在第一客户端向视频点播服务器发送观看视频A的点播指令的情况下,视频点播服务器接收到第一客户端发送的观看视频A的点播指令,将视频A的数据块以及数据块映射表发送给第一客户端,第一客户端可以根据数据块映射表中记录的每个数据块相对于文件头信息数据块的偏移位置,按顺序播放每个数据块对应的视频内容。
在实际应用中,存在用户通过第一客户端观看视频直播服务器播放的视频的情况,例如,某视频自10:00开始进行直播,假设视频时长为1小时,用户从10:30开始观看直播的视频,此时,视频直播服务器就会将10:30之后切分的数据块分发给第一客户端,第一客户端可以将接收到的数据块存储在本地,并将存储在本地的数据块信息上报给视频点播服务器,当直播视频播放完成之后,第一客户端点播视频时,视频点播服务器根据第一客户端上报的客户端存储的数据块信息,将数据块映射表以及第一客户端自身没有存储的视频的数据块发送给第一客户端,即将10:00至10:30的视频的数据块发送给第一客户端,无需将10:00至11:00的视频的所有数据块发送给第一客户端,节省了视频点播服务器发送的数据块的流量。
应用本发明图1所示实施例,由于数据块映射表中包含用于播放目标视频的每个数据块的位置信息,因此允许每个数据块的大小不相同,进而使得视频直播切分的数据块可以被视频点播所使用,避免资源的浪费,提高资源利用率。
图2为本发明实施例提供的视频播放方法的第二种流程示意图,视频点播服务器预先存储客户端向所述视频点播服务器上报的自身客户端存储的数据块信息;本发明图2所示实施例在图1所示实施例的基础上,S106可以包括:
S1061:根据所述点播指令,向所述第一客户端发送所述目标视频的数据块映射表;
S1062:根据所述视频点播服务器预先存储客户端向所述视频点播服务器上报的自身客户端存储的数据块信息,判断除所述第一客户端的其他客户端是否有所述第一客户端自身没有存储的所述目标视频的全部数据块,如果是,执行S1063,如果否,执行S1064;
S1063:指示除所述第一客户端之外的其他客户端向所述第一客户端发送:所述第一客户端自身没有存储的所述目标视频的全部数据块;
S1064:判断除所述第一客户端的其他客户端是否存储有所述第一客户端自身没有存储的所述目标视频的部分数据块,如果否,执行S1065,如果是,执行S1066;
S1065:向所述第一客户端发送所述目标视频的全部数据块;
S1066:向所述第一客户端发送:所述第一客户端自身没有存储的、且除所述第一客户端之外的其他客户端没有存储的数据块,并指示除所述第一客户端之外的其他客户端向所述第一客户端发送:所述第一客户端自身没有存储的、且除所述第一客户端的其他客户端存储的所述目标视频的数据块。
在实际应用中,存在多用户通过客户端观看视频直播服务器播放的视频的情况,例如,各个用户在观看直播的视频时,从观看的时刻开始,将视频直播服务器分发给客户端的数据块保存在各自本地的客户端中,并将存储在本地的数据块信息上报给视频点播服务器,当直播视频播放完成之后,第一客户端点播视频时,视频点播服务器根据第一客户端上报的客户端存储的数据块信息,以及其他客户端上报的其他客户端自身存储的数据块信息,判断除所述第一客户端的其他客户端是否有所述第一客户端自身没有存储的所述目标视频的全部数据块,如果是,则指示除所述第一客户端之外的其他客户端向所述第一客户端发送:所述第一客户端自身没有存储的所述目标视频的全部数据块,如果否,则判断除所述第一客户端的其他客户端是否存储有所述第一客户端自身没有存储的所述目标视频的部分数据块,如果是,则向所述第一客户端发送:所述第一客户端自身没有存储的、且除所述第一客户端之外的其他客户端没有存储的数据块,并指示除所述第一客户端之外的其他客户端向所述第一客户端发送:所述第一客户端自身没有存储的、且除所述第一客户端的其他客户端存储的所述目标视频的数据块,如果否,则向所述第一客户端发送:所述第一客户端自身没有存储的、且除所述第一客户端之外的其他客户端没有存储的数据块,并指示除所述第一客户端之外的其他客户端向所述第一客户端发送:所述第一客户端自身没有存储的、且除所述第一客户端的其他客户端存储的所述目标视频的数据块。
应用本发明图2所示实施例,视频点播服务器预先存储客户端向所述视频点播服务器上报的自身客户端存储的数据块信息,在其他客户端有第一客户端自身没有存储的所述目标视频的全部数据块或部分数据块的情况下,由其他客户端向第一客户端发送全部数据块或部分数据块,视频点播服务器向第一客户端不发送数据块或只发送部分数据块,节省了视频点播服务器发送的数据块的流量。同时,由于网络中存在很多观看直播视频的客户端,第一客户端获得数据块的来源较多,进而使得第一客户端能快速的获得视频的数据块,在点播视频时,能流畅、清晰的播放每个数据块对应的视频内容。
图3为本发明实施例提供的应用于第一客户端的视频播放方法的第一种流程示意图,可以包括:
S201:向视频点播服务器发送针对目标视频的点播指令;
S202:接收所述视频点播服务器发送的所述目标视频的数据块以及数据块映射表;
其中,所述数据块映射表是由视频直播服务器在所述目标视频直播完成后,生成并发送给所述视频点播服务器的,所述数据块映射表中包含用于播放目标视频的每个数据块的位置信息;
S203:根据接收到的所述数据块映射表中包含的用于播放目标视频的每个数据块的位置信息,播放每个数据块对应的视频内容。
示例性的,视频点播服务器存储有视频A的数据块以及数据块映射表,其中,视频A的数据块映射表是视频直播服务器在直播视频A完成后,生成并发送给视频点播服务器的。
在实际应用中,每个数据块的位置信息可以为每个数据块相对于文件头信息数据块的偏移位置。
例如视频直播服务器将视频A切分为5个数据块,其中,第一数据块相对于文件头信息数据块的偏移位置为0C00H,即文件头信息数据块大小为3K;第二数据块相对于文件头信息数据块的偏移位置为200C00H,第一数据块大小为2M;第三数据块相对于文件头信息数据块的偏移位置为300C00H,第二数据块大小为1M;第四数据块相对于文件头信息数据块的偏移位置为600C00H,第三数据块大小为3M;第五数据块相对于文件头信息数据块的偏移位置为700C00H,第四数据块大小为1M;假设文件头信息数据块中记录视频A大小为10485763K,即10M零3K,则第五数据块大小为3M。
当客户端向视频点播服务器发送观看视频A的点播指令之后,可以接收视频点播服务器发送的视频A的数据块以及数据块映射表;根据数据块映射表中记录的每个数据块相对于文件头信息数据块的偏移位置,按顺序播放每个数据块对应的视频内容。
应用本发明图3所示实施例,由于数据块映射表中包含用于播放目标视频的每个数据块的位置信息,因此允许每个数据块的大小不相同,进而使得视频直播切分的数据块可以被视频点播所使用,避免资源的浪费,提高资源利用率。
图4为本发明实施例提供的应用于第一客户端的视频播放方法的第二种流程示意图,本发明图4所示实施例在图3所示实施例的基础上,增加S204:接收第二客户端发送的所述第一客户端自身没有存储的所述目标视频的数据块。
其中,所述第二客户端为:除所述第一客户端之外的、所述视频点播服务器根据预先存储的客户端自身存储的数据块信息,指示向所述第一客户端发送数据块的客户端。
在实际应用中,存在多用户通过客户端观看视频直播服务器播放的视频的情况,例如,各个用户在观看直播的视频时,从观看的时刻开始,将视频直播服务器分发给客户端的数据块保存在各自本地的客户端中,并将存储在本地的数据块信息上报给视频点播服务器,当直播视频播放完成之后,第一客户端点播视频时,视频点播服务器根据第一客户端上报的客户端存储的数据块信息,以及其他客户端上报的其他客户端自身存储的数据块信息,指示其他客户端将第一客户端自身没有存储的视频的数据块发送给第一客户端,第一客户端可以从其他客户端接收数据块。
应用本发明图4所示实施例,由于网络中存在很多观看直播视频的客户端,第一客户端获得数据块的来源较多,进而使得第一客户端能快速的获得视频的数据块,在点播视频时,能流畅、清晰的播放每个数据块对应的视频内容。
图5为本发明实施例提供的应用于视频点播服务器的视频播放方法的第一种流程示意图,可以包括:
S301:接收并存储视频直播服务器发送的目标视频的文件头信息数据块、将目标视频切分得到的N个数据块以及生成的目标视频的数据块映射表,所述数据块映射表中包含用于播放目标视频的每个数据块的位置信息;
S302:接收客户端发送的针对所述目标视频的点播指令;
S303:根据所述点播指令,向发送所述点播指令的客户端发送所述目标视频的数据块以及所述数据块映射表,使得发送所述点播指令的客户端根据接收到的所述数据块映射表中包含的用于播放目标视频的每个数据块的位置信息,播放每个数据块对应的视频内容。
示例性的,视频点播服务器接收并存储视频直播服务器发送的视频A的文件头信息数据块、将视频A切分得到的N个数据块以及生成的视频A的数据块映射表。
在实际应用中,每个数据块的位置信息可以为每个数据块相对于文件头信息数据块的偏移位置。数据块映射表中保存的是每个数据块的标识及每个数据相对于文件头信息数据块的偏移位置。
例如视频直播服务器将视频A切分为5个数据块,其中,第一数据块相对于文件头信息数据块的偏移位置为0D00H,即文件头信息数据块大小为3K;第二数据块相对于文件头信息数据块的偏移位置为200D00H,第一数据块大小为2M;第三数据块相对于文件头信息数据块的偏移位置为300D00H,第二数据块大小为1M;第四数据块相对于文件头信息数据块的偏移位置为600D00H,第三数据块大小为3M;第五数据块相对于文件头信息数据块的偏移位置为700D00H,第四数据块大小为1M;假设文件头信息数据块中记录视频A大小为10485763K,即10M零3K,则第五数据块大小为3M。
在客户端向视频点播服务器发送观看视频A的点播指令的情况下,视频点播服务器接收到客户端发送的观看视频A的点播指令,将视频A的数据块以及数据块映射表发送给客户端,客户端可以根据数据块映射表中记录的每个数据块相对于文件头信息数据块的偏移位置,按顺序播放每个数据块对应的视频内容。
在实际应用中,存在用户通过客户端观看视频直播服务器播放的视频的情况,例如,某视频自10:00开始进行直播,假设视频时长为1小时,用户从10:30开始观看直播的视频,此时,视频直播服务器就会将10:30之后切分的数据块分发给客户端,客户端可以将接收到的数据块存储在本地,并将存储在本地的数据块信息上报给视频点播服务器,当直播视频播放完成之后,客户端点播视频时,视频点播服务器根据客户端上报的客户端存储的数据块信息,将数据块映射表以及客户端自身没有存储的视频的数据块发送给客户端,即将10:00至10:30的视频的数据块发送给客户端,无需将10:00至11:00的视频的所有数据块发送给客户端,节省了视频点播服务器发送的数据块的流量。
应用本发明图5所示实施例,由于数据块映射表中包含用于播放目标视频的每个数据块的位置信息,因此允许每个数据块的大小不相同,进而使得视频直播切分的数据块可以被视频点播所使用,避免资源的浪费,提高资源利用率。
图6为本发明实施例提供的应用于视频点播服务器的视频播放方法的第二种流程示意图,视频点播服务器预先存储客户端向所述视频点播服务器上报的自身客户端存储的数据块信息;本发明图6所示实施例在图5所示实施例的基础上,S303可以包括:
S3031:根据所述点播指令,向发送所述点播指令的客户端发送所述目标视频的数据块映射表;
S3032:根据所述视频点播服务器预先存储客户端向所述视频点播服务器上报的自身客户端存储的数据块信息,判断除发送所述点播指令的客户端的其他客户端是否有发送所述点播指令的客户端自身没有存储的所述目标视频的全部数据块,如果是,执行S3033,如果否,执行S3034;
S3033:指示除发送所述点播指令的客户端之外的其他客户端向发送所述点播指令的客户端发送:发送所述点播指令的客户端自身没有存储的所述目标视频的全部数据块;
S3034:判断除发送所述点播指令的客户端的其他客户端是否存储有发送所述点播指令的客户端自身没有存储的所述目标视频的部分数据块;如果否,执行S3035,如果是,执行S3036;
S3035:向发送所述点播指令的客户端发送所述目标视频的全部数据块;
S3036:向发送所述点播指令的客户端发送:发送所述点播指令的客户端自身没有存储的、且除发送所述点播指令的客户端之外的其他客户端没有存储的数据块,并指示除发送所述点播指令的客户端之外的其他客户端向发送所述点播指令的客户端发送:发送所述点播指令的客户端自身没有存储的、且除发送所述点播指令的客户端的其他客户端含有的所述目标视频的部分数据块。
在实际应用中,存在多用户通过客户端观看视频直播服务器播放的视频的情况,例如,各个用户在观看直播的视频时,从观看的时刻开始,将视频直播服务器分发给客户端的数据块保存在各自本地的客户端中,并将存储在本地的数据块信息上报给视频点播服务器,当直播视频播放完成之后,某一客户端点播视频时,视频点播服务器根据该客户端上报的客户端存储的数据块信息,以及其他客户端上报的其他客户端自身存储的数据块信息,判断除发送所述点播指令的客户端的其他客户端是否有发送所述点播指令的客户端自身没有存储的所述目标视频的全部数据块,如果是,指示除发送所述点播指令的客户端之外的其他客户端向发送所述点播指令的客户端发送:发送所述点播指令的客户端自身没有存储的所述目标视频的全部数据块;如果否,则判断除发送所述点播指令的客户端的其他客户端是否存储有发送所述点播指令的客户端自身没有存储的所述目标视频的部分数据块,如果是,则向发送所述点播指令的客户端发送:发送所述点播指令的客户端自身没有存储的、且除发送所述点播指令的客户端之外的其他客户端没有存储的数据块,并指示除发送所述点播指令的客户端之外的其他客户端向发送所述点播指令的客户端发送:发送所述点播指令的客户端自身没有存储的、且除发送所述点播指令的客户端的其他客户端含有的所述目标视频的部分数据块;如果否,则向发送所述点播指令的客户端发送所述目标视频的全部数据块。
应用本发明图6所示实施例,视频点播服务器预先存储客户端向所述视频点播服务器上报的自身客户端存储的数据块信息,在其他客户端有发送所述点播指令的客户端自身没有存储的所述目标视频的全部数据块或部分数据块的情况下,由其他客户端向发送所述点播指令的客户端发送全部数据块或部分数据块,视频点播服务器向发送所述点播指令的客户端不发送数据块或只发送部分数据块,节省了视频点播服务器发送的数据块的流量。同时,由于网络中存在很多观看直播视频的客户端,客户端获得数据块的来源较多,进而使得客户端能快速的获得视频的数据块,在点播视频时,能流畅、清晰的播放每个数据块对应的视频内容。
与上述的方法实施例相对应,本发明实施例还提供了视频播放系统及装置。
图7为本发明实施例提供的视频播放系统的第一种结构示意图,包括:视频直播服务器、视频点播服务器和第一客户端,其中,
视频直播服务器,用于获得直播的目标视频的视频数据,将所述视频数据切分为N个数据块;在所述目标视频直播完成之后,生成所述目标视频的文件头信息数据块和数据块映射表,所述数据块映射表中包含用于播放目标视频的每个数据块的位置信息;将所述文件头信息数据块、所述N个数据块以及所述数据块映射表发送给所述视频点播服务器;
视频点播服务器,用于接收并存储所述视频直播服务器发送的所述文件头信息数据块、所述N个数据块以及所述数据块映射表;接收第一客户端发送的针对所述目标视频的点播指令;根据所述点播指令,向所述第一客户端发送所述目标视频的数据块以及所述数据块映射表;
第一客户端,用于向视频点播服务器发送针对目标视频的点播指令;接收视频点播服务器发送的所述目标视频的数据块以及数据块映射表;根据接收到的所述数据块映射表中包含的用于播放目标视频的每个数据块的位置信息,播放每个数据块对应的视频内容。
应用本发明图7所示实施例,由于数据块映射表中包含用于播放目标视频的每个数据块的位置信息,因此允许每个数据块的大小不相同,进而使得视频直播切分的数据块可以被视频点播所使用,避免资源的浪费,提高资源利用率。
图8为本发明实施例提供的视频播放系统的第二种结构示意图,包括:视频直播服务器、视频点播服务器和第一客户端,其中,
视频直播服务器包括:直播视频数据获得单元、映射表生成单元、第一数据发送单元,其中,
直播视频数据获得单元,用于获得直播的目标视频的视频数据,将所述视频数据切分为N个数据块;
映射表生成单元,用于在所述目标视频直播完成之后,生成所述目标视频的文件头信息数据块和数据块映射表,所述数据块映射表中包含用于播放目标视频的每个数据块的位置信息;
第一数据发送单元,用于将所述文件头信息数据块、所述N个数据块以及所述数据块映射表发送给所述视频点播服务器;
本发明实施例的第一数据发送单元,可以包括:第一数据发送子单元和第二数据发送子单元(图中未示出),其中,
第一数据发送子单元,用于所述视频直播服务器每切分完成一个数据块,即时将切分的数据块发送给所述视频点播服务器;或
所述N个数据块切分完成之后,将所述N个数据块同时发送给所述视频点播服务器;
第二数据发送子单元,用于将所述文件头信息数据块以及所述数据块映射表发送给所述视频点播服务器。
视频点播服务器包括:第一数据接收单元、点播指令接收单元、第二数据发送单元,其中,
第一数据接收单元,用于接收并存储所述视频直播服务器发送的所述文件头信息数据块、所述N个数据块以及所述数据块映射表;
点播指令接收单元,用于接收第一客户端发送的针对所述目标视频的点播指令;
第二数据发送单元,用于根据所述点播指令接收单元接收到的点播指令,向所述第一客户端发送所述目标视频的数据块以及所述数据块映射表,使得所述第一客户端根据接收到的所述数据块映射表中包含的用于播放目标视频的每个数据块的位置信息,播放每个数据块对应的视频内容;
在视频点播服务器预先存储客户端向所述视频点播服务器上报的自身客户端存储的数据块信息的情况下,本发明实施例的第二数据发送单元,可以包括:第三数据发送子单元、第一判断子单元、指示子单元、第二判断子单元、第四数据发送子单元和第五数据发送子单元(图中未示出),其中,
第三数据发送子单元,用于向所述第一客户端发送所述目标视频的数据块映射表;
第一判断子单元,用于根据所述视频点播服务器预先存储客户端向所述视频点播服务器上报的自身客户端存储的数据块信息,判断除所述第一客户端的其他客户端是否有所述第一客户端自身没有存储的所述目标视频的全部数据块;
指示子单元,用于在第一判断子单元判断结果为是的情况下,指示除所述第一客户端之外的其他客户端向所述第一客户端发送:所述第一客户端自身没有存储的所述目标视频的全部数据块;
第二判断子单元,用于在第一判断子单元判断结果为否的情况下,判断除所述第一客户端的其他客户端是否存储有所述第一客户端自身没有存储的所述目标视频的部分数据块;
第四数据发送子单元,用于在第二判断子单元判断结果为是的情况下,向所述第一客户端发送:所述第一客户端自身没有存储的、且除所述第一客户端之外的其他客户端没有存储的数据块,并指示除所述第一客户端之外的其他客户端向所述第一客户端发送:所述第一客户端自身没有存储的、且除所述第一客户端的其他客户端存储的所述目标视频的数据块;
第五数据发送子单元,用于在第二判断子单元判断结果为否的情况下,向所述第一客户端发送所述目标视频的全部数据块。
第一客户端,用于向视频点播服务器发送针对目标视频的点播指令;接收视频点播服务器发送的所述目标视频的数据块以及数据块映射表;根据接收到的所述数据块映射表中包含的用于播放目标视频的每个数据块的位置信息,播放每个数据块对应的视频内容。
应用本发明图8所示实施例,由于数据块映射表中包含用于播放目标视频的每个数据块的位置信息,因此允许每个数据块的大小不相同,进而使得视频直播切分的数据块可以被视频点播所使用,避免资源的浪费,提高资源利用率。
图9为本发明实施例提供的应用于第一客户端的视频播放装置的结构示意图,可以包括:点播指令发送单元401、第二数据接收单元402和视频播放单元403,其中,
点播指令发送单元401,用于向视频点播服务器发送针对目标视频的点播指令;
第二数据接收单元402,用于接收所述视频点播服务器发送的所述目标视频的数据块以及数据块映射表,所述数据块映射表是由视频直播服务器在所述目标视频直播完成后,生成并发送给所述视频点播服务器的,所述数据块映射表中包含用于播放目标视频的每个数据块的位置信息;
在客户端预先向视频点播服务器上报自身客户端存储的数据块信息的情况下,本发明实施例的第二数据发送单元402,还可以用于:
接收第二客户端发送的所述第一客户端自身没有存储的所述目标视频的数据块,其中,所述第二客户端为:除所述第一客户端之外的、所述视频点播服务器根据预先存储的客户端自身存储的数据块信息,指示向所述第一客户端发送数据块的客户端。
视频播放单元403,用于根据第二数据接收单元402接收到的所述数据块映射表中包含的用于播放目标视频的每个数据块的位置信息,播放每个数据块对应的视频内容。
应用本发明图9所示实施例,由于数据块映射表中包含用于播放目标视频的每个数据块的位置信息,因此允许每个数据块的大小不相同,进而使得视频直播切分的数据块可以被视频点播所使用,避免资源的浪费,提高资源利用率。
图10为本发明实施例提供的应用于视频点播服务器的视频播放装置的结构示意图,可以包括:第一数据接收单元501、点播指令接收单元502、第二数据发送单元503,其中,
第一数据接收单元501,用于接收并存储视频直播服务器发送的目标视频的文件头信息数据块、将目标视频切分得到的N个数据块以及生成的目标视频的数据块映射表,所述数据块映射表中包含用于播放目标视频的每个数据块的位置信息;
点播指令接收单元502,用于接收客户端发送的针对所述目标视频的点播指令;
第二数据发送单元503,用于根据点播指令接收单元502接收到的点播指令,向发送所述点播指令的客户端发送所述目标视频的数据块以及所述数据块映射表,使得发送所述点播指令的客户端根据接收到的所述数据块映射表中包含的用于播放目标视频的每个数据块的位置信息,播放每个数据块对应的视频内容。
在视频点播服务器预先存储客户端向所述视频点播服务器上报的自身客户端存储的数据块信息的情况下,本发明实施例的第二数据发送单元503,可以包括:第三数据发送子单元、第一判断子单元、指示子单元、第二判断子单元、第四数据发送子单元和第五数据发送子单元(图中未示出),其中,
第三数据发送子单元,用于向发送所述点播指令的客户端发送所述目标视频的数据块映射表;
第一判断子单元,用于根据所述视频点播服务器预先存储客户端向所述视频点播服务器上报的自身客户端存储的数据块信息,判断除发送所述点播指令的客户端的其他客户端是否有发送所述点播指令的客户端自身没有存储的所述目标视频的全部数据块;
指示子单元,用于在第一判断子单元判断结果为是的情况下,指示除发送所述点播指令的客户端之外的其他客户端向发送所述点播指令的客户端发送:发送所述点播指令的客户端自身没有存储的所述目标视频的全部数据块;
第二判断子单元,用于在第一判断子单元判断结果为否的情况下,判断除发送所述点播指令的客户端的其他客户端是否存储有发送所述点播指令的客户端自身没有存储的所述目标视频的部分数据块;
第四数据发送子单元,用于在第二判断子单元判断结果为是的情况下,向发送所述点播指令的客户端发送:发送所述点播指令的客户端自身没有存储的、且除发送所述点播指令的客户端之外的其他客户端没有存储的数据块,并指示除发送所述点播指令的客户端之外的其他客户端向发送所述点播指令的客户端发送:发送所述点播指令的客户端自身没有存储的、且除发送所述点播指令的客户端的其他客户端存储的所述目标视频的数据块;
第五数据发送子单元,用于在第二判断子单元判断结果为否的情况下,向发送所述点播指令的客户端发送所述目标视频的全部数据块。
应用本发明图10所示实施例,由于数据块映射表中包含用于播放目标视频的每个数据块的位置信息,因此允许每个数据块的大小不相同,进而使得视频直播切分的数据块可以被视频点播所使用,避免资源的浪费,提高资源利用率。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置和系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员可以理解实现上述方法实施方式中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读取存储介质中,这里所称得的存储介质,如:ROM/RAM、磁碟、光盘等。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (8)
1.一种视频播放方法,其特征在于,应用于包含视频直播服务器和视频点播服务器的视频播放系统,所述方法包括:
视频直播服务器获得直播的目标视频的视频数据,将所述视频数据切分为N个数据块;
在所述目标视频直播完成之后,生成所述目标视频的文件头信息数据块和数据块映射表,所述数据块映射表中包含用于播放目标视频的每个数据块的位置信息;
将所述文件头信息数据块、所述N个数据块以及所述数据块映射表发送给视频点播服务器;
视频点播服务器接收并存储所述视频直播服务器发送的所述文件头信息数据块、所述N个数据块以及所述数据块映射表;
接收第一客户端发送的针对所述目标视频的点播指令;
根据所述点播指令,向所述第一客户端发送所述目标视频的数据块以及所述数据块映射表,使得所述第一客户端根据接收到的所述数据块映射表中包含的用于播放目标视频的每个数据块的位置信息,播放每个数据块对应的视频内容;
所述视频点播服务器预先存储客户端向所述视频点播服务器上报的自身客户端存储的数据块信息;
所述向所述第一客户端发送所述目标视频的数据块,包括:
根据所述视频点播服务器预先存储客户端向所述视频点播服务器上报的自身客户端存储的数据块信息,判断除所述第一客户端的其他客户端是否有所述第一客户端自身没有存储的所述目标视频的全部数据块;
如果是,指示除所述第一客户端之外的其他客户端向所述第一客户端发送:所述第一客户端自身没有存储的所述目标视频的全部数据块;
如果否,判断除所述第一客户端的其他客户端是否存储有所述第一客户端自身没有存储的所述目标视频的部分数据块;
在除所述第一客户端的其他客户端存储有所述第一客户端自身没有存储的所述目标视频的部分数据块的情况下,向所述第一客户端发送:所述第一客户端自身没有存储的、且除所述第一客户端之外的其他客户端没有存储的数据块,并指示除所述第一客户端之外的其他客户端向所述第一客户端发送:所述第一客户端自身没有存储的、且除所述第一客户端的其他客户端存储的所述目标视频的数据块;
在除所述第一客户端的其他客户端没有存储所述第一客户端自身没有存储的所述目标视频的部分数据块的情况下,向所述第一客户端发送所述目标视频的全部数据块。
2.根据权利要求1所述的方法,其特征在于,所述将所述N个数据块发送给视频点播服务器,包括:
所述视频直播服务器每切分完成一个数据块,即时将切分的数据块发送给视频点播服务器;或
所述N个数据块切分完成之后,将所述N个数据块同时发送给视频点播服务器。
3.一种视频播放方法,应用于第一客户端,其特征在于,包括:
向视频点播服务器发送针对目标视频的点播指令;
接收所述视频点播服务器发送的所述目标视频的数据块以及数据块映射表,所述数据块映射表是由视频直播服务器在所述目标视频直播完成后,生成并发送给所述视频点播服务器的,所述数据块映射表中包含用于播放目标视频的每个数据块的位置信息;
根据接收到的所述数据块映射表中包含的用于播放目标视频的每个数据块的位置信息,播放每个数据块对应的视频内容;
客户端预先向所述视频点播服务器上报自身客户端存储的数据块信息;
接收第二客户端发送的所述第一客户端自身没有存储的所述目标视频的数据块,其中,所述第二客户端为:除所述第一客户端之外的、所述视频点播服务器根据预先存储的客户端自身存储的数据块信息,指示向所述第一客户端发送数据块的客户端。
4.一种视频播放方法,应用于视频点播服务器,其特征在于,包括:
接收并存储视频直播服务器发送的目标视频的文件头信息数据块、将目标视频切分得到的N个数据块以及生成的目标视频的数据块映射表,所述数据块映射表中包含用于播放目标视频的每个数据块的位置信息;
接收客户端发送的针对所述目标视频的点播指令;
根据所述点播指令,向发送所述点播指令的客户端发送所述目标视频的数据块以及所述数据块映射表,使得发送所述点播指令的客户端根据接收到的所述数据块映射表中包含的用于播放目标视频的每个数据块的位置信息,播放每个数据块对应的视频内容;
所述视频点播服务器预先存储客户端向所述视频点播服务器上报的自身客户端存储的数据块信息;所述向发送所述点播指令的客户端发送所述目标视频的数据块,包括:
根据所述视频点播服务器预先存储客户端向所述视频点播服务器上报的自身客户端存储的数据块信息,判断除发送所述点播指令的客户端的其他客户端是否有发送所述点播指令的客户端自身没有存储的所述目标视频的全部数据块;
如果是,指示除发送所述点播指令的客户端之外的其他客户端向发送所述点播指令的客户端发送:发送所述点播指令的客户端自身没有存储的所述目标视频的全部数据块;
如果否,判断除发送所述点播指令的客户端的其他客户端是否存储有发送所述点播指令的客户端自身没有存储的所述目标视频的部分数据块;
在除发送所述点播指令的客户端的其他客户端存储有发送所述点播指令的客户端自身没有存储的所述目标视频的部分数据块的情况下,向发送所述点播指令的客户端发送:发送所述点播指令的客户端自身没有存储的、且除发送所述点播指令的客户端之外的其他客户端没有存储的数据块,并指示除发送所述点播指令的客户端之外的其他客户端向发送所述点播指令的客户端发送:发送所述点播指令的客户端自身没有存储的、且除发送所述点播指令的客户端的其他客户端含有的所述目标视频的部分数据块;
在除发送所述点播指令的客户端的其他客户端没有存储发送所述点播指令的客户端自身没有存储的所述目标视频的部分数据块的情况下,向发送所述点播指令的客户端发送所述目标视频的全部数据块。
5.一种视频播放系统,其特征在于,包括:视频直播服务器和视频点播服务器,其中,
所述视频直播服务器,用于获得直播的目标视频的视频数据,将所述视频数据切分为N个数据块;在所述目标视频直播完成之后,生成所述目标视频的文件头信息数据块和数据块映射表,所述数据块映射表中包含用于播放目标视频的每个数据块的位置信息;将所述文件头信息数据块、所述N个数据块以及所述数据块映射表发送给所述视频点播服务器;
所述视频点播服务器,用于接收并存储所述视频直播服务器发送的所述文件头信息数据块、所述N个数据块以及所述数据块映射表;接收第一客户端发送的针对所述目标视频的点播指令;根据所述点播指令,向所述第一客户端发送所述目标视频的数据块以及所述数据块映射表,使得所述第一客户端根据接收到的所述数据块映射表中包含的用于播放目标视频的每个数据块的位置信息,播放每个数据块对应的视频内容;
所述视频直播服务器包括:直播视频数据获得单元、映射表生成单元、第一数据发送单元,其中,
所述直播视频数据获得单元,用于获得直播的目标视频的视频数据,将所述视频数据切分为N个数据块;
所述映射表生成单元,用于在所述目标视频直播完成之后,生成所述目标视频的文件头信息数据块和数据块映射表,所述数据块映射表中包含用于播放目标视频的每个数据块的位置信息;
所述第一数据发送单元,用于将所述文件头信息数据块、所述N个数据块以及所述数据块映射表发送给所述视频点播服务器;
所述视频点播服务器包括:第一数据接收单元、点播指令接收单元、第二数据发送单元,其中,
所述第一数据接收单元,用于接收并存储所述视频直播服务器发送的所述文件头信息数据块、所述N个数据块以及所述数据块映射表;
所述点播指令接收单元,用于接收第一客户端发送的针对所述目标视频的点播指令;
所述第二数据发送单元,用于根据所述点播指令接收单元接收到的点播指令,向所述第一客户端发送所述目标视频的数据块以及所述数据块映射表,使得所述第一客户端根据接收到的所述数据块映射表中包含的用于播放目标视频的每个数据块的位置信息,播放每个数据块对应的视频内容;
所述视频点播服务器预先存储客户端向所述视频点播服务器上报的自身客户端存储的数据块信息;所述第二数据发送单元,包括:第三数据发送子单元、第一判断子单元、指示子单元、第二判断子单元、第四数据发送子单元和第五数据发送子单元,其中,
所述第三数据发送子单元,用于向所述第一客户端发送所述目标视频的数据块映射表;
所述第一判断子单元,用于根据所述视频点播服务器预先存储客户端向所述视频点播服务器上报的自身客户端存储的数据块信息,判断除所述第一客户端的其他客户端是否有所述第一客户端自身没有存储的所述目标视频的全部数据块;
所述指示子单元,用于在所述第一判断子单元判断结果为是的情况下,指示除所述第一客户端之外的其他客户端向所述第一客户端发送:所述第一客户端自身没有存储的所述目标视频的全部数据块;
所述第二判断子单元,用于在所述第一判断子单元判断结果为否的情况下,判断除所述第一客户端的其他客户端是否存储有所述第一客户端自身没有存储的所述目标视频的部分数据块;
所述第四数据发送子单元,用于在所述第二判断子单元判断结果为是的情况下,向所述第一客户端发送:所述第一客户端自身没有存储的、且除所述第一客户端之外的其他客户端没有存储的数据块,并指示除所述第一客户端之外的其他客户端向所述第一客户端发送:所述第一客户端自身没有存储的、且除所述第一客户端的其他客户端存储的所述目标视频的数据块;
所述第五数据发送子单元,用于在所述第二判断子单元判断结果为否的情况下,向所述第一客户端发送所述目标视频的全部数据块。
6.根据权利要求5所述的系统,其特征在于,所述第一数据发送单元,包括:第一数据发送子单元和第二数据发送子单元,其中,
所述第一数据发送子单元,用于所述视频直播服务器每切分完成一个数据块,即时将切分的数据块发送给所述视频点播服务器;或
所述N个数据块切分完成之后,将所述N个数据块同时发送给所述视频点播服务器;
所述第二数据发送子单元,用于将所述文件头信息数据块以及所述数据块映射表发送给所述视频点播服务器。
7.一种视频播放装置,应用于第一客户端,其特征在于,包括:点播指令发送单元、第二数据接收单元和视频播放单元,其中,
所述点播指令发送单元,用于向视频点播服务器发送针对目标视频的点播指令;
所述第二数据接收单元,用于接收所述视频点播服务器发送的所述目标视频的数据块以及数据块映射表,所述数据块映射表是由视频直播服务器在所述目标视频直播完成后,生成并发送给所述视频点播服务器的,所述数据块映射表中包含用于播放目标视频的每个数据块的位置信息;
所述视频播放单元,用于根据所述第二数据接收单元接收到的所述数据块映射表中包含的用于播放目标视频的每个数据块的位置信息,播放每个数据块对应的视频内容;
客户端预先向所述视频点播服务器上报自身客户端存储的数据块信息;所述第二数据接收单元,还用于:
接收第二客户端发送的所述第一客户端自身没有存储的所述目标视频的数据块,其中,所述第二客户端为:除所述第一客户端之外的、所述视频点播服务器根据预先存储的客户端自身存储的数据块信息,指示向所述第一客户端发送数据块的客户端。
8.一种视频播放装置,应用于视频点播服务器,其特征在于,包括:第一数据接收单元、点播指令接收单元、第二数据发送单元,其中,
所述第一数据接收单元,用于接收并存储视频直播服务器发送的目标视频的文件头信息数据块、将目标视频切分得到的N个数据块以及生成的目标视频的数据块映射表,所述数据块映射表中包含用于播放目标视频的每个数据块的位置信息;
所述点播指令接收单元,用于接收客户端发送的针对所述目标视频的点播指令;
所述第二数据发送单元,用于根据所述点播指令接收单元接收到的点播指令,向发送所述点播指令的客户端发送所述目标视频的数据块以及所述数据块映射表,使得发送所述点播指令的客户端根据接收到的所述数据块映射表中包含的用于播放目标视频的每个数据块的位置信息,播放每个数据块对应的视频内容;
所述视频点播服务器预先存储客户端向所述视频点播服务器上报的自身客户端存储的数据块信息;所述第二数据发送单元,包括:第三数据发送子单元、第一判断子单元、指示子单元、第二判断子单元、第四数据发送子单元和第五数据发送子单元,其中,
所述第三数据发送子单元,用于向发送所述点播指令的客户端发送所述目标视频的数据块映射表;
所述第一判断子单元,用于根据所述视频点播服务器预先存储客户端向所述视频点播服务器上报的自身客户端存储的数据块信息,判断除发送所述点播指令的客户端的其他客户端是否有发送所述点播指令的客户端自身没有存储的所述目标视频的全部数据块;
所述指示子单元,用于在所述第一判断子单元判断结果为是的情况下,指示除发送所述点播指令的客户端之外的其他客户端向发送所述点播指令的客户端发送:发送所述点播指令的客户端自身没有存储的所述目标视频的全部数据块;
所述第二判断子单元,用于在所述第一判断子单元判断结果为否的情况下,判断除发送所述点播指令的客户端的其他客户端是否存储有发送所述点播指令的客户端自身没有存储的所述目标视频的部分数据块;
所述第四数据发送子单元,用于在所述第二判断子单元判断结果为是的情况下,向发送所述点播指令的客户端发送:发送所述点播指令的客户端自身没有存储的、且除发送所述点播指令的客户端之外的其他客户端没有存储的数据块,并指示除发送所述点播指令的客户端之外的其他客户端向发送所述点播指令的客户端发送:发送所述点播指令的客户端自身没有存储的、且除发送所述点播指令的客户端的其他客户端存储的所述目标视频的数据块;
所述第五数据发送子单元,用于在所述第二判断子单元判断结果为否的情况下,向发送所述点播指令的客户端发送所述目标视频的全部数据块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410844597.8A CN104539984B (zh) | 2014-12-30 | 2014-12-30 | 一种视频播放方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410844597.8A CN104539984B (zh) | 2014-12-30 | 2014-12-30 | 一种视频播放方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104539984A CN104539984A (zh) | 2015-04-22 |
CN104539984B true CN104539984B (zh) | 2018-09-28 |
Family
ID=52855426
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410844597.8A Active CN104539984B (zh) | 2014-12-30 | 2014-12-30 | 一种视频播放方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104539984B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105657520A (zh) * | 2014-11-18 | 2016-06-08 | 乐视网信息技术(北京)股份有限公司 | 一种视频清晰度切换方法和视频播放器 |
CN107809678B (zh) * | 2016-09-09 | 2020-09-08 | 阿里巴巴集团控股有限公司 | 多媒体文件的处理方法、装置和设备 |
CN106791925B (zh) * | 2017-02-09 | 2020-12-15 | 阿里巴巴(中国)有限公司 | 视频生成方法及装置 |
CN106791924A (zh) * | 2017-02-09 | 2017-05-31 | 合网络技术(北京)有限公司 | 视频生成方法及装置 |
CN107026861A (zh) * | 2017-04-07 | 2017-08-08 | 深圳市茁壮网络股份有限公司 | 一种推流方法及装置 |
CN110636323B (zh) * | 2019-10-15 | 2021-11-23 | 博科达(北京)科技有限公司 | 一种基于云平台的全球直播及视频点播系统及方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1710857A (zh) * | 2004-06-18 | 2005-12-21 | 千橡寰宇科技发展(北京)有限公司 | 一种实现文件加速下载的系统及方法 |
CN102404608A (zh) * | 2011-11-30 | 2012-04-04 | 苏州奇可思信息科技有限公司 | 基于局域网点到点传输的视频点播方法 |
CN103051931A (zh) * | 2011-10-11 | 2013-04-17 | 中兴通讯股份有限公司 | 回看节目录制、播放方法、服务器、客户端及系统 |
-
2014
- 2014-12-30 CN CN201410844597.8A patent/CN104539984B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1710857A (zh) * | 2004-06-18 | 2005-12-21 | 千橡寰宇科技发展(北京)有限公司 | 一种实现文件加速下载的系统及方法 |
CN103051931A (zh) * | 2011-10-11 | 2013-04-17 | 中兴通讯股份有限公司 | 回看节目录制、播放方法、服务器、客户端及系统 |
CN102404608A (zh) * | 2011-11-30 | 2012-04-04 | 苏州奇可思信息科技有限公司 | 基于局域网点到点传输的视频点播方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104539984A (zh) | 2015-04-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104539984B (zh) | 一种视频播放方法、装置及系统 | |
KR101633769B1 (ko) | Iso 베이스 미디어 파일 형식에 기초한 적응형 스트리밍을 위한 안전한 비동기 이벤트 통지 시스템 및 방법 | |
CN101159577B (zh) | 接收自适应广播信号的装置及其方法 | |
US11363323B2 (en) | Method and system for providing content | |
CA2875465C (en) | Apparatus and method for processing an interactive service | |
CN103763626B (zh) | 一种信息推送方法、设备和系统 | |
CN107135417B (zh) | 一种hls协议的投屏方法及系统 | |
CN105230035B (zh) | 用于选择的时移多媒体内容的社交媒体的处理 | |
CN104426853B (zh) | 一种多媒体同步播放方法、服务器、终端以及系统 | |
US11399219B1 (en) | Cross platform application control in an interactive, multi-platform video network | |
KR101713902B1 (ko) | 방송 비디오 콘텐츠를 위한 시그널링 방법, 시그널링을 이용하는 기록 방법 및 장치 | |
KR20150048669A (ko) | 양방향 서비스를 처리하는 장치 및 방법 | |
CN103856607A (zh) | 将手机终端上视频投放到视频播放设备播放的方法和系统 | |
CN103702178B (zh) | 一种播放方法及电子设备 | |
US20180070152A1 (en) | Broadcast signal transmission apparatus, broadcast signal reception apparatus, broadcast signal transmission method, and broadcast signal reception method | |
CN106603503A (zh) | 直播数据的处理方法和装置 | |
CN106233733A (zh) | 将隐藏字幕用于电视收视测量的系统和方法 | |
CN113132194A (zh) | 一种信息流转方法、装置、设备、服务器及存储介质 | |
CN105338378B (zh) | 一种视频点播方法及装置 | |
WO2017076009A1 (zh) | 一种节目回看方法、一种播放器及一种终端 | |
WO2017014034A1 (ja) | 受信装置、送信装置、およびデータ処理方法 | |
US9232253B1 (en) | Dynamic schedule creation | |
JP5539165B2 (ja) | コンテンツ配信装置、コンテンツ再生装置及びコンテンツ再生システム | |
CN110225370A (zh) | 一种多媒体内容个性化呈现的时间线控制方法 | |
JP5097563B2 (ja) | コンテンツ受信方法及びコンテンツ受信装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |