CN110213616B - 视频提供方法、获取方法、装置及设备 - Google Patents
视频提供方法、获取方法、装置及设备 Download PDFInfo
- Publication number
- CN110213616B CN110213616B CN201810464174.1A CN201810464174A CN110213616B CN 110213616 B CN110213616 B CN 110213616B CN 201810464174 A CN201810464174 A CN 201810464174A CN 110213616 B CN110213616 B CN 110213616B
- Authority
- CN
- China
- Prior art keywords
- transcoding
- fragment
- video file
- client
- ith
- 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
- 238000000034 method Methods 0.000 title claims abstract description 68
- 239000012634 fragment Substances 0.000 claims abstract description 420
- 238000013467 fragmentation Methods 0.000 claims description 10
- 238000006062 fragmentation reaction Methods 0.000 claims description 10
- 230000006870 function Effects 0.000 description 20
- 238000012545 processing Methods 0.000 description 19
- 238000010586 diagram Methods 0.000 description 15
- 230000002093 peripheral effect Effects 0.000 description 10
- 230000001133 acceleration Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 6
- 238000004590 computer program Methods 0.000 description 5
- 230000003993 interaction Effects 0.000 description 5
- 238000004140 cleaning Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 239000000919 ceramic Substances 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 210000001503 joint Anatomy 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000001172 regenerating effect Effects 0.000 description 1
- 230000008929 regeneration Effects 0.000 description 1
- 238000011069 regeneration method Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000006641 stabilisation Effects 0.000 description 1
- 238000011105 stabilization Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
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/231—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
- H04N21/23113—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving housekeeping operations for stored content, e.g. prioritizing content for deletion because of storage space restrictions
-
- 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/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
- H04N21/234309—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4 or from Quicktime to Realvideo
-
- 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/8456—Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
-
- 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/85—Assembly of content; Generation of multimedia applications
- H04N21/854—Content authoring
- H04N21/8547—Content authoring involving timestamps for synchronizing content
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本申请实施例公开了一种视频提供方法、获取方法、装置及设备,属于视频技术领域。所述方法包括:服务器获取目标视频文件;客户端向服务器发送转码播放请求;服务器生成目标视频文件对应的转码分片索引信息,将转码分片索引信息发送给客户端;当需要播放n个转码分片中的第i个转码分片时,客户端向服务器发送分片获取请求,i为小于或等于n的正整数;服务器向客户端发送第i个转码分片;客户端播放第i个转码分片。本申请实施例通过将视频文件划分为多个分片,然后对每一个分片分别进行转码,客户端获取到一个转码分片后即可开始播放,提高了视频播放的及时性。
Description
技术领域
本申请实施例涉及视频技术领域,特别涉及一种视频提供方法、获取方法、装置及设备。
背景技术
视频转码是指将已经压缩编码的视频码流转换成另一个视频码流,以适应不同的网络带宽、不同的终端处理能力和不同的用户需求。
在相关技术中,云存储系统获取到用户上传的视频文件之后,通过转码设备对上述视频文件进行转码,生成转码后的视频文件,并将转码后的视频文件保存在云存储系统中。后续,当客户端向云存储系统请求播放上述转码后的视频文件时,云存储系统将上述转码后的视频文件发送给客户端,客户端接收并播放上述转码后的视频文件。
如果客户端请求转码播放一个刚上传的视频文件,则客户端需要等待该视频文件转码完成之后,才能获取到该转码后的视频文件,导致等待时间过长,视频播放不及时。
发明内容
本申请实施例提供了一种视频提供方法、获取方法、装置及设备,可用于解决相关技术所存在的视频播放不及时的问题。所述技术方案如下:
一方面,本申请实施例提供一种视频提供方法,所述方法包括:
获取目标视频文件;
生成所述目标视频文件对应的转码分片索引信息,所述转码分片索引信息中包括所述目标视频文件的n个转码分片各自的分片信息,其中,所述n个转码分片是指对所述目标视频文件的n个分片分别进行转码后生成的n个视频文件,所述n为正整数;
将所述转码分片索引信息发送给请求转码播放所述目标视频文件的客户端;
接收所述客户端发送的分片获取请求,所述分片获取请求中携带所述n个转码分片中的第i个转码分片的分片信息,所述i为小于或等于n的正整数;
向所述客户端发送所述第i个转码分片。
另一方面,本申请实施例提供一种视频获取方法,所述方法包括:
向服务器发送转码播放请求,所述转码播放请求用于请求转码播放目标视频文件;
接收所述服务器发送的所述目标视频文件对应的转码分片索引信息,所述转码分片索引信息中包括所述目标视频文件的n个转码分片各自的分片信息,其中,所述n个转码分片是指对所述目标视频文件的n个分片分别进行转码后生成的n个视频文件,所述n为正整数;
当需要播放所述n个转码分片中的第i个转码分片时,向所述服务器发送分片获取请求,所述分片获取请求中携带所述第i个转码分片的分片信息,所述i 为小于或等于n的正整数;
接收所述服务器发送的所述第i个转码分片;
播放所述第i个转码分片。
再一方面,本申请实施例提供一种视频提供装置,所述装置包括:
文件获取模块,用于获取目标视频文件;
索引生成模块,用于生成所述目标视频文件对应的转码分片索引信息,所述转码分片索引信息中包括所述目标视频文件的n个转码分片各自的分片信息,其中,所述n个转码分片是指对所述目标视频文件的n个分片分别进行转码后生成的n个视频文件,所述n为正整数;
索引发送模块,用于将所述转码分片索引信息发送给请求转码播放所述目标视频文件的客户端;
请求接收模块,用于接收所述客户端发送的分片获取请求,所述分片获取请求中携带所述n个转码分片中的第i个转码分片的分片信息,所述i为小于或等于n的正整数;
分片发送模块,用于向所述客户端发送所述第i个转码分片。
再一方面,本申请实施例提供一种视频获取装置,所述装置包括:
播放请求模块,用于向服务器发送转码播放请求,所述转码播放请求用于请求转码播放目标视频文件;
索引接收模块,用于接收所述服务器发送的所述目标视频文件对应的转码分片索引信息,所述转码分片索引信息中包括所述目标视频文件的n个转码分片各自的分片信息,其中,所述n个转码分片是指对所述目标视频文件的n个分片分别进行转码后生成的n个视频文件,所述n为正整数;
分片请求模块,用于当需要播放所述n个转码分片中的第i个转码分片时,向所述服务器发送分片获取请求,所述分片获取请求中携带所述第i个转码分片的分片信息,所述i为小于或等于n的正整数;
分片接收模块,用于接收所述服务器发送的所述第i个转码分片;
分片播放模块,用于播放所述第i个转码分片。
又一方面,本申请实施例提供一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行上述方面所述的视频提供方法,或者实现如上述方面所述的视频获取方法。
在一个示例中,所述计算机设备为服务器。在另一个示例中,所述计算机设备为终端。
还一方面,本申请实施例提供一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现上述方面所述的视频提供方法。
还一方面,本申请实施例提供一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现上述方面所述的视频获取方法。
又一方面,本申请实施例提供一种计算机程序产品,当该计算机程序产品被执行时,其用于执行上述方面所述的视频提供方法。
又一方面,本申请实施例提供一种计算机程序产品,当该计算机程序产品被执行时,其用于执行上述方面所述的视频获取方法。
本申请实施例提供的技术方案中,并非对目标视频文件这一完整的视频文件进行转码,而是将目标视频文件划分为多个分片,然后对每一个分片分别进行转码。通过上述方式,当客户端向服务器请求转码播放目标视频文件时,不必等到目标视频文件全部转码完成才能开始播放,其最多仅需等待当前请求的一个转码分片完成转码,即可获取到该转码分片开始进行播放,无需等待过长时间,提高了视频播放的及时性。
附图说明
图1是本申请一个实施例提供的实施环境的示意图;
图2是本申请一个实施例提供的视频提供方法的流程图;
图3示例性示出了视频选择和播放的界面示意图;
图4示例性示出了分片划分的示意图;
图5是本申请一个实施例提供的系统架构的示意图;
图6是本申请一个实施例提供的交互流程的示意图;
图7是本申请一个实施例提供的视频提供装置的框图;
图8是本申请一个实施例提供的视频获取装置的框图;
图9是本申请一个实施例提供的终端的结构框图;
图10是本申请一个实施例提供的服务器的结构示意图。
具体实施方式
下面将结合附图对本申请实施方式作进一步地详细描述。
请参考图1,其示出了本申请一个实施例提供的实施环境的示意图。该实施环境可以包括:云存储系统10和终端20。
云存储系统10用于提供文件存储服务。可选地,上述文件包括视频文件,用户可以通过与云存储系统10对接的客户端将视频文件上传到云存储系统10 中,也可以通过上述客户端从云存储系统10下载获取视频文件进行播放。
可选地,云存储系统10具备与客户端通信的功能、存储视频文件的功能、对视频文件进行转码的功能以及其它一些必要的功能,本申请实施例对此不作限定。云存储系统10的上述功能可以由一台服务实现,也可以由多台服务器组成的服务器集群实现。示例性地,云存储系统10包括接入服务器11、存储服务器12、转码服务器13等。其中,接入服务器11用于实现与客户端通信的功能,存储服务器12用于实现存储视频文件的功能,转码服务器13用于实现对视频文件进行转码的功能。
终端20可以是诸如手机、平板电脑、多媒体播放设备、PC(Personal Computer,个人计算机)等电子设备。可选地,终端20中安装运行有与云存储系统10对接的客户端,该客户端能够向云存储系统10上传视频文件,还能够从云存储系统10下载获取视频文件,并进行播放。上述客户端可以是具有视频播放功能的播放器。
需要说明的一点是,上述图1所示的实施环境仅是本申请实施例提供的技术方案的一种可适用的实施环境。对于其它与视频在线转码播放相关的实施环境或应用场景,本申请实施例提供的技术方案对于解决类似的问题同样适用。
请参考图2,其示出了本申请一个实施例提供的视频提供方法的流程图。该方法可应用于图1所示的实施环境中。该方法可以包括如下几个步骤。
步骤201,服务器获取目标视频文件。
目标视频文件可以是由任意一个用户通过客户端上传至服务器的任意一个视频文件。在本申请实施例中,对目标视频文件的码率、帧率、视频编码格式、音频编码格式、分辨率等属性不作限定。
步骤202,客户端向服务器发送转码播放请求。
转码播放请求用于请求转码播放目标视频文件。可选地,客户端显示有视频列表,该视频列表中包括至少一个可供播放的视频文件,当客户端接收到对应于视频列表中的目标视频文件的播放指令时,向服务器发送上述转码播放请求。
另外,客户端是否需要转码播放目标视频文件,可以由客户端预先默认设定,也可以由客户端根据网络状况、终端配置、终端当前运行状态等参数动态确定,或者由用户向客户端指示,本申请实施例对此不作限定。
在一个示例中,结合参考图3,以用户通过客户端请求转码播放云存储系统中的视频文件为例。客户端显示视频列表31,该视频列表31中包括若干个可供播放的视频文件。假设用户选择播放视频文件1,并选择采用“高清”模式播放该视频文件1,则客户端向服务器发送转码播放请求,该转码播放请求中可以携带视频文件1的标识信息。服务器接收到客户端发送的转码播放请求之后,可以对视频文件1执行后续步骤203至206的处理,将转码后的视频内容发送给客户端,由客户端在播放界面32中进行播放。
步骤203,服务器生成目标视频文件对应的转码分片索引信息。
转码分片索引信息中包括目标视频文件的n个转码分片各自的分片信息,其中,n个转码分片是指对目标视频文件的n个分片分别进行转码后生成的n个视频文件,n为正整数。
在本申请实施例中,并非对目标视频文件这一完整的视频文件进行转码,而是将目标视频文件划分为多个分片,然后对每一个分片分别进行转码。通过上述方式,当客户端向服务器请求转码播放目标视频文件时,不必等到目标视频文件全部转码完成才能开始播放,其最多仅需等待当前请求的一个转码分片完成转码,即可获取到该转码分片开始进行播放,无需等待过长时间,提高了视频播放的及时性。
可选地,每一个转码分片的分片信息包括一下至少一项:转码分片的标识信息、起始时间戳、结束时间戳、时长、编码格式。
转码分片的标识信息用于唯一指示该转码分片,不同的转码分片具有不同的标识信息,可选地,转码分片的标识信息可以是转码分片的文件名。
转码分片的起始时间戳是指该转码分片的起始播放时刻在目标视频文件中的时间戳,转码分片的结束时间戳是指该转码分片的结束播放时刻在目标视频文件中的时间戳。转码分片的时长是指该转码分片的播放时长。不同的转码分片的时长可以相同,也可以不同。可选地,对于目标视频文件的n个转码分片,其中第1个转码分片至第n-1个转码分片的时长相同,记为第一时长,并将第n 个转码分片的时长记为第二时长,第二时长小于或等于第一时长。
结合参考图4,假设目标视频文件的总时长为46秒,每一个转码分片的时长为10秒,则可以将目标视频文件划分为5个分片进行转码。其中,第1个转码分片的标识信息可以是1.ts、起始时间戳为00:00、结束时间戳为00:10、时长为10秒;第2个转码分片的标识信息可以是2.ts、起始时间戳为00:10、结束时间戳为00:20、时长为10秒;第3个转码分片的标识信息可以是3.ts、起始时间戳为00:20、结束时间戳为00:30、时长为10秒;第4个转码分片的标识信息可以是4.ts、起始时间戳为00:30、结束时间戳为00:40、时长为10秒;第5个转码分片的标识信息可以是5.ts、起始时间戳为00:40、结束时间戳为00:46、时长为6秒。
在本申请实施例中,对各个转码分片的码率、帧率、视频编码格式、音频编码格式、分辨率等属性不作限定。在一个示例中,基于HLS(HTTP Live Streaming)技术进行视频转码,转码分片的视频编码格式可以是H.264格式,音频编码格式可以是AAC(Advanced AudioCoding,高级音频编码)格式,每一个转码分片可以是一个TS(Transport Stream,传输流)格式的文件。可选地,采用多媒体视频处理工具FFmpeg(Fast Forward Mpeg)执行转码处理。
需要说明的一点是,服务器在生成目标视频文件对应的转码分片索引信息之前,还并没有对目标视频文件的分片进行转码,服务器可以在接收到客户端对任意一个转码分片的分片获取请求之后,再对相应的分片进行转码生成该转码分片。
另外,上述转码分片索引信息可以是M3U8(Moving Picture Experts GroupAudio Layer 3Uniform Resource Locator 8)文件。
还需要说明的一点是,目标视频文件通常可划分为多个分片,也即n为大于1的整数。但是,n也可能等于1,例如当目标视频文件的总时长较短时,如果目标视频文件的总时长小于或等于一个分片的时长,则n等于1;如果目标视频文件的总时长大于一个分片的时长,则n大于1。
步骤204,服务器将转码分片索引信息发送给请求转码播放目标视频文件的客户端。
服务器接收到客户端发送的对应于目标视频文件的转码播放请求之后,将目标视频文件的转码分片索引信息发送给客户端。
需要说明的一点是,服务器可以在接收到客户端发送的对应于目标视频文件的转码播放请求之后,生成该目标视频文件的转码分片索引信息。例如,服务器在获取到目标视频文件之后,保存该目标视频文件,且暂不生成该目标视频文件的转码分片索引信息,以免在后续没有针对该目标视频文件的转码播放需求时,生成一个不必要的转码分片索引信息,浪费处理资源和存储资源;当服务器获取到任意一个客户端发送的对应于目标视频文件的转码播放请求之后,生成该目标视频文件的转码分片索引信息。并且,服务器保存上述生成的目标视频文件的转码分片索引信息,以便在后续接收到其它客户端发来的对应于目标视频文件的转码播放请求时,能够直接获取该存储的目标视频文件的转码分片索引信息,不必重新生成,提高向客户端反馈转码分片索引信息的效率。
或者,服务器也可以在获取到目标视频文件之后,预生成该目标视频文件的转码分片索引信息。也即,服务器在获取到目标视频文件之后,即便还没接收到任意一个客户端发来的对应于目标视频文件的转码播放请求,其也预先生成该目标视频文件的转码分片索引信息,并将其保存。这样,在后续接收到任意一个客户端发来的对应于目标视频文件的转码播放请求时,能够直接获取该存储的目标视频文件的转码分片索引信息,提高向客户端反馈转码分片索引信息的效率。
本申请实施例提供了上述两种生成转码分片索引信息的时机,在实际应用中,可以根据实际需求进行选择。例如,对于响应时延要求较高或者播放时延要求较高的场景,选择预生成视频文件的转码分片索引信息的方式;对于响应时延要求较低或者播放时延要求较低的场景,选择在接收到转码播放请求之后再生成视频文件的转码分片索引信息的方式。
步骤205,当需要播放n个转码分片中的第i个转码分片时,客户端向服务器发送分片获取请求,i为小于或等于n的正整数。
可选地,分片获取请求中携带第i个转码分片的分片信息,例如分片获取请求中携带第i个转码分片的标识信息。
客户端根据实际播放需求确定所要获取的转码分片,并向服务器发送用于请求获取该转码分片的分片获取请求。例如,当客户端接收到目标视频文件的转码分片索引信息之后,需要从头开始播放,则向服务器发送分片获取请求,该分片获取请求中携带第1个转码分片的标识信息;当客户端播放第1个转码分片结束时,或者当客户端播放第1个转码分片即将结束时,向服务器发送分片获取请求,该分片获取请求中携带第2个转码分片的标识信息;当客户端播放第2个转码分片结束时,或者当客户端播放第2个转码分片即将结束时,向服务器发送分片获取请求,该分片获取请求中携带第3个转码分片的标识信息,以此类推。如果客户端在播放每一个转码分片即将结束时,向服务器发送用于请求获取下一个转码分片的分片获取请求,能够使得各个转码分片之间的播放衔接更为流畅,避免出现卡顿。可选地,客户端在播放每一个转码分片结束之前的预设时长,向服务器发送用于请求获取下一个转码分片的分片获取请求,该预设时长可以根据实际情况进行设定和调整,本申请实施例对此不作限定。
另外,用户也可以主动调整客户端的播放进度,例如用户通过播放进度条调整客户端的播放进度。客户端获取播放指令,该播放指令用于请求客户端从目标时间戳开始转码播放目标视频文件,客户端根据转码分片索引信息,确定目标时间戳所属的转码分片为需要播放的转码分片,而后向服务器发送用于请求获取该需要播放的转码分片的分片获取请求。
可选地,当第1个转码分片至第n-1个转码分片的时长相同,均为第一时长时,客户端可以将目标时间戳与第一时长相除,将计算得到的商取整加1,得到目标时间戳所属的转码分片。例如,每一个转码分片的时长为10秒,目标时间戳为35秒,则目标时间戳所属的转码分片为第4个转码分片。
可选地,当各个转码分片的时长不同时,客户端可以将前m个转码分片的时长累加,如果目标时间戳大于或等于前m个转码分片的时长的累加值,且小于前m+1个转码分片的时长的累加值,则目标时间戳所属的转码分片为第m+1 个转码分片,其中,m小于n为正整数。
当第1个转码分片至第n-1个转码分片的时长相同时,客户端确定目标时间戳所属的转码分片时计算量较小,更为简单高效。
步骤206,服务器向客户端发送第i个转码分片。
服务器在获取到客户端发送的对应于第i个转码分片的分片获取请求之后,向客户端发送该第i个转码分片。可选地,上述步骤206包括如下几个子步骤:
1、服务器判断第i个转码分片是否已转码完成;
2、若第i个转码分片已转码完成,则服务器向客户端发送第i个转码分片;
3、若第i个转码分片未转码完成,则服务器对视频文件的第i个分片进行转码,生成第i个转码分片;当第i个转码分片转码完成时,向客户端发送第i 个转码分片。
也即,如果服务器中已经存储有已转码完成的第i个转码分片,则服务器将该第i个转码分片直接发送给客户端;如果服务器中并未存储有已转码完成的第i个转码分片,则服务器先转码生成该第i个转码分片,当该第i个转码分片转码完成时,及时将该第i个转码分片发送给客户端。
可选地,在第i个转码分片未转码完成的情况下,服务器还可判断是否存在已转码完成的第i-1个转码分片。如果存在已转码完成的第i-1个转码分片,则服务器向客户端发送该第i-1个转码分片,客户端接收到该第i-1个转码分片之后,先播放该第i-1个转码分片,后续待接收到服务器发送的第i个转码分片之后,继续播放第i个转码分片,从而避免播放卡顿现象。如果不存在已转码完成的第i-1个转码分片,则服务器向客户端发送提示信息,该提示信息用于指示正在转码中,客户端接收到上述提示信息之后,可以显示该提示信息。例如,客户端在播放界面中或者在播放界面上层显示加载标识,通过该加载标识表示用户当前请求播放的视频内容正在转码中。
可选地,当第i个转码分片转码完成时,服务器继续对视频文件的第i+1个分片进行转码,生成第i+1个转码分片。通过上述方式,服务器不必每等到一个分片获取请求之后再转码该请求所要获取的转码分片,而是自动按序往后转码,这种异步转码方式能够有助于提高向客户端反馈转码分片的效率,减少客户端播放转码分片的等待时延。
步骤207,客户端播放第i个转码分片。
客户端在接收到第i个转码分片之后,播放该第i个转码分片。
可选地,客户端在第i个转码分片播放结束时,或者在播放第i个转码分片结束之前的预设时长,向服务器发送用于请求获取第i+1个转码分片的分片获取请求。
综上所述,本申请实施例提供的技术方案中,并非对目标视频文件这一完整的视频文件进行转码,而是将目标视频文件划分为多个分片,然后对每一个分片分别进行转码。通过上述方式,当客户端向服务器请求转码播放目标视频文件时,不必等到目标视频文件全部转码完成才能开始播放,其最多仅需等待当前请求的一个转码分片完成转码,即可获取到该转码分片开始进行播放,无需等待过长时间,提高了视频播放的及时性。
另外,由于并非对一个完整的视频文件进行转码,而是根据客户端的实际播放需求,按需转码生成转码分片,而未请求播放的转码分片可不必生成,从而有助于节省服务器的处理和存储资源。
在基于图2实施例提供的一个可选实施例中,服务器将转码分片索引信息发送给请求转码播放目标视频文件的客户端之后,从目标视频文件的第1个分片开始进行转码。也即,服务器不必等到客户端发来的用于请求获取第1个转码分片的分片获取请求之后,再开始对第1个分片进行转码生成第1个转码分片,因为客户端向服务器发送转码播放请求,即表明客户端有转码播放目标视频文件的需求,服务器通过预先从目标视频文件的第1个分片开始进行转码,有助于在接收到客户端发来的用于请求获取第1个转码分片的分片获取请求之后,更为快速地向客户端提供第1个转码分片,进一步提高视频播放的及时性。
可选地,当任意一个分片转码完成时,服务器自动继续对下一个分片进行转码,不必等到客户端的分片获取请求之后再进行转码,以此提高对分片获取请求的响应速度,有助于减少或避免视频播放过程中的卡顿问题。
在基于图2实施例提供的另一可选实施例中,当服务器获取到目标视频文件之后,还可以执行下述步骤:
1、服务器检测目标视频文件是否属于热门视频文件;
2、若目标视频文件属于热门视频文件,则服务器预生成目标视频文件的k 个转码分片,k为小于或等于n的正整数。
热门视频文件是指被客户端请求转码播放的概率大于预设概率的视频文件,也即热门视频文件是指被客户端请求转码播放的可能性较高的视频文件。服务器中可以预先设定热门视频文件的判定规则,当目标视频文件的属性信息 (如标题、内容、发布者等信息)符合热门视频文件的判定规则时,确定该目标视频文件属于热门视频文件。
如果目标视频文件属于热门视频文件,则服务器不必等到某一客户端的转码播放请求之后才开始对目标视频文件进行转码,其可以预生成目标视频文件的k个转码分片,其中,k的取值可以预先设定,如1、2、3等,本申请实施例对此不作限定。通过上述方式,当客户端请求转码播放某一热门视频文件时,其获取该热门视频文件的转码分片的时延会缩短,提高视频播放的及时性。
在基于图2实施例提供的另一可选实施例中,服务器还可对其存储的转码分片进行定期清理。例如,服务器定期检查各个转码分片是否符合预设清理条件,如果任意一个转码分片符合预设清理条件,则从存储中删除该转码分片。其中,预设清理条件可以根据实际情况预先设定,例如超过一定时间未被使用、视频文件已经下架等,本申请实施例对此不作限定。
下面,结合图5所示的系统架构图和图6所示的交互流程图,当本申请实施例提供的技术方案应用于图1所示的实施环境中时,相应的交互流程如下说明。
如图5所示,用户通过客户端与云存储系统10的第一接入服务器11a对接,向云存储系统10上传视频文件,第一接入服务器11a接收到客户端发送的视频文件之后,将视频文件存储至第一存储服务器12a中。
用户通过客户端与云存储系统10的第二接入服务器11b对接,向云存储系统10请求转码播放视频文件,第二接入服务器11b向转码服务器13转发转码播放请求。转码服务器13根据转码播放请求,确定客户端所请求转码播放的视频文件,从第一存储服务器12a中获取该视频文件,生成该视频文件的转码分片索引信息,并从第1个分片开始进行转码。转码服务器13将视频文件的转码分片索引信息发送给客户端,并将转码生成的转码分片存储至第二存储服务器 12b中。客户端根据视频文件的转码分片索引信息,向第二接入服务器11b发送分片获取请求,第二接入服务器11b根据分片获取请求从第二存储服务器12b 中查找获取客户端所请求获取的转码分片,而后将该转码分片发送给客户端进行播放。
上述上传视频文件的用户和请求转码播放该视频文件的用户可以是同一用户,也可以是不同用户,本申请实施例对此不作限定。
如图6所示,该交互流程可以包括如下几个步骤:
步骤601,用户触发在线播放目标视频文件;
步骤602,客户端向云存储系统10的服务器发送转码播放请求,该转码播放请求用于请求转码播放目标视频文件;
步骤603,服务器向客户端发送目标视频文件的转码分片索引信息;
步骤604,服务器从目标视频文件的第1个分片开始进行转码;
步骤605,客户端向服务器发送用于请求获取第1个转码分片的分片获取请求;
步骤606,服务器向客户端发送第1个转码分片;
以此类推,客户端在按照正常进度播放的情况下,依次向服务器请求获取各个转码分片,服务器依次向客户端发送各个转码分片。
步骤607,用户拖动播放进度条调整播放进度或者按照正常进度播放;
步骤608,当需要播放第i个转码分片时,客户端向服务器发送用于请求获取第i个转码分片的分片获取请求;
步骤609,若第i个转码分片已转码完成,则服务器向客户端发送第i个转码分片,并且服务器可以执行下述步骤610;
步骤610,服务器对第i+1个分片进行转码;
步骤611,若第i个转码分片未转码完成,且存在已转码完成的第i-1个转码分片,则服务器向客户端发送该第i-1个转码分片,并且服务器执行下述步骤 612;
步骤612,服务器对第i个转码分片进行转码;
步骤613,若第i个转码分片未转码完成,且不存在已转码完成的第i-1个转码分片,则服务器向客户端发送用于指示正在转码中的提示信息,并且服务器执行下述步骤614;
步骤614,服务器对第i个转码分片进行转码;
步骤615,客户端播放接收到的转码分片或显示提示信息。
需要说明的一点是,在上述方法实施例中,仅从客户端和服务器交互的角度对本申请实施例提供的技术方案进行介绍说明,上述有关服务器一侧的方法步骤可以单独实现成为服务器一侧的视频提供方法,上述有关客户端一侧的方法步骤可以单独实现成为客户端一侧的视频获取方法。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
请参考图7,其示出了本申请一个实施例提供的视频提供装置的框图。该装置700具有实现上述方法示例中服务器一侧的功能,所述功能可以由硬件实现,也可以由硬件执行相应的软件实现。该装置700可以包括:文件获取模块710、索引生成模块720、索引发送模块730、请求接收模块740和分片发送模块750。
文件获取模块710,用于获取目标视频文件。
索引生成模块720,用于生成所述目标视频文件对应的转码分片索引信息,所述转码分片索引信息中包括所述目标视频文件的n个转码分片各自的分片信息,其中,所述n个转码分片是指对所述目标视频文件的n个分片分别进行转码后生成的n个视频文件,所述n为正整数。
索引发送模块730,用于将所述转码分片索引信息发送给请求转码播放所述目标视频文件的客户端。
请求接收模块740,用于接收所述客户端发送的分片获取请求,所述分片获取请求中携带所述n个转码分片中的第i个转码分片的分片信息,所述i为小于或等于n的正整数。
分片发送模块750,用于向所述客户端发送所述第i个转码分片。
综上所述,本申请实施例提供的技术方案中,并非对目标视频文件这一完整的视频文件进行转码,而是将目标视频文件划分为多个分片,然后对每一个分片分别进行转码。通过上述方式,当客户端向服务器请求转码播放目标视频文件时,不必等到目标视频文件全部转码完成才能开始播放,其最多仅需等待当前请求的一个转码分片完成转码,即可获取到该转码分片开始进行播放,无需等待过长时间,提高了视频播放的及时性。
在基于图7实施例提供的一个可选实施例中,所述分片发送模块750,用于:
判断所述第i个转码分片是否已转码完成;
若所述第i个转码分片已转码完成,则向所述客户端发送所述第i个转码分片;
若所述第i个转码分片未转码完成,则对所述视频文件的第i个分片进行转码,生成所述第i个转码分片;当所述第i个转码分片转码完成时,向所述客户端发送所述第i个转码分片。
可选地,所述分片发送模块750,还用于:
若所述第i个转码分片未转码完成,且存在已转码完成的第i-1个转码分片,则向所述客户端发送所述第i-1个转码分片;
若所述第i个转码分片未转码完成,且不存在已转码完成的第i-1个转码分片,则向所述客户端发送提示信息,所述提示信息用于指示正在转码中。
可选地,所述装置700还包括:转码模块。
转码模块,用于当所述第i个转码分片转码完成时,继续对所述视频文件的第i+1个分片进行转码,生成第i+1个转码分片。
在基于图7实施例提供的另一个可选实施例中,所述转码分片索引信息在接收到所述客户端发送的转码播放请求之后生成;或者,所述转码分片索引信息在获取到所述目标视频文件之后预生成。
在基于图7实施例提供的另一个可选实施例中,上述转码模块,还用于:在将所述转码分片索引信息发送给请求转码播放所述目标视频文件的客户端之后,从所述目标视频文件的第1个分片开始进行转码。
在基于图7实施例提供的另一个可选实施例中,上述转码模块,还用于:在获取到目标视频文件之后,检测所述目标视频文件是否属于热门视频文件;若所述目标视频文件属于所述热门视频文件,则预生成所述目标视频文件的k 个转码分片,所述k为小于或等于n的正整数。
请参考图8,其示出了本申请一个实施例提供的视频获取装置的框图。该装置800具有实现上述方法示例中客户端一侧的功能,所述功能可以由硬件实现,也可以由硬件执行相应的软件实现。该装置800可以包括:播放请求模块810、索引接收模块820、分片请求模块830、分片接收模块840和分片播放模块850。
播放请求模块810,用于向服务器发送转码播放请求,所述转码播放请求用于请求转码播放目标视频文件。
索引接收模块820,用于接收所述服务器发送的所述目标视频文件对应的转码分片索引信息,所述转码分片索引信息中包括所述目标视频文件的n个转码分片各自的分片信息,其中,所述n个转码分片是指对所述目标视频文件的n 个分片分别进行转码后生成的n个视频文件,所述n为正整数。
分片请求模块830,用于当需要播放所述n个转码分片中的第i个转码分片时,向所述服务器发送分片获取请求,所述分片获取请求中携带所述第i个转码分片的分片信息,所述i为小于或等于n的正整数。
分片接收模块840,用于接收所述服务器发送的所述第i个转码分片。
分片播放模块850,用于播放所述第i个转码分片。
综上所述,本申请实施例提供的技术方案中,并非对目标视频文件这一完整的视频文件进行转码,而是将目标视频文件划分为多个分片,然后对每一个分片分别进行转码。通过上述方式,当客户端向服务器请求转码播放目标视频文件时,不必等到目标视频文件全部转码完成才能开始播放,其最多仅需等待当前请求的一个转码分片完成转码,即可获取到该转码分片开始进行播放,无需等待过长时间,提高了视频播放的及时性。
在基于图8实施例提供的一个可选实施例中,
分片接收模块840,还用于接收所述服务器发送的第i-1个转码分片,其中,所述第i-1个转码分片是所述服务器在所述第i个转码分片未转码完成、且存在已转码完成的所述第i-1个转码分片的情况下向所述客户端发送的。
分片播放模块850,还用于播放所述第i-1个转码分片。
在基于图8实施例提供的另一个可选实施例中,所述装置800还包括:提示接收模块和提示显示模块。
提示接收模块,用于接收所述服务器发送的用于指示正在转码中的提示信息,其中,所述提示信息是所述服务器在所述第i个转码分片未转码完成、且不存在已转码完成的第i-1个转码分片的情况下向所述客户端发送的。
提示显示模块,用于显示所述提示信息。
在基于图8实施例提供的另一个可选实施例中,所述装置800还包括:指令获取模块和分片确定模块。
指令获取模块,用于获取播放指令,所述播放指令用于请求所述客户端从目标时间戳开始转码播放所述目标视频文件。
分片确定模块,用于根据所述转码分片索引信息,确定所述目标时间戳所属的转码分片为需要播放的转码分片。
需要说明的是,上述实施例提供的装置,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
请参考图9,其示出了本申请一个实施例提供的终端900的结构框图。该终端900可以是PC、手机、平板电脑、多媒体播放设备、可穿戴设备、电视机等。
通常,终端900包括有:处理器901和存储器902。
处理器901可以包括一个或多个处理核心,比如4核心处理器、9核心处理器等。处理器901可以采用DSP(Digital Signal Processing,数字信号处理)、 FPGA(FieldProgrammable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器901也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器901 可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器901还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器902可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器902还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器902中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器901所执行以实现本申请中方法实施例提供的视频获取方法。
在一些实施例中,终端900还可选包括有:外围设备接口903和至少一个外围设备。处理器901、存储器902和外围设备接口903之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口903 相连。具体地,外围设备包括:射频电路904、显示屏905、摄像头组件906、音频电路907、定位组件908和电源909中的至少一种。
外围设备接口903可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器901和存储器902。在一些实施例中,处理器901、存储器902和外围设备接口903被集成在同一芯片或电路板上;在一些其他实施例中,处理器901、存储器902和外围设备接口903中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路904用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路904通过电磁信号与通信网络以及其他通信设备进行通信。射频电路904将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路904包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路904可以通过至少一种无线通信协议来与其它设备进行通信。该无线通信协议包括但不限于:城域网、各代移动通信网络(2G、3G、4G及 5G)、无线局域网和/或Wi-Fi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路904还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。
显示屏905用于显示UI。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏905是触摸显示屏时,显示屏905还具有采集在显示屏 905的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器901进行处理。此时,显示屏905还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏905可以为一个,设置终端900的前面板;在另一些实施例中,显示屏905可以为至少两个,分别设置在终端900的不同表面或呈折叠设计;在再一些实施例中,显示屏905可以是柔性显示屏,设置在终端900的弯曲表面上或折叠面上。甚至,显示屏905 还可以设置成非矩形的不规则图形,也即异形屏。显示屏905可以采用 LCD(Liquid Crystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode, 有机发光二极管)等材质制备。
摄像头组件906用于采集图像或视频。可选地,摄像头组件906包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及 VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件906还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路907可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器901进行处理,或者输入至射频电路 904以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端900的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器901或射频电路904的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路907还可以包括耳机插孔。
定位组件908用于定位终端900的当前地理位置,以实现导航或LBS (LocationBased Service,基于位置的服务)。定位组件908可以是基于美国的 GPS(GlobalPositioning System,全球定位系统)、中国的北斗系统、俄罗斯的格雷纳斯系统或欧盟的伽利略系统的定位组件。
电源909用于为终端900中的各个组件进行供电。电源909可以是交流电、直流电、一次性电池或可充电电池。当电源909包括可充电电池时,该可充电电池可以支持有线充电或无线充电。该可充电电池还可以用于支持快充技术。
在一些实施例中,终端900还包括有一个或多个传感器910。该一个或多个传感器910包括但不限于:加速度传感器911、陀螺仪传感器912、压力传感器 913、指纹传感器914、光学传感器915以及接近传感器916。
加速度传感器911可以检测以终端900建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器911可以用于检测重力加速度在三个坐标轴上的分量。处理器901可以根据加速度传感器911采集的重力加速度信号,控制显示屏905以横向视图或纵向视图进行用户界面的显示。加速度传感器911 还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器912可以检测终端900的机体方向及转动角度,陀螺仪传感器912可以与加速度传感器911协同采集用户对终端900的3D动作。处理器 901根据陀螺仪传感器912采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器913可以设置在终端900的侧边框和/或显示屏905的下层。当压力传感器913设置在终端900的侧边框时,可以检测用户对终端900的握持信号,由处理器901根据压力传感器913采集的握持信号进行左右手识别或快捷操作。当压力传感器913设置在显示屏905的下层时,由处理器901 根据用户对显示屏905的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
指纹传感器914用于采集用户的指纹,由处理器901根据指纹传感器914 采集到的指纹识别用户的身份,或者,由指纹传感器914根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器901授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器914可以被设置终端900的正面、背面或侧面。当终端900上设置有物理按键或厂商Logo时,指纹传感器914可以与物理按键或厂商Logo集成在一起。
光学传感器915用于采集环境光强度。在一个实施例中,处理器901可以根据光学传感器915采集的环境光强度,控制显示屏905的显示亮度。具体地,当环境光强度较高时,调高显示屏905的显示亮度;当环境光强度较低时,调低显示屏905的显示亮度。在另一个实施例中,处理器901还可以根据光学传感器915采集的环境光强度,动态调整摄像头组件906的拍摄参数。
接近传感器916,也称距离传感器,通常设置在终端900的前面板。接近传感器916用于采集用户与终端900的正面之间的距离。在一个实施例中,当接近传感器916检测到用户与终端900的正面之间的距离逐渐变小时,由处理器 901控制显示屏905从亮屏状态切换为息屏状态;当接近传感器916检测到用户与终端900的正面之间的距离逐渐变大时,由处理器901控制显示屏 905从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图9中示出的结构并不构成对终端900的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
请参考图10,其示出了本申请一个实施例提供的服务器的结构示意图。该服务器用于实施上述实施例中提供的视频提供方法。具体来讲:
所述服务器1000包括中央处理单元(CPU)1001、包括随机存取存储器 (RAM)1002和只读存储器(ROM)1003的系统存储器1004,以及连接系统存储器1004和中央处理单元1001的系统总线1005。所述服务器1000还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(I/O系统)1006,和用于存储操作系统1013、应用程序1014和其他程序模块1015的大容量存储设备1007。
所述基本输入/输出系统1006包括有用于显示信息的显示器1008和用于用户输入信息的诸如鼠标、键盘之类的输入设备1009。其中所述显示器1008和输入设备1009都通过连接到系统总线1005的输入输出控制器1010连接到中央处理单元1001。所述基本输入/输出系统1006还可以包括输入输出控制器1010以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器1010还提供输出到显示屏、打印机或其他类型的输出设备。
所述大容量存储设备1007通过连接到系统总线1005的大容量存储控制器 (未示出)连接到中央处理单元1001。所述大容量存储设备1007及其相关联的计算机可读介质为服务器1000提供非易失性存储。也就是说,所述大容量存储设备1007可以包括诸如硬盘或者CD-ROM驱动器之类的计算机可读介质(未示出)。
不失一般性,所述计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、EPROM、EEPROM、闪存或其他固态存储其技术,CD-ROM、DVD或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机存储介质不局限于上述几种。上述的系统存储器1004和大容量存储设备1007可以统称为存储器。
根据本申请的各种实施例,所述服务器1000还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即服务器1000可以通过连接在所述系统总线1005上的网络接口单元1011连接到网络1012,或者说,也可以使用网络接口单元1011来连接到其他类型的网络或远程计算机系统(未示出)。
所述存储器还包括一个或者一个以上的程序,所述一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行。上述一个或者一个以上程序包含用于执行上述视频提供方法的指令。
在示例中实施例中,还提供了一种服务器,所述服务器包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集。所述至少一条指令、至少一段程序、代码集或指令集经配置以由所述服务器的一个或者一个以上处理器执行,以实现上述视频提供方法。
在示例中实施例中,还提供了一种终端,所述终端包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集。所述至少一条指令、至少一段程序、代码集或指令集经配置以由所述终端的一个或者一个以上处理器执行,以实现上述视频获取方法。
在示例性实施例中,还提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或所述指令集在被服务器的处理器执行时实现上述视频提供方法。
在示例性实施例中,还提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或所述指令集在被终端的处理器执行时实现上述视频获取方法。
可选地,上述计算机可读存储介质可以是ROM、随机存取存储器(RAM)、 CD-ROM、磁带、软盘和光数据存储设备等。
在示例性实施例中,还提供了一种计算机程序产品,当该计算机程序产品被执行时,其用于实现上述视频提供方法。
在示例性实施例中,还提供了一种计算机程序产品,当该计算机程序产品被执行时,其用于实现上述视频获取方法。
应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
以上所述仅为本申请的示例性实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (8)
1.一种视频提供方法,其特征在于,所述方法由服务器执行,所述方法包括:
获取目标视频文件;
根据时延要求,在接收到客户端发送的转码播放请求之后生成所述目标视频文件对应的转码分片索引信息,或者在获取到所述目标视频文件之后预生成所述目标视频文件对应的转码分片索引信息,所述转码分片索引信息中包括所述目标视频文件的n个转码分片各自的分片信息,所述n个转码分片是指对所述目标视频文件的n个分片分别进行转码后生成的n个视频文件,所述n为正整数;其中,所述目标视频文件是在生成所述转码分片索引信息之后转码的;
将所述转码分片索引信息发送给请求转码播放所述目标视频文件的客户端;
在将所述转码分片索引信息发送给所述客户端之后,从所述目标视频文件的第1个分片开始进行转码;其中,所述服务器不必等到所述客户端发来的用于请求获取第1个转码分片的分片获取请求之后,再开始对所述第1个分片进行转码生成所述第1个转码分片;
接收所述客户端发送的分片获取请求,所述分片获取请求中携带所述n个转码分片中的第i个转码分片的分片信息,所述i为小于或等于n的正整数;
若所述第i个转码分片未转码完成,且存在已转码完成的第i-1个转码分片,则向所述客户端发送所述第i-1个转码分片;
若所述第i个转码分片未转码完成,且不存在已转码完成的第i-1个转码分片,则向所述客户端发送提示信息,所述提示信息用于指示正在转码中;
对所述目标视频文件的第i个分片进行转码,生成所述第i个转码分片;当所述第i个转码分片转码完成时,向所述客户端发送所述第i个转码分片;其中,所述客户端在播放所述第i个转码分片结束之前的预设时长,向所述服务器发送用于请求获取第i+1个转码分片的分片获取请求;
其中,在所述目标视频文件属于热门视频文件的情况下,预生成所述目标视频文件的k个转码分片,所述热门视频文件是指被所述客户端请求转码播放的概率大于预设概率的视频文件,所述k为小于或等于n的正整数。
2.根据权利要求1所述的方法,其特征在于,所述对所述目标视频文件的第i个分片进行转码,生成所述第i个转码分片之后,还包括:
当所述第i个转码分片转码完成时,继续对所述目标视频文件的第i+1个分片进行转码,生成第i+1个转码分片。
3.一种视频获取方法,其特征在于,所述方法由客户端执行,所述方法包括:
向服务器发送转码播放请求,所述转码播放请求用于请求转码播放目标视频文件;
接收所述服务器发送的所述目标视频文件对应的转码分片索引信息,所述转码分片索引信息中包括所述目标视频文件的n个转码分片各自的分片信息,所述n个转码分片是指对所述目标视频文件的n个分片分别进行转码后生成的n个视频文件,所述n为正整数;其中,所述目标视频文件是在所述转码分片索引信息生成之后转码的;其中,所述服务器根据时延要求,在接收到所述客户端发送的转码播放请求之后生成所述转码分片索引信息,或者在获取到所述目标视频文件之后预生成所述转码分片索引信息;并且,所述服务器在将所述转码分片索引信息发送给所述客户端之后,从所述目标视频文件的第1个分片开始进行转码,所述服务器不必等到所述客户端发来的用于请求获取第1个转码分片的分片获取请求之后,再开始对所述第1个分片进行转码生成所述第1个转码分片;
当需要播放所述n个转码分片中的第i个转码分片时,向所述服务器发送分片获取请求,所述分片获取请求中携带所述第i个转码分片的分片信息,所述i为小于或等于n的正整数;
若接收到所述服务器发送的第i-1个转码分片,则播放所述第i-1个转码分片;其中,所述第i-1个转码分片是所述服务器在所述第i个转码分片未转码完成、且存在已转码完成的所述第i-1个转码分片的情况下向所述客户端发送的;
若接收到所述服务器发送的用于指示正在转码中的提示信息,则显示所述提示信息;其中,所述提示信息是所述服务器在所述第i个转码分片未转码完成、且不存在已转码完成的第i-1个转码分片的情况下向所述客户端发送的;
接收所述服务器发送的所述第i个转码分片;其中,所述第i个转码分片是所述服务器在所述第i个转码分片转码完成的情况下向所述客户端发送的;
播放所述第i个转码分片;
在播放所述第i个转码分片结束之前的预设时长,向所述服务器发送用于请求获取第i+1个转码分片的分片获取请求;
其中,所述服务器在所述目标视频文件属于热门视频文件的情况下,预生成所述目标视频文件的k个转码分片,所述热门视频文件是指被所述客户端请求转码播放的概率大于预设概率的视频文件,所述k为小于或等于n的正整数。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
获取播放指令,所述播放指令用于请求所述客户端从目标时间戳开始转码播放所述目标视频文件;
根据所述转码分片索引信息,确定所述目标时间戳所属的转码分片为需要播放的转码分片。
5.一种视频提供装置,其特征在于,所述装置包括:
文件获取模块,用于获取目标视频文件;
索引生成模块,用于根据时延要求,在接收到客户端发送的转码播放请求之后生成所述目标视频文件对应的转码分片索引信息,或者在获取到所述目标视频文件之后预生成所述目标视频文件对应的转码分片索引信息,所述转码分片索引信息中包括所述目标视频文件的n个转码分片各自的分片信息,所述n个转码分片是指对所述目标视频文件的n个分片分别进行转码后生成的n个视频文件,所述n为正整数;其中,所述目标视频文件是在生成所述转码分片索引信息之后转码的;
索引发送模块,用于将所述转码分片索引信息发送给请求转码播放所述目标视频文件的客户端;
转码模块,用于在将所述转码分片索引信息发送给所述客户端之后,从所述目标视频文件的第1个分片开始进行转码;其中,服务器不必等到所述客户端发来的用于请求获取第1个转码分片的分片获取请求之后,再开始对所述第1个分片进行转码生成所述第1个转码分片;
请求接收模块,用于接收所述客户端发送的分片获取请求,所述分片获取请求中携带所述n个转码分片中的第i个转码分片的分片信息,所述i为小于或等于n的正整数;
分片发送模块,用于在所述第i个转码分片未转码完成,且存在已转码完成的第i-1个转码分片的情况下,向所述客户端发送所述第i-1个转码分片;在所述第i个转码分片未转码完成,且不存在已转码完成的第i-1个转码分片的情况下,向所述客户端发送提示信息,所述提示信息用于指示正在转码中;对所述目标视频文件的第i个分片进行转码,生成所述第i个转码分片;当所述第i个转码分片转码完成时,向所述客户端发送所述第i个转码分片;其中,所述客户端在播放所述第i个转码分片结束之前的预设时长,向所述服务器发送用于请求获取第i+1个转码分片的分片获取请求;
所述转码模块,还用于在所述目标视频文件属于热门视频文件的情况下,预生成所述目标视频文件的k个转码分片,所述热门视频文件是指被所述客户端请求转码播放的概率大于预设概率的视频文件,所述k为小于或等于n的正整数。
6.一种视频获取装置,其特征在于,所述装置包括:
播放请求模块,用于向服务器发送转码播放请求,所述转码播放请求用于请求转码播放目标视频文件;
索引接收模块,用于接收所述服务器发送的所述目标视频文件对应的转码分片索引信息,所述转码分片索引信息中包括所述目标视频文件的n个转码分片各自的分片信息,所述n个转码分片是指对所述目标视频文件的n个分片分别进行转码后生成的n个视频文件,所述n为正整数;其中,所述目标视频文件是在所述转码分片索引信息生成之后转码的;其中,所述服务器根据时延要求,在接收到客户端发送的转码播放请求之后生成所述转码分片索引信息,或者在获取到所述目标视频文件之后预生成所述转码分片索引信息;并且,所述服务器在将所述转码分片索引信息发送给所述客户端之后,从所述目标视频文件的第1个分片开始进行转码,所述服务器不必等到所述客户端发来的用于请求获取第1个转码分片的分片获取请求之后,再开始对所述第1个分片进行转码生成所述第1个转码分片;
分片请求模块,用于当需要播放所述n个转码分片中的第i个转码分片时,向所述服务器发送分片获取请求,所述分片获取请求中携带所述第i个转码分片的分片信息,所述i为小于或等于n的正整数;
分片播放模块,用于在接收到所述服务器发送的第i-1个转码分片的情况下,播放所述第i-1个转码分片;其中,所述第i-1个转码分片是所述服务器在所述第i个转码分片未转码完成、且存在已转码完成的所述第i-1个转码分片的情况下向所述客户端发送的;
提示显示模块,用于在接收到所述服务器发送的用于指示正在转码中的提示信息的情况下,显示所述提示信息;其中,所述提示信息是所述服务器在所述第i个转码分片未转码完成、且不存在已转码完成的第i-1个转码分片的情况下向所述客户端发送的;
分片接收模块,用于接收所述服务器发送的所述第i个转码分片;其中,所述第i个转码分片是所述服务器在所述第i个转码分片转码完成的情况下向所述客户端发送的;
所述分片播放模块,还用于播放所述第i个转码分片;
所述分片请求模块,还用于在播放所述第i个转码分片结束之前的预设时长,向所述服务器发送用于请求获取第i+1个转码分片的分片获取请求;
其中,所述服务器在所述目标视频文件属于热门视频文件的情况下,预生成所述目标视频文件的k个转码分片,所述热门视频文件是指被所述客户端请求转码播放的概率大于预设概率的视频文件,所述k为小于或等于n的正整数。
7.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1或2所述的视频提供方法,或者实现如权利要求3或4所述的视频获取方法。
8.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如权利要求1或2所述的视频提供方法,或者实现如权利要求3或4所述的视频获取方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810464174.1A CN110213616B (zh) | 2018-05-15 | 2018-05-15 | 视频提供方法、获取方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810464174.1A CN110213616B (zh) | 2018-05-15 | 2018-05-15 | 视频提供方法、获取方法、装置及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110213616A CN110213616A (zh) | 2019-09-06 |
CN110213616B true CN110213616B (zh) | 2021-12-28 |
Family
ID=67778855
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810464174.1A Active CN110213616B (zh) | 2018-05-15 | 2018-05-15 | 视频提供方法、获取方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110213616B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110636335B (zh) * | 2019-09-24 | 2022-04-08 | 中电鸿信信息科技有限公司 | 一种实时视频的hls快速分享的方法 |
CN110995830B (zh) * | 2019-11-29 | 2023-01-31 | 武汉卓讯互动信息科技有限公司 | 一种网络资源处理方法和装置 |
CN111031354B (zh) * | 2019-12-09 | 2020-12-01 | 腾讯科技(深圳)有限公司 | 一种多媒体播放方法、装置及存储介质 |
CN111182327B (zh) * | 2020-02-12 | 2022-04-22 | 北京达佳互联信息技术有限公司 | 一种视频剪辑方法、装置、视频分发服务器及终端 |
CN111355979B (zh) * | 2020-03-09 | 2022-04-08 | 联通沃音乐文化有限公司 | 一种在线音频快速播放方法 |
CN112422561B (zh) * | 2020-11-18 | 2023-04-07 | 三星电子(中国)研发中心 | 一种内容分享方法和装置方法 |
US11949926B2 (en) | 2020-11-18 | 2024-04-02 | Samsung Electronics Co., Ltd. | Content sharing method and device |
CN113411544A (zh) * | 2021-04-25 | 2021-09-17 | 青岛海尔科技有限公司 | 视频分片文件的发送方法及装置、存储介质及电子装置 |
CN114025201A (zh) * | 2021-10-29 | 2022-02-08 | 恒安嘉新(北京)科技股份公司 | 一种视频播放方法、装置、设备及存储介质 |
CN114786042A (zh) * | 2022-04-12 | 2022-07-22 | 北京字节跳动网络技术有限公司 | 视频播放方法、装置、设备及存储介质 |
CN114866810A (zh) * | 2022-07-06 | 2022-08-05 | 浙江华创视讯科技有限公司 | 流式录像下载方法、装置、存储介质及电子装置 |
CN114979714B (zh) * | 2022-07-29 | 2022-11-01 | 中关村科学城城市大脑股份有限公司 | 视频转码播放方法、装置、电子设备和计算机可读介质 |
CN115633191A (zh) * | 2022-09-15 | 2023-01-20 | 北京百度网讯科技有限公司 | 视频播放方法、装置、系统、电子设备与可读存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101083756A (zh) * | 2007-03-14 | 2007-12-05 | 中国科学技术大学 | 基于互联网的电视流媒体数据实时传输和服务装置及方法 |
CN101924955A (zh) * | 2009-06-16 | 2010-12-22 | 中兴通讯股份有限公司 | 一种改善手机电视播放质量的方法及系统 |
CN102217278A (zh) * | 2010-12-17 | 2011-10-12 | 华为技术有限公司 | 一种媒体内容在线适配方法及装置 |
CN103916679A (zh) * | 2014-03-10 | 2014-07-09 | 百度在线网络技术(北京)有限公司 | 一种用于提供视频信息的方法、设备与系统 |
CN104935951A (zh) * | 2015-06-29 | 2015-09-23 | 电子科技大学 | 一种基于分布式的视频转码方法 |
US9654807B2 (en) * | 2015-03-27 | 2017-05-16 | Thales, Inc. | Aircraft communications system with adaptive streaming video and associated methods |
CN106791930A (zh) * | 2017-01-04 | 2017-05-31 | 北京百度网讯科技有限公司 | 一种视频处理方法和装置 |
CN106791929A (zh) * | 2016-12-30 | 2017-05-31 | 杭州当虹科技有限公司 | 一种视频文件实时转码方法 |
CN106961613A (zh) * | 2017-03-30 | 2017-07-18 | 上海七牛信息技术有限公司 | 一种流式实时转码点播方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012170904A2 (en) * | 2011-06-10 | 2012-12-13 | Bytemobile, Inc. | Adaptive bitrate management on progressive download with indexed media files |
-
2018
- 2018-05-15 CN CN201810464174.1A patent/CN110213616B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101083756A (zh) * | 2007-03-14 | 2007-12-05 | 中国科学技术大学 | 基于互联网的电视流媒体数据实时传输和服务装置及方法 |
CN101924955A (zh) * | 2009-06-16 | 2010-12-22 | 中兴通讯股份有限公司 | 一种改善手机电视播放质量的方法及系统 |
CN102217278A (zh) * | 2010-12-17 | 2011-10-12 | 华为技术有限公司 | 一种媒体内容在线适配方法及装置 |
CN103916679A (zh) * | 2014-03-10 | 2014-07-09 | 百度在线网络技术(北京)有限公司 | 一种用于提供视频信息的方法、设备与系统 |
US9654807B2 (en) * | 2015-03-27 | 2017-05-16 | Thales, Inc. | Aircraft communications system with adaptive streaming video and associated methods |
CN104935951A (zh) * | 2015-06-29 | 2015-09-23 | 电子科技大学 | 一种基于分布式的视频转码方法 |
CN106791929A (zh) * | 2016-12-30 | 2017-05-31 | 杭州当虹科技有限公司 | 一种视频文件实时转码方法 |
CN106791930A (zh) * | 2017-01-04 | 2017-05-31 | 北京百度网讯科技有限公司 | 一种视频处理方法和装置 |
CN106961613A (zh) * | 2017-03-30 | 2017-07-18 | 上海七牛信息技术有限公司 | 一种流式实时转码点播方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110213616A (zh) | 2019-09-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110213616B (zh) | 视频提供方法、获取方法、装置及设备 | |
CN111147878B (zh) | 直播中的推流方法、装置及计算机存储介质 | |
CN110213636B (zh) | 在线视频的视频帧生成方法、装置、存储介质及设备 | |
CN108769726B (zh) | 多媒体数据推送方法、装置、存储介质及设备 | |
CN109874043B (zh) | 视频流发送方法、播放方法及装置 | |
WO2021143386A1 (zh) | 资源传输方法及终端 | |
CN108600778B (zh) | 媒体流发送方法、装置、系统及服务器、终端、存储介质 | |
CN110533585B (zh) | 一种图像换脸的方法、装置、系统、设备和存储介质 | |
CN109413453B (zh) | 视频播放方法、装置、终端及存储介质 | |
CN113490010B (zh) | 基于直播视频的互动方法、装置、设备及存储介质 | |
CN111586431B (zh) | 进行直播处理的方法、装置、设备及存储介质 | |
CN111246095B (zh) | 控制镜头运动的方法、装置、设备及存储介质 | |
CN110996117B (zh) | 视频转码方法、装置、电子设备和存储介质 | |
CN108769738B (zh) | 视频处理方法、装置、计算机设备和存储介质 | |
CN112995759A (zh) | 互动业务处理方法、系统、装置、设备及存储介质 | |
CN110958465A (zh) | 视频流推送方法、装置及存储介质 | |
CN107896337B (zh) | 信息推广方法、装置及存储介质 | |
WO2019170118A1 (zh) | 视频播放方法、装置及设备 | |
CN112104648A (zh) | 数据处理方法、装置、终端、服务器及存储介质 | |
CN108900921A (zh) | 连麦直播方法、装置及存储介质 | |
CN111818358A (zh) | 音频文件的播放方法、装置、终端及存储介质 | |
CN112969093A (zh) | 互动业务处理方法、装置、设备及存储介质 | |
CN108833970B (zh) | 直播录制的方法、装置、计算机设备及存储介质 | |
WO2021143388A1 (zh) | 码率切换方法及设备 | |
CN111131272B (zh) | 流服务器的调度方法、装置及系统、计算设备、存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |