CN107888941A - 视频切片传输方法、装置和系统 - Google Patents
视频切片传输方法、装置和系统 Download PDFInfo
- Publication number
- CN107888941A CN107888941A CN201711025793.2A CN201711025793A CN107888941A CN 107888941 A CN107888941 A CN 107888941A CN 201711025793 A CN201711025793 A CN 201711025793A CN 107888941 A CN107888941 A CN 107888941A
- Authority
- CN
- China
- Prior art keywords
- server
- video
- video segment
- sliced sheet
- virtual sliced
- 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
- 238000000034 method Methods 0.000 title claims abstract description 47
- 230000005540 biological transmission Effects 0.000 title claims abstract description 42
- 238000006243 chemical reaction Methods 0.000 claims description 19
- 239000011800 void material Substances 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 3
- 238000004364 calculation method Methods 0.000 claims 1
- 241001269238 Data Species 0.000 abstract description 7
- 230000007935 neutral effect Effects 0.000 description 13
- 230000004044 response Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000003044 adaptive effect Effects 0.000 description 3
- 229910002056 binary alloy Inorganic materials 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 239000012634 fragment Substances 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 210000003733 optic disk Anatomy 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
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/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
- H04L65/612—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/65—Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及视频切片传输方法、装置和系统,所述方法包括:第一服务器接收终端发送的视频切片获取请求;第一服务器基于该获取请求向第二服务器回源请求该视频切片对应的虚拟切片信息文件和原始视频文件中的视频片段;第二服务器将预先生成的虚拟切片信息文件和对应的原始视频文件中的视频片段发送至第一服务器;第一服务器根据所述虚拟切片信息文件中的信息对所述视频片段进行切片处理;第一服务器将生成的视频切片返回至终端。本发明所述方法使得在视频传输过程中,原始视频无需切片存储,且多种切片格式时,无需存储为多份视频数据,第一服务器无需从第二服务器传输多份视频数据,也无需缓存多份视频数据,节省了传输带宽、磁盘空间和缓存空间。
Description
技术领域
本发明涉及流媒体直播点播技术领域,特别是涉及一种视频切片传输方法、装置和系统。
背景技术
随着互联网多媒体技术的发展,在网络带宽不断增长的今天,网络视频以其便捷的访问体验、多样化的影片来源、实时的更新速度吸引了广大的用户,使得网络视频成为了用户网络生活不可或缺的重要组成部分。
相对于传统的流媒体直播点播按帧传输的方式,现在互联网各大视频网站采用了切片式的传输协议,切片式的传输方式可以很好的在HTTP(HyperText TransferProtocol,超文本传输协议),各种Web(World Wide Web,全球广域网)缓存和CDN(ContentDelivery Network,内容分发网络)上工作;但是各种浏览器和各种观看终端对切片格式的支持各不相同,视频服务器需要将原始视频切片成各种格式以支持各种观看终端和各种浏览器。切片成多种格式并存储浪费了大量的磁盘存储空间,每增加一种格式就占用一份原始视频大小的磁盘空间;同时切片成多种格式成倍数的占用了缓存服务器或者CDN的缓存空间,也增大了缓存服务器或者CDN回源时耗费的源视频服务器的带宽;某些现有技术将对视频的切片操作延迟到视频切片文件被请求时再执行,请求端需要哪个视频切片文件才生成该视频切片文件并存储在临时目录,这个过程只是将切片过程延后了,随着视频的大量传输,源视频服务器的磁盘占用和缓存服务器或CDN的缓存空间占用,以及回源带宽的占用问题并没有解决。
综上所述,现有的视频切片方式需要为不同的切片格式生成不同的切片,占用资源较大。
发明内容
基于此,有必要针对视频切片方式需要为不同的切片格式生成不同的切片,占用资源较大的问题,提供一种视频切片传输方法、装置和系统。
一种视频切片传输方法,包括以下步骤:第一服务器接收终端发送的视频切片获取请求;第一服务器基于该获取请求向第二服务器回源请求该视频切片对应的虚拟切片信息文件和原始视频文件中的视频片段;第二服务器将预先生成的虚拟切片信息文件和对应的原始视频文件中的视频片段发送至第一服务器;第一服务器根据所述虚拟切片信息文件中的信息对所述视频片段进行切片处理;第一服务器将生成的视频切片返回至终端。
所述的视频切片传输方法,其特征在于,所述第一服务器根据所述虚拟切信息文件中的信息对所述视频片段进行切片处理的步骤包括:加载并解析所述虚拟切片信息文件;基于所述视频切片获取请求得到所述视频切片对应的切片序号和切片格式;根据所述切片序号和切片格式定位虚拟切片数据表中相应的表项;执行所述表项中的数据引用和转换命令序列,将所述视频片段转换成相应切片格式的视频切片。
所述的视频切片传输方法,所述虚拟切片信息文件中包括一个虚拟切片信息表和多个虚拟切片数据表;所述虚拟切片信息表用于记录所述原始视频文件对应的各个视频的虚拟切片的切片信息;所述多个虚拟切片数据表分别记录用于生成不同切片格式的视频切片对应的转换信息,其中一种格式对应一个虚拟切片数据表。
所述的视频切片传输方法,所述虚拟切片信息表包括若干个表项,每个表项对应一个虚拟切片的信息,所述虚拟切片的信息包括所述虚拟切片的切片序号、所述虚拟切片的切片时长、所述虚拟切片对应的原始视频文件的序号,以及所述虚拟切片中各个帧在原始视频文件中的字节范围开始点和所述虚拟切片的字节长度。
所述的视频切片传输方法,所述虚拟切片信息文件还包括索引文件内容表,用于记录各个切片格式的视频索引文件内容。
所述的视频切片传输方法,还包括以下步骤:第一服务器接收终端发送的视频索引文件的获取请求;第一服务器基于该获取请求向第二服务器回源请求对应的虚拟切片信息文件;第二服务器将对应的虚拟切片信息文件发送至第一服务器;第一服务器加载并解析所述虚拟切片信息文件得到相应的视频索引文件;第一服务器将所述视频索引文件返回至终端。
所述的视频切片传输方法,所述虚拟切片信息文件还包括用于记录原始视频标识信息的标识信息列表、用于对切片进行标识的切片基础序号,以及常用数据表,所述常用数据表用于定义在虚拟切片转化成实际视频切片时重复使用的数据。
所述的视频切片生成方法,所述第一服务器基于该获取请求向第二服务器回源请求该视频切片对应的虚拟切片信息文件和原始视频文件中的视频片段的步骤之前,还包括:在缓存系统中查找所述虚拟切片信息文件;若未查找到,则向第二服务器回源请求并缓存所述虚拟切片信息文件;和/或,在缓存系统中查找所述视频片段;若未查找到,则向第二服务器回源请求并缓存所述视频片段。
所述的视频切片生成方法,所述第一服务器基于该获取请求向第二服务器回源请求对应的虚拟切片信息文件的步骤之前,还包括:在缓存系统中查找所述虚拟切片信息文件;若未查找到,则向第二服务器回源请求并缓存所述虚拟切片信息文件。
所述的视频切片生成方法,所述在缓存系统中查找虚拟切片信息文件的步骤包括:基于所述视频切片获取请求或视频索引文件获取请求得到虚拟切片信息文件的路径;计算所述虚拟切片信息文件路径的哈希值;通过所述哈希值查询该虚拟切片信息文件是否存在于缓存系统中。
所述的视频切片生成方法,所述在缓存系统中查找所述视频片段的步骤包括:加载并解析所述虚拟切片信息文件;基于所述视频切片获取请求得到所述视频切片对应的切片序号和切片格式;根据所述切片序号确定所述视频切片在虚拟切片信息表中对应的表项,以及根据所述切片格式确定所述视频切片在虚拟切片数据表中对应的表项;查询所述在虚拟切片信息表中对应的表项指明的原始视频文件中的数据范围是否存在于缓存系统中。
所述的视频切片传输方法,还包括以下步骤:第二服务器在接收到完整的视频文件之后,对所述视频文件进行扫描解析;第二服务器对扫描解析后的视频文件进行虚拟切片操作,生成所述虚拟切片信息文件。
所述的视频切片传输方法,还包括以下步骤:第二服务器将直播的音视频帧按照配置的切片时间间隔,在最靠近所述切片时间间隔的关键帧位置切片保存为无特定格式的切片文件;更新所述虚拟切片信息文件。
一种视频切片传输装置,包括:接收单元,用于第一服务器接收终端发送的视频切片获取请求;获取单元,用于第一服务器基于该获取请求向第二服务器回源请求该视频切片对应的虚拟切片信息文件和原始视频文件中的视频片段;发送单元,用于第二服务器将预先生成的虚拟切片信息文件和对应的原始视频文件中的视频片段发送至第一服务器;切片单元,用于第一服务器根据所述虚拟切片信息文件中的信息对所述视频片段进行切片处理;反馈单元,用于第一服务器将生成的视频切片反馈至终端。
所述的视频切片传输装置,所述切片单元包括:加载模块,用于加载并解析所述虚拟切片信息文件;切片信息获取模块,用于基于所述视频切片获取请求得到所述视频切片对应的切片序号和切片格式;定位模块,用于根据所述切片序号和切片格式定位虚拟切片数据表中相应的表项;转换模块,用于执行所述表项中的数据引用和转换命令序列,将所述视频片段转换成相应切片格式的视频切片。
一种视频切片传输系统,包括终端、视频服务器、缓存服务器,其中,所述视频服务器执行任一项所述的视频切片传输方法中由第二服务器执行的步骤,所述缓存服务器执行任一项所述的视频切片传输方法中由第一服务器执行的步骤。
一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现任一所述视频切片传输方法的步骤。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现任一所述视频切片传输方法的步骤。
对比现有技术,本发明具有以下优点:
(1)原始视频无需切片存储,节省了磁盘空间,简化了管理;
(2)多种切片格式时,无需存储为多份视频数据,节省了磁盘空间;
(3)多种切片格式时,第一服务器无需从第二服务器传输多份视频数据,节省了传输带宽;
(4)多种切片格式时,第一服务器无需缓存多份视频数据,节省了缓存空间。
附图说明
图1为一个实施例的视频切片传输方法流程图;
图2为一个实施例的视频切片传输装置的结构框图;
图3为一个实施例的视频切片传输系统的结构示意图;
图4为一个实施例的缓存服务器响应视频索引文件的流程图;
图5为一个实施例的缓存服务器响应视频切片文件的流程图;
图6为一个实施例的虚拟切片信息文件格式示意图;
图7为一个实施例的VSD示意图。
具体实施方式
下面结合附图对本发明的技术方案进行说明。
如图1所示,本发明实施例提供一种视频切片传输方法,可包括以下步骤:
S101,第一服务器接收终端发送的视频切片获取请求;
所述第一服务器接收终端发送的视频切片获取请求。在一个实施例中,所述视频切片获取请求可以是一个URL(Uniform Resource Locator,统一资源定位符),解析该URL可以获取切片序号和切片格式等信息。目标切片格式可以是HLS(HTTP Live Streaming,HTTP直播数据流),HDS(HTTP Dynamic Streaming,HTTP动态数据流),MPEG(MovingPicture Experts Group,动态图像专家组)-DASH(Dynamic Adaptive Stream over HTTP,基于HTTP的动态自适应流)等格式。
S102,第一服务器基于该获取请求向第二服务器回源请求该视频切片对应的虚拟切片信息文件和原始视频文件中的视频片段;
所述虚拟切片信息文件中可包括一个虚拟切片信息表(记为VST)和多个虚拟切片数据表(记为VSDT),所述虚拟切片信息表用于记录所述原始视频文件对应的各个视频的虚拟切片的切片信息;所述多个虚拟切片数据表分别记录用于生成不同切片格式的视频切片对应的转换信息,其中一种格式对应一个虚拟切片数据表。
其中,所述虚拟切片信息表包括若干个表项,每个表项对应一个虚拟切片的信息(记为VSI),所述虚拟切片的信息包括所述虚拟切片的切片序号(记为VSN)、所述虚拟切片的切片时长(记为VSDUR)、所述虚拟切片对应的原始视频文件的序号(记为OFN),以及所述虚拟切片中各个帧在原始视频文件中的字节范围开始点(记为OFNS)和所述虚拟切片的字节长度(记为OFNL)。在一个实施例中,逻辑上一个VSI为一个(VSN,VSDUR,OFN,OFNS,OFNL)五元组;依据VSI在VST中的排列顺序,记为VSIDX,从0开始;切片序号VSN本身不记录在VSI中,可以根据切片基础序号VSBN加上所述VSIDX得到。
虚拟切片数据表的每个表项记为VSD,在一个实施例中,每个VSD都是一串二进制字节,是高度紧凑表示的切片数据,每个VSD对应于VST中对应顺序的虚拟切片;VSD本质上是外部数据引用和转换命令序列,引用的外部数据包括常用数据表(记为CDT)中的常用数据以及对应OFN文件范围内的数据;通过丰富的数据引用和转换命令,可以用很小的VSD表达整个视频切片的数据。
在进一步的实施例中,所述虚拟切片信息文件还包括索引文件内容表(记为INDEX_FILE_TABLE),用于记录各个切片格式的视频索引文件内容。其中,每个切片格式可定义一个格式代码,例如,HLS格式的格式代码为‘HLS’,HDS格式的格式代码为‘HDS’,MPEG-DASH格式的格式代码为‘DASH’。每个格式代码可关联一串字节,字节的内容为对应格式的视频索引文件的内容;视频切片文件名格式为<虚拟切片信息文件名>.VSN.格式扩展名,视频索引文件的文件名格式为<虚拟切片信息文件名>.格式扩展名。以video.mp4.vseg为例,HLS的索引文件名为video.mp4.vseg.m3u8,HLS的切片文件名为video.mp4.vseg.1.ts,HDS的索引文件名为video.mp4.vseg.f4m,HDS的切片文件名为video.mp4.vseg.1.f4f,MPEG-DASH的索引文件名为video.mp4.vseg.mpd,MPEG-DASH的切片文件名为video.mp4.vseg.1.m4s。这些文件实际上不存在,是虚拟的文件。
进一步地,第一服务器接收终端发送的视频索引文件的获取请求;第一服务器基于该获取请求向第二服务器回源请求对应的虚拟切片信息文件;第二服务器将对应的虚拟切片信息文件发送至第一服务器;第一服务器加载并解析所述虚拟切片信息文件得到相应的视频索引文件;第一服务器将所述视频索引文件返回至终端。
在第一服务器基于该获取请求向第二服务器回源请求对应的虚拟切片信息文件的步骤之前,第一服务器还可以在缓存系统中查找所述虚拟切片信息文件;若未查找到,则向第二服务器回源请求并缓存所述虚拟切片信息文件。例如,第一服务器在接收到<文件名>.vseg.m3u8,<文件名>.vseg.mpd或者<文件名>.vseg.f4m的文件请求时,可将URI中的文件名部分替换为<文件名>.vseg,计算新的URI的key,从缓存系统中检查所述key的缓存文件是否存在,如果不存在则回源请求并缓存所述.vseg文件,进而加载所述.vseg文件将INDEX_FILE_TABLE中对应格式的索引文件内容响应给请求方。
在一个实施例中,所述虚拟切片信息文件还包括用于记录原始视频标识信息的标识信息列表、用于对切片进行标识的切片基础序号,以及常用数据表,所述常用数据表用于定义在虚拟切片转化成实际视频切片时重复使用的数据。其中,标识信息列表可选地为记录原始视频文件名的原始视频文件名列表(记为OFT),每个原始视频文件按在原始视频文件名列表中的顺序序号进行标识,这个序号记为OFN,OFN从0开始计数,第一个为0,第二个为1依次类推。切片基础序号(记为VSBN)是索引文件中的第一切片的序号,后续的切片序号依次+1;当太旧的切片文件需要从索引列表中移除时,切片基础序号需要更新到第一个未被移除的切片的序号,整个直播过程中,切片序号要连续递增,每个切片序号要唯一标识一个视频切片。常用数据表(记为CDT),每个表项记为CDI,CDI为一串字节,CDI由在CDT中顺序序号标识,记为CDIDX,从0开始。
在一个实施例中,第一服务器在收到视频切片获取请求时,可以在缓存系统中查找所述虚拟切片信息文件;若未查找到,则向第二服务器回源请求并缓存所述虚拟切片信息文件。
在另一个实施例中,第一服务器在收到视频切片获取请求时,还可以在缓存系统中查找所述视频片段;若未查找到,则向第二服务器回源请求并缓存所述视频片段。
在一个实施例中,所述第一服务器基于该获取请求向第二服务器回源请求对应的虚拟切片信息文件的步骤之前,还可以在缓存系统中查找所述视频片段;若未查找到,则回源请求并缓存所述视频片段。
进一步地,第一服务器在缓存系统中查找虚拟切片信息文件时,可以基于所述视频切片获取请求或视频索引文件获取请求得到虚拟切片信息文件的路径;计算所述虚拟切片信息文件路径的哈希值;通过所述哈希值查询该虚拟切片信息文件是否存在于缓存系统中。
进一步地,第一服务器在缓存系统中查找所述视频片段时,可以加载并解析所述虚拟切片信息文件;基于所述视频切片获取请求得到所述视频切片对应的切片序号和切片格式;根据所述切片序号确定所述视频切片在虚拟切片信息表中对应的表项,以及根据所述切片格式确定所述视频切片在虚拟切片数据表中对应的表项;查询所述在虚拟切片信息表中对应的表项指明的原始视频文件中的数据范围是否存在于缓存系统中。
S103,第二服务器将预先生成的虚拟切片信息文件和对应的原始视频文件中的视频片段发送至第一服务器;
其中,第二服务器可以预先生成虚拟切片信息文件。具体地,第二服务器在接收到完整的视频文件之后,对所述视频文件进行扫描解析;第二服务器对扫描解析后的视频文件进行虚拟切片操作,生成所述虚拟切片信息文件。
对于点播,音视频数据是存储在一个原始视频文件中的,对于直播,只有输入的流式帧,第二服务器需要把流式的音视频按照预设的切片时长,把音视频帧保存到一个“格式中立(即无特定格式)的切片文件”,这个文件即是直播的“原始视频文件”。具体地,可以将直播的音视频帧按照配置的切片时间间隔,在最靠近所述切片时间间隔的关键帧位置切片保存为格式中立的切片文件;将所述格式中立的切片文件作为原始视频文件。对于直播,由于会对太旧的切片文件进行移除,因此需要根据所述格式中立的切片文件更新所述虚拟切片信息文件。此时需要移除掉.vseg文件中对应的OFT表项、VST表项、没有被引用的CDT表项、VSDT表项、以及更新VSBN和INDEX_FILE_TABLE;对于直播,OFT表中包含所有当前未移除的所述格式中立的切片文件的文件名。
S104,第一服务器根据所述虚拟切片信息文件中的信息对所述视频片段进行切片处理;
在本步骤中,第一服务器可以加载并解析所述虚拟切片信息文件;基于所述视频切片获取请求得到所述视频切片对应的切片序号和切片格式;根据所述切片序号和切片格式定位虚拟切片数据表中相应的表项;执行所述表项中的数据引用和转换命令序列,将所述视频片段转换成相应切片格式的视频切片。
如果缓存系统中不存在对应的文件,第一服务器则回源请求并缓存所述.vseg文件,进而加载所述.vseg文件,根据所请求的格式和序号,定位到虚拟切片数据表的表项。进一步地,第一服务器可以执行所述视频切片获取请求对应的虚拟切片数据表中的数据引用和转换命令序列,将所述视频切片获取请求对应的虚拟切片数据表展开,转换成对应格式的视频切片;根据所述虚拟切片信息表对[OFNS,OFNS+OFNL)范围的原始视频文件进行切片处理,并返回将所述视频切片获取请求对应的虚拟切片数据表展开的步骤,直到所述视频切片获取请求对应的虚拟切片数据表展开完毕;其中,OFNS为所请求的原始视频文件的字节范围开始点,OFNL为所请求的原始视频文件的字节长度。在加载数据时,可以通过HTTP的Range请求加载到缓存系统中,进而继续所述VSD的展开操作,直到展开完毕,将展开后的数据响应给请求方;为了提高响应速度,实现上也可以边展开VSD边响应数据给请求方。
S105,第一服务器将生成的视频切片返回至终端。
终端可以根据从第一服务器获取到的视频切片播放视频。
如图2所示,本发明还提供一种视频切片传输装置,可包括:
接收单元201,用于第一服务器接收终端发送的视频切片获取请求;
所述接收单元201接收终端发送的视频切片获取请求。在一个实施例中,所述视频切片获取请求可以是一个URL(Uniform Resource Locator,统一资源定位符),解析该URL可以获取切片序号和切片格式等信息。目标切片格式可以是HLS(HTTP Live Streaming,HTTP直播数据流),HDS(HTTP Dynamic Streaming,HTTP动态数据流),MPEG(MovingPicture Experts Group,动态图像专家组)-DASH(Dynamic Adaptive Stream over HTTP,基于HTTP的动态自适应流)等格式。
获取单元202,用于第一服务器基于该获取请求向第二服务器回源请求该视频切片对应的虚拟切片信息文件和原始视频文件中的视频片段;
所述虚拟切片信息文件中可包括一个虚拟切片信息表(记为VST)和多个虚拟切片数据表(记为VSDT),所述虚拟切片信息表用于记录所述原始视频文件对应的各个视频的虚拟切片的切片信息;所述多个虚拟切片数据表分别记录用于生成不同切片格式的视频切片对应的转换信息,其中一种格式对应一个虚拟切片数据表。
其中,所述虚拟切片信息表包括若干个表项,每个表项对应一个虚拟切片的信息(记为VSI),所述虚拟切片的信息包括所述虚拟切片的切片序号(记为VSN)、所述虚拟切片的切片时长(记为VSDUR)、所述虚拟切片对应的原始视频文件的序号(记为OFN),以及所述虚拟切片中各个帧在原始视频文件中的字节范围开始点(记为OFNS)和所述虚拟切片的字节长度(记为OFNL)。在一个实施例中,逻辑上一个VSI为一个(VSN,VSDUR,OFN,OFNS,OFNL)五元组;依据VSI在VST中的排列顺序,记为VSIDX,从0开始;切片序号VSN本身不记录在VSI中,可以根据切片基础序号VSBN加上所述VSIDX得到。
虚拟切片数据表的每个表项记为VSD,在一个实施例中,每个VSD都是一串二进制字节,是高度紧凑表示的切片数据,每个VSD对应于VST中对应顺序的虚拟切片;VSD本质上是外部数据引用和转换命令序列,引用的外部数据包括常用数据表(记为CDT)中的常用数据以及对应OFN文件范围内的数据;通过丰富的数据引用和转换命令,可以用很小的VSD表达整个视频切片的数据。
在进一步的实施例中,所述虚拟切片信息文件还包括索引文件内容表(记为INDEX_FILE_TABLE),用于记录各个切片格式的视频索引文件内容。其中,每个切片格式可定义一个格式代码,例如,HLS格式的格式代码为‘HLS’,HDS格式的格式代码为‘HDS’,MPEG-DASH格式的格式代码为‘DASH’。每个格式代码可关联一串字节,字节的内容为对应格式的视频索引文件的内容;视频切片文件名格式为<虚拟切片信息文件名>.VSN.格式扩展名,视频索引文件的文件名格式为<虚拟切片信息文件名>.格式扩展名。以video.mp4.vseg为例,HLS的索引文件名为video.mp4.vseg.m3u8,HLS的切片文件名为video.mp4.vseg.1.ts,HDS的索引文件名为video.mp4.vseg.f4m,HDS的切片文件名为video.mp4.vseg.1.f4f,MPEG-DASH的索引文件名为video.mp4.vseg.mpd,MPEG-DASH的切片文件名为video.mp4.vseg.1.m4s。这些文件实际上不存在,是虚拟的文件。
进一步地,本发明还包括:第二接收单元,用于第一服务器接收终端发送的视频索引文件的获取请求;第二获取单元,用于第一服务器基于该获取请求向第二服务器回源请求对应的虚拟切片信息文件;第二发送单元,用于第二服务器将对应的虚拟切片信息文件发送至第一服务器;加载单元,用于第一服务器加载并解析所述虚拟切片信息文件得到相应的视频索引文件;第二反馈单元,用于第一服务器将所述视频索引文件返回至终端。
在第一服务器基于该获取请求向第二服务器回源请求对应的虚拟切片信息文件之前,第一服务器还可以在缓存系统中查找所述虚拟切片信息文件;若未查找到,则向第二服务器回源请求并缓存所述虚拟切片信息文件。例如,第一服务器在接收到<文件名>.vseg.m3u8,<文件名>.vseg.mpd或者<文件名>.vseg.f4m的文件请求时,可将URI中的文件名部分替换为<文件名>.vseg,计算新的URI的key,从缓存系统中检查所述key的缓存文件是否存在,如果不存在则回源请求并缓存所述.vseg文件,进而加载所述.vseg文件将INDEX_FILE_TABLE中对应格式的索引文件内容响应给请求方。
在一个实施例中,所述虚拟切片信息文件还包括用于记录原始视频标识信息的标识信息列表、用于对切片进行标识的切片基础序号,以及常用数据表,所述常用数据表用于定义在虚拟切片转化成实际视频切片时重复使用的数据。其中,标识信息列表可选地为记录原始视频文件名的原始视频文件名列表(记为OFT),每个原始视频文件按在原始视频文件名列表中的顺序序号进行标识,这个序号记为OFN,OFN从0开始计数,第一个为0,第二个为1依次类推。切片基础序号(记为VSBN)是索引文件中的第一切片的序号,后续的切片序号依次+1;当太旧的切片文件需要从索引列表中移除时,切片基础序号需要更新到第一个未被移除的切片的序号,整个直播过程中,切片序号要连续递增,每个切片序号要唯一标识一个视频切片。常用数据表(记为CDT),每个表项记为CDI,CDI为一串字节,CDI由在CDT中顺序序号标识,记为CDIDX,从0开始。
在一个实施例中,第一服务器在收到视频切片获取请求时,可以在缓存系统中查找所述虚拟切片信息文件;若未查找到,则向第二服务器回源请求并缓存所述虚拟切片信息文件。
在另一个实施例中,第一服务器在收到视频切片获取请求时,还可以在缓存系统中查找所述视频片段;若未查找到,则向第二服务器回源请求并缓存所述视频片段。
在一个实施例中,所述第一服务器基于该获取请求向第二服务器回源请求对应的虚拟切片信息文件的步骤之前,还可以在缓存系统中查找所述视频片段;若未查找到,则回源请求并缓存所述视频片段。
进一步地,第一服务器在缓存系统中查找虚拟切片信息文件时,可以基于所述视频切片获取请求或视频索引文件获取请求得到虚拟切片信息文件的路径;计算所述虚拟切片信息文件路径的哈希值;通过所述哈希值查询该虚拟切片信息文件是否存在于缓存系统中。
进一步地,第一服务器在缓存系统中查找所述视频片段时,可以加载并解析所述虚拟切片信息文件;基于所述视频切片获取请求得到所述视频切片对应的切片序号和切片格式;根据所述切片序号确定所述视频切片在虚拟切片信息表中对应的表项,以及根据所述切片格式确定所述视频切片在虚拟切片数据表中对应的表项;查询所述在虚拟切片信息表中对应的表项指明的原始视频文件中的数据范围是否存在于缓存系统中。
发送单元203,用于第二服务器将预先生成的虚拟切片信息文件和对应的原始视频文件中的视频片段发送至第一服务器;
其中,第二服务器可以预先生成虚拟切片信息文件。具体地,第二服务器在接收到完整的视频文件之后,对所述视频文件进行扫描解析;第二服务器对扫描解析后的视频文件进行虚拟切片操作,生成所述虚拟切片信息文件。
对于点播,音视频数据是存储在一个原始视频文件中的,对于直播,只有输入的流式帧,第二服务器需要把流式的音视频按照预设的切片时长,把音视频帧保存到一个“格式中立(即无特定格式)的切片文件”,这个文件即是直播的“原始视频文件”。具体地,可以将直播的音视频帧按照配置的切片时间间隔,在最靠近所述切片时间间隔的关键帧位置切片保存为格式中立的切片文件;将所述格式中立的切片文件作为原始视频文件。对于直播,由于会对太旧的切片文件进行移除,因此需要根据所述格式中立的切片文件更新所述虚拟切片信息文件。此时需要移除掉.vseg文件中对应的OFT表项、VST表项、没有被引用的CDT表项、VSDT表项、以及更新VSBN和INDEX_FILE_TABLE;对于直播,OFT表中包含所有当前未移除的所述格式中立的切片文件的文件名。
切片单元204,用于第一服务器根据所述虚拟切片信息文件中的信息对所述视频片段进行切片处理;
在一个实施例中,本发明的切片单元204包括:加载模块,用于加载并解析所述虚拟切片信息文件;切片信息获取模块,用于基于所述视频切片获取请求得到所述视频切片对应的切片序号和切片格式;定位模块,用于根据所述切片序号和切片格式定位虚拟切片数据表中相应的表项;转换模块,用于执行所述表项中的数据引用和转换命令序列,将所述视频片段转换成相应切片格式的视频切片。
如果缓存系统中不存在对应的文件,第一服务器则回源请求并缓存所述.vseg文件,进而加载所述.vseg文件,根据所请求的格式和序号,定位到虚拟切片数据表的表项。进一步地,第一服务器可以执行所述视频切片获取请求对应的虚拟切片数据表中的数据引用和转换命令序列,将所述视频切片获取请求对应的虚拟切片数据表展开,转换成对应格式的视频切片;根据所述虚拟切片信息表对[OFNS,OFNS+OFNL)范围的原始视频文件进行切片处理,并返回将所述视频切片获取请求对应的虚拟切片数据表展开的步骤,直到所述视频切片获取请求对应的虚拟切片数据表展开完毕;其中,OFNS为所请求的原始视频文件的字节范围开始点,OFNL为所请求的原始视频文件的字节长度。在加载数据时,可以通过HTTP的Range请求加载到缓存系统中,进而继续所述VSD的展开操作,直到展开完毕,将展开后的数据响应给请求方;为了提高响应速度,实现上也可以边展开VSD边响应数据给请求方。
反馈单元205,用于第一服务器将生成的视频切片反馈至终端。
终端可以根据从第一服务器获取到的视频切片播放视频。
本发明的视频切片传输装置与本发明的视频切片传输方法一一对应,在上述视频切片传输方法的实施例阐述的技术特征及其有益效果均适用于视频切片传输装置的实施例中,特此声明。
如图3所示,在一个实施例中,本发明还提供一种视频切片传输系统,可包括视频服务器301、缓存服务器302和终端303,其特征在于,其中,所述视频服务器用于执行上述任一实施例的视频切片传输方法中由第二服务器执行的步骤,所述缓存服务器用于执行上述任一实施例的视频切片传输方法中由第一服务器执行的步骤。
所述缓存服务器302接收终端发送的视频切片获取请求。在一个实施例中,所述视频切片获取请求可以是一个URL(Uniform Resource Locator,统一资源定位符),解析该URL可以获取切片序号和切片格式等信息。目标切片格式可以是HLS(HTTP LiveStreaming,HTTP直播数据流),HDS(HTTP Dynamic Streaming,HTTP动态数据流),MPEG(Moving Picture Experts Group,动态图像专家组)-DASH(Dynamic Adaptive Streamover HTTP,基于HTTP的动态自适应流)等格式。
所述虚拟切片信息文件中可包括一个虚拟切片信息表(记为VST)和多个虚拟切片数据表(记为VSDT),所述虚拟切片信息表用于记录所述原始视频文件对应的各个视频的虚拟切片的切片信息;所述多个虚拟切片数据表分别记录用于生成不同切片格式的视频切片对应的转换信息,其中一种格式对应一个虚拟切片数据表。
其中,所述虚拟切片信息表包括若干个表项,每个表项对应一个虚拟切片的信息(记为VSI),所述虚拟切片的信息包括所述虚拟切片的切片序号(记为VSN)、所述虚拟切片的切片时长(记为VSDUR)、所述虚拟切片对应的原始视频文件的序号(记为OFN),以及所述虚拟切片中各个帧在原始视频文件中的字节范围开始点(记为OFNS)和所述虚拟切片的字节长度(记为OFNL)。在一个实施例中,逻辑上一个VSI为一个(VSN,VSDUR,OFN,OFNS,OFNL)五元组;依据VSI在VST中的排列顺序,记为VSIDX,从0开始;切片序号VSN本身不记录在VSI中,可以根据切片基础序号VSBN加上所述VSIDX得到。
虚拟切片数据表的每个表项记为VSD,在一个实施例中,每个VSD都是一串二进制字节,是高度紧凑表示的切片数据,每个VSD对应于VST中对应顺序的虚拟切片;VSD本质上是外部数据引用和转换命令序列,引用的外部数据包括常用数据表(记为CDT)中的常用数据以及对应OFN文件范围内的数据;通过丰富的数据引用和转换命令,可以用很小的VSD表达整个视频切片的数据。
在进一步的实施例中,所述虚拟切片信息文件还包括索引文件内容表(记为INDEX_FILE_TABLE),用于记录各个切片格式的视频索引文件内容。其中,每个切片格式可定义一个格式代码,例如,HLS格式的格式代码为‘HLS’,HDS格式的格式代码为‘HDS’,MPEG-DASH格式的格式代码为‘DASH’。每个格式代码可关联一串字节,字节的内容为对应格式的视频索引文件的内容;视频切片文件名格式为<虚拟切片信息文件名>.VSN.格式扩展名,视频索引文件的文件名格式为<虚拟切片信息文件名>.格式扩展名。以video.mp4.vseg为例,HLS的索引文件名为video.mp4.vseg.m3u8,HLS的切片文件名为video.mp4.vseg.1.ts,HDS的索引文件名为video.mp4.vseg.f4m,HDS的切片文件名为video.mp4.vseg.1.f4f,MPEG-DASH的索引文件名为video.mp4.vseg.mpd,MPEG-DASH的切片文件名为video.mp4.vseg.1.m4s。这些文件实际上不存在,是虚拟的文件。
进一步地,缓存服务器302接收终端发送的视频索引文件的获取请求;缓存服务器302基于该获取请求向视频服务器301回源请求对应的虚拟切片信息文件;视频服务器301将对应的虚拟切片信息文件发送至缓存服务器302;缓存服务器302加载并解析所述虚拟切片信息文件得到相应的视频索引文件;缓存服务器302将所述视频索引文件返回至视频播放终端303。
在缓存服务器302基于该获取请求向视频服务器301回源请求对应的虚拟切片信息文件的步骤之前,缓存服务器302还可以在缓存系统中查找所述虚拟切片信息文件;若未查找到,则向视频服务器301回源请求并缓存所述虚拟切片信息文件。例如,缓存服务器302在接收到<文件名>.vseg.m3u8,<文件名>.vseg.mpd或者<文件名>.vseg.f4m的文件请求时,可将URI中的文件名部分替换为<文件名>.vseg,计算新的URI的key,从缓存系统中检查所述key的缓存文件是否存在,如果不存在则回源请求并缓存所述.vseg文件,进而加载所述.vseg文件将INDEX_FILE_TABLE中对应格式的索引文件内容响应给请求方。
在一个实施例中,所述虚拟切片信息文件还包括用于记录原始视频标识信息的标识信息列表、用于对切片进行标识的切片基础序号,以及常用数据表,所述常用数据表用于定义在虚拟切片转化成实际视频切片时重复使用的数据。其中,标识信息列表可选地为记录原始视频文件名的原始视频文件名列表(记为OFT),每个原始视频文件按在原始视频文件名列表中的顺序序号进行标识,这个序号记为OFN,OFN从0开始计数,第一个为0,第二个为1依次类推。切片基础序号(记为VSBN)是索引文件中的第一切片的序号,后续的切片序号依次+1;当太旧的切片文件需要从索引列表中移除时,切片基础序号需要更新到第一个未被移除的切片的序号,整个直播过程中,切片序号要连续递增,每个切片序号要唯一标识一个视频切片。常用数据表(记为CDT),每个表项记为CDI,CDI为一串字节,CDI由在CDT中顺序序号标识,记为CDIDX,从0开始。
在一个实施例中,缓存服务器302在收到视频切片获取请求时,可以在缓存系统中查找所述虚拟切片信息文件;若未查找到,则向视频服务器301回源请求并缓存所述虚拟切片信息文件。
在另一个实施例中,缓存服务器302在收到视频切片获取请求时,还可以在缓存系统中查找所述视频片段;若未查找到,则向视频服务器301回源请求并缓存所述视频片段。
在一个实施例中,所述缓存服务器302基于该获取请求向视频服务器301回源请求对应的虚拟切片信息文件的步骤之前,还可以在缓存系统中查找所述视频片段;若未查找到,则向视频服务器301回源请求并缓存所述视频片段。
进一步地,缓存服务器302在缓存系统中查找虚拟切片信息文件时,可以基于所述视频切片获取请求或视频索引文件获取请求得到虚拟切片信息文件的路径;计算所述虚拟切片信息文件路径的哈希值;通过所述哈希值查询该虚拟切片信息文件是否存在于缓存系统中。
进一步地,缓存服务器302在缓存系统中查找所述视频片段时,可以加载并解析所述虚拟切片信息文件;基于所述视频切片获取请求得到所述视频切片对应的切片序号和切片格式;根据所述切片序号确定所述视频切片在虚拟切片信息表中对应的表项,以及根据所述切片格式确定所述视频切片在虚拟切片数据表中对应的表项;查询所述在虚拟切片信息表中对应的表项指明的原始视频文件中的数据范围是否存在于缓存系统中。
其中,视频服务器301可以预先生成虚拟切片信息文件。具体地,视频服务器301在接收到完整的视频文件之后,对所述视频文件进行扫描解析;视频服务器301对扫描解析后的视频文件进行虚拟切片操作,生成所述虚拟切片信息文件。
对于点播,音视频数据是存储在一个原始视频文件中的,对于直播,只有输入的流式帧,视频服务器301需要把流式的音视频按照预设的切片时长,把音视频帧保存到一个“格式中立(即无特定格式)的切片文件”,这个文件即是直播的“原始视频文件”。具体地,可以将直播的音视频帧按照配置的切片时间间隔,在最靠近所述切片时间间隔的关键帧位置切片保存为格式中立的切片文件;将所述格式中立的切片文件作为原始视频文件。对于直播,由于会对太旧的切片文件进行移除,因此需要根据所述格式中立的切片文件更新所述虚拟切片信息文件。此时需要移除掉.vseg文件中对应的OFT表项、VST表项、没有被引用的CDT表项、VSDT表项、以及更新VSBN和INDEX_FILE_TABLE;对于直播,OFT表中包含所有当前未移除的所述格式中立的切片文件的文件名。
在一个实施例中,缓存服务器302可以加载并解析所述虚拟切片信息文件;基于所述视频切片获取请求得到所述视频切片对应的切片序号和切片格式;根据所述切片序号和切片格式定位虚拟切片数据表中相应的表项;执行所述表项中的数据引用和转换命令序列,将所述视频片段转换成相应切片格式的视频切片。
如果缓存系统中不存在对应的文件,缓存服务器302则回源请求并缓存所述.vseg文件,进而加载所述.vseg文件,根据所请求的格式和序号,定位到虚拟切片数据表的表项。进一步地,缓存服务器302可以执行所述视频切片获取请求对应的虚拟切片数据表中的数据引用和转换命令序列,将所述视频切片获取请求对应的虚拟切片数据表展开,转换成对应格式的视频切片;根据所述虚拟切片信息表对[OFNS,OFNS+OFNL)范围的原始视频文件进行切片处理,并返回将所述视频切片获取请求对应的虚拟切片数据表展开的步骤,直到所述视频切片获取请求对应的虚拟切片数据表展开完毕;其中,OFNS为所请求的原始视频文件的字节范围开始点,OFNL为所请求的原始视频文件的字节长度。在加载数据时,可以通过HTTP的Range请求加载到缓存系统中,进而继续所述VSD的展开操作,直到展开完毕,将展开后的数据响应给请求方;为了提高响应速度,实现上也可以边展开VSD边响应数据给请求方。
终端可以根据从缓存服务器302获取到的视频切片播放视频。
如图4所示,是本发明一实施例的缓存服务器响应视频索引文件的流程图,包括以下步骤:
S401:观看端发起视频索引文件请求,如/video.mp4.vseg.m3u8;
S402:缓存服务器得到请求的路径,去除.m3u8得到虚拟切片信息文件的路径/video.mp4.vseg;
S403:缓存服务器计算虚拟切片信息文件路径的哈希值key,该步骤产生的key用于查询缓存系统中是否已经存在/video.mp4.vseg文件的缓存;
S404,S405:如果该文件尚未被缓存,执行回源下载操作,将/video.mp4.vseg文件从源视频服务器中下载到缓存服务器并写入缓存系统;
S406:加载并解析/video.mp4.vseg文件;
S407,S408:从所述索引文件内容表(INDEX_FILE_TABLE)中取出HLS格式的索引文件内容响应给观看端。
如图5所示,是本发明一实施例的缓存服务器响应视频切片文件的流程图,包括以下步骤:
S501:观看端发起视频切片文件请求,如/video.mp4.vseg.0.ts;
S502:缓存服务器得到虚拟切片信息文件路径,如/video.mp4.vseg;
S503:缓存服务器计算虚拟切片信息文件路径的哈希值key,该步骤产生的key用于查询缓存系统中是否已经存在/video.mp4.vseg文件的缓存;
S504,S505:如果该文件尚未被缓存,执行回源下载操作,将/video.mp4.vseg文件从源视频服务器中下载到缓存服务器并写入缓存系统;
S506:加载并解析/video.mp4.vseg文件;
S507:根据S501的切片文件路径,得知请求的是序号为0的视频切片,格式为HLS,从虚拟切片信息文件中的虚拟切片数据表VSDT中得到VSD 0,从虚拟切片信息表VST中得到VSI 0;
S508:如果VSI 0指明的原始文件video.mp4的数据范围尚未被缓存系统缓存,则执行回源操作下载/video.mp4的指定范围,此时采用HTTP协议的Range请求头;
S509:回源下载过来的/video.mp4的指定范围文件数据写入缓存系统;
S510:执行所述虚拟切片数据VSD 0的展开命令序列,将VSD 0虚拟切片转换成最终的HLS格式的视频切片数据;
S511:将转换后得到的视频切片数据响应给观看端。
图3所示的视频直播点播系统300的工作原理如下:
视频播放终端303发起对视频索引文件的下载请求和视频切片文件的下载请求;
缓存服务器302处理视频索引文件下载请求和视频切片文件的下载请求;
所述缓存服务器302会依据所请求的视频索引文件的格式和路径,如果必要(即虚拟切片信息文件未缓存)向视频服务器301请求所述虚拟切片信息文件;
所述缓存服务器302依据观看终端所请求的视频索引文件的格式,从虚拟切片信息文件中解析对应格式的索引文件内容,响应给视频播放终端303;
所述缓存服务器302会依据所请求的视频切片文件的格式和路径,如果必要(即虚拟切片信息文件未缓存)向视频服务器301请求所述虚拟切片信息文件并缓存;
所述缓存服务器302会依据所请求的视频切片文件的格式和路径以及请求的切片序号,如果必要(即所请求的视频切片序号对应的原始文件的范围未缓存)向视频服务器301请求所述原始文件的范围数据并缓存;
所述缓存服务器302依据所述切片序号,所述虚拟切片信息文件,以及所述原始文件的范围数据,将虚拟切片数据转换成所请求格式的视频切片数据并响应给视频播放终端303;
所述视频服务器301在原始视频文件完全存储到视频服务器时,执行对原始视频文件的虚拟切片操作,产生对应的虚拟切片信息文件并存储在原始视频相同目录下;
所述视频服务器301在收到对原始视频文件的范围请求时,读取原始视频文件的所述范围的数据,以HTTP 206 Partial Content的响应码响应范围数据给请求方。
如图6所示,为本发明的一实施例的虚拟切片信息文件格式示意图。
虚拟切片信息文件600包含了原始文件名表(OFT)601,切片基础序号(VSBN)602,虚拟切片信息表(VST)603,常用数据表(CDT)604,索引文件内容表(INDEX_FILE_TABLE)605,虚拟切片数据表(VSDT)606。
所述原始文件名表(OFT)601记录了每个需要在切片过程中使用到的原始视频文件名,对于单一的点播视频,该表通常只有一项,对于直播则记录了所有的原始视频切片文件名。
所述切片基础序号(VSBN)602则记录了第一个切片文件的序号,对于点播,该数值通常为0,对于直播,该数值随着旧切片文件的移除,序号一直累加,直到32位无符号整数溢出则归0。
所述虚拟切片信息表(VST)603则记录每个虚拟切片的信息(VSI),包括:以毫秒为单位的切片时长(VSDUR),该虚拟切片所引用的原始文件的序号(OFN),以字节为单位的所引用的原始文件的开始点(OFNS),以字节为单位的所引用的原始文件的数据长度(OFNL)。
如图6,虚拟切片信息表(VST)403中有4个虚拟切片,虚拟切片0引用原始文件OFN0,即video.mp4,引用的数据范围为从67252字节开始的1048576字节数据,这个范围的数据包含了所有所述虚拟切片0转化成实际视频切片时所需要的所有音视频帧的数据。
所述常用数据表(CDT)604定义了在虚拟切片转化成实际视频切片时重复使用的一些数据,起到压缩虚拟切片数据的目的;
所述索引文件内容表(INDEX_FILE_TABLE)605存储了切片后产生的索引文件内容,示例图6中605展示的是HLS格式的索引文件内容,除了HLS索引外,本发明还支持HDS和MPEG-DASH的索引文件。
所述虚拟切片数据表(VSDT)606存储了将每个虚拟切片转换成目标视频切片的命令序列和部分数据,这些命令序列定义了如何将603中VSI对应的原始文件范围内的数据转换成目标格式的视频切片。
图7为一个实施例的VSD示意图,示例了VSD 0如何将VSI 0对应的原始文件范围的数据转换成目标格式视频切片文件,示例图中目标格式为HLS协议的TS切片文件。
701为VSI 0对应到原始文件的数据范围,从字节67252开始到1115828结束;702为所述VSD 0的示例,PAT命令指示VSD转换器在当前位置需要产生一个PAT TS PACKET;PMT命令指示在当前位置需要产生一个PMT TS PACKET;MAKE_VIDEO_TS_PACKETS指示在当前位置需要将VSI 0指明的范围内偏移0,长度74312字节的视频帧转换成PES并打包成TS PACKET,转换后结果产生443个TS PACKETS;MAKE_AUDIO_TS_PACKETS指示在当前位置需要将VSI 0指明的范围内偏移74313,长度为264字节的音频帧转换成PES并打包成TS PACKET,转换后结果产生2个TS PACKETS;不断处理后续更多指令,直到VSD 0的所有指令处理完毕,产生的所有TS PACKETS即是HLS视频切片的数据。
上述视频切片传输方法、装置和系统,通过虚拟切片信息文件,以数据引用的方式高度紧凑的表达了视频切片,使得无需对原始视频执行真实的切片操作,节省了存储空间;在缓存服务器上,除了额外传输和缓存了大小比原始视频小很多的虚拟切片信息文件外,将原始视频分段缓存到缓存系统中,从而达到缓存服务器仅从源视频服务器中传输并缓存一份原始视频的目的;请求方需要的视频切片才传输对应的原始视频片段,达到无需将整个原始视频完全缓存即可响应视频切片的目的。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。
计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种视频切片传输方法,其特征在于,包括以下步骤:
第一服务器接收终端发送的视频切片获取请求;
第一服务器基于该获取请求向第二服务器回源请求该视频切片对应的虚拟切片信息文件和原始视频文件中的视频片段;
第二服务器将预先生成的虚拟切片信息文件和对应的原始视频文件中的视频片段发送至第一服务器;
第一服务器根据所述虚拟切片信息文件中的信息对所述视频片段进行切片处理;
第一服务器将生成的视频切片返回至终端。
2.根据权利要求1所述的视频切片传输方法,其特征在于,所述第一服务器根据所述虚拟切片信息文件中的信息对所述视频片段进行切片处理的步骤包括:
加载并解析所述虚拟切片信息文件;
基于所述视频切片获取请求得到所述视频切片对应的切片序号和切片格式;
根据所述切片序号和切片格式定位虚拟切片数据表中相应的表项;
执行所述表项中的数据引用和转换命令序列,将所述视频片段转换成相应切片格式的视频切片。
3.根据权利要求1或2所述的视频切片传输方法,其特征在于,所述虚拟切片信息文件中包括一个虚拟切片信息表和多个虚拟切片数据表;
所述虚拟切片信息表用于记录所述原始视频文件对应的各个视频的虚拟切片的切片信息;
所述多个虚拟切片数据表分别记录用于生成不同切片格式的视频切片对应的转换信息,其中一种格式对应一个虚拟切片数据表。
4.根据权利要求3所述的视频切片传输方法,其特征在于,所述虚拟切片信息表包括若干个表项,每个表项对应一个虚拟切片的信息,所述虚拟切片的信息包括所述虚拟切片的切片序号、所述虚拟切片的切片时长、所述虚拟切片对应的原始视频文件的序号,以及所述虚拟切片中各个帧在原始视频文件中的字节范围开始点和所述虚拟切片的字节长度。
5.根据权利要求3所述的视频切片传输方法,其特征在于,所述虚拟切片信息文件还包括索引文件内容表,用于记录各个切片格式的视频索引文件内容。
6.根据权利要求5所述的视频切片传输方法,其特征在于,还包括以下步骤:
第一服务器接收终端发送的视频索引文件的获取请求;
第一服务器基于该获取请求向第二服务器回源请求对应的虚拟切片信息文件;
第二服务器将对应的虚拟切片信息文件发送至第一服务器;
第一服务器加载并解析所述虚拟切片信息文件得到相应的视频索引文件;
第一服务器将所述视频索引文件返回至终端。
7.一种视频切片传输装置,其特征在于,包括:
接收单元,用于第一服务器接收终端发送的视频切片获取请求;
获取单元,用于第一服务器基于该获取请求向第二服务器回源请求该视频切片对应的虚拟切片信息文件和原始视频文件中的视频片段;
发送单元,用于第二服务器将预先生成的虚拟切片信息文件和对应的原始视频文件中的视频片段发送至第一服务器;
切片单元,用于第一服务器根据所述虚拟切片信息文件中的信息对所述视频片段进行切片处理;
反馈单元,用于第一服务器将生成的视频切片反馈至终端。
8.一种视频切片传输系统,包括终端、视频服务器、缓存服务器,其特征在于,其中,所述视频服务器执行如权利要求1-6任一项所述的视频切片传输方法中由第二服务器执行的步骤,所述缓存服务器执行如权利要求1-6任一项所述的视频切片传输方法中由第一服务器执行的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1至6任一所述视频切片传输方法的步骤。
10.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至6任一所述视频切片传输方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711025793.2A CN107888941B (zh) | 2017-10-27 | 2017-10-27 | 视频切片传输方法、装置和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711025793.2A CN107888941B (zh) | 2017-10-27 | 2017-10-27 | 视频切片传输方法、装置和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107888941A true CN107888941A (zh) | 2018-04-06 |
CN107888941B CN107888941B (zh) | 2018-10-09 |
Family
ID=61782534
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711025793.2A Expired - Fee Related CN107888941B (zh) | 2017-10-27 | 2017-10-27 | 视频切片传输方法、装置和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107888941B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111031405A (zh) * | 2018-03-22 | 2020-04-17 | 贵州白山云科技股份有限公司 | 一种多媒体回播中切片文件的传输方法、装置、设备及介质 |
CN111182331A (zh) * | 2019-10-26 | 2020-05-19 | 腾讯科技(深圳)有限公司 | 媒体数据切片方法、系统及存储介质 |
CN113055455A (zh) * | 2021-03-09 | 2021-06-29 | 中国联合网络通信集团有限公司 | 文件上传方法及设备 |
CN113613032A (zh) * | 2021-08-04 | 2021-11-05 | 杭州梦视网络科技有限公司 | 一种嵌入式远程教学实验系统的视频传输方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110116491A1 (en) * | 2008-06-23 | 2011-05-19 | Akos Kovacs | Improving transmission of media streams of broadcast services in a multimedia broadcast transmission system |
CN102611690A (zh) * | 2011-12-22 | 2012-07-25 | 南京邮电大学 | 一种基于超文本传输协议流化的容器格式转化方法 |
CN105872807A (zh) * | 2016-05-16 | 2016-08-17 | 乐视控股(北京)有限公司 | 一种视频播放的方法和系统 |
CN107277081A (zh) * | 2016-04-06 | 2017-10-20 | 北京优朋普乐科技有限公司 | 流媒体数据的切片下载方法和装置、流媒体系统 |
-
2017
- 2017-10-27 CN CN201711025793.2A patent/CN107888941B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110116491A1 (en) * | 2008-06-23 | 2011-05-19 | Akos Kovacs | Improving transmission of media streams of broadcast services in a multimedia broadcast transmission system |
CN102611690A (zh) * | 2011-12-22 | 2012-07-25 | 南京邮电大学 | 一种基于超文本传输协议流化的容器格式转化方法 |
CN107277081A (zh) * | 2016-04-06 | 2017-10-20 | 北京优朋普乐科技有限公司 | 流媒体数据的切片下载方法和装置、流媒体系统 |
CN105872807A (zh) * | 2016-05-16 | 2016-08-17 | 乐视控股(北京)有限公司 | 一种视频播放的方法和系统 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111031405A (zh) * | 2018-03-22 | 2020-04-17 | 贵州白山云科技股份有限公司 | 一种多媒体回播中切片文件的传输方法、装置、设备及介质 |
CN111182331A (zh) * | 2019-10-26 | 2020-05-19 | 腾讯科技(深圳)有限公司 | 媒体数据切片方法、系统及存储介质 |
CN111182331B (zh) * | 2019-10-26 | 2021-09-28 | 腾讯科技(深圳)有限公司 | 媒体数据切片方法、系统及存储介质 |
CN113055455A (zh) * | 2021-03-09 | 2021-06-29 | 中国联合网络通信集团有限公司 | 文件上传方法及设备 |
CN113613032A (zh) * | 2021-08-04 | 2021-11-05 | 杭州梦视网络科技有限公司 | 一种嵌入式远程教学实验系统的视频传输方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107888941B (zh) | 2018-10-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107801051B (zh) | 虚拟切片信息传输方法和装置、视频服务器 | |
CN107809684B (zh) | 视频切片生成方法和装置、缓存服务器 | |
CN107888941B (zh) | 视频切片传输方法、装置和系统 | |
US10728353B2 (en) | Adaptive data streaming method with push messages control | |
US20200344200A1 (en) | Network address resolution | |
US6990526B1 (en) | Method and apparatus for web caching | |
JP6181650B2 (ja) | 送信装置、送信方法およびネットワーク装置 | |
EP3562167A1 (en) | Method for providing variant manifest file to media player for rendering content from personal over-the-top network video recorder | |
EP2624524B1 (en) | Content distribution network supporting popularity-based caching | |
US8903937B2 (en) | Apparatus and method for caching of compressed content in a content delivery network | |
Mosko et al. | All-In-One Streams for Content Centric Networks | |
CN109756757B (zh) | 直播数据处理方法及装置、直播方法及装置和直播服务器 | |
EP2091202A1 (en) | Data distributing method, data distributing system and correlative devices in edge network | |
WO2015035942A1 (en) | Method for playing back live video and device | |
EP2988518B1 (en) | System and method for all-in-one content stream in content-centric networks | |
EP2988512B1 (en) | System and method for reconstructable all-in-one content stream | |
CN105898380A (zh) | 快速启播网络视频的方法和装置 | |
US20100121914A1 (en) | Contents delivery system and method based on content delivery network provider and replication server thereof | |
CN107920072B (zh) | 一种基于数据特征的多媒体共享方法及系统 | |
WO2016107197A1 (zh) | 一种网络节目的录制方法、装置、系统以及录制节目的播放方法、装置 | |
CN108366097B (zh) | 资源访问控制方法及系统 | |
CN109587517A (zh) | 一种多媒体文件的播放方法及装置、服务器及存储介质 | |
CN109756782A (zh) | 一种资源处理方法、装置及流媒体服务器 | |
KR20050032839A (ko) | Pda를 이용한 무선 인터넷 서비스 품질 관리 시스템 및방법 | |
US11057452B2 (en) | Network address resolution |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20181009 Termination date: 20201027 |
|
CF01 | Termination of patent right due to non-payment of annual fee |