一种视频文件的缓存方法及系统与流程

文档序号:20040223发布日期:2020-02-28 11:49阅读:148来源:国知局
一种视频文件的缓存方法及系统与流程

本发明涉及视频缓存技术领域,特别是涉及一种视频文件的缓存方法及系统。



背景技术:

如今,人们乐于随时随地通过各大视频平台观看视频,例如,某些热播剧,通过视频平台观看视频已经成为大众的习惯。目前,用户在观看视频时,常常会对视频进行回顾,例如,用户发现某个视频中某一片段很有趣,想重新进行观看,就需要把进度条调整至对应位置,但是,现有技术为实现上述的回放功能,需要对整个视频重新编码,然后对重新编码后的视频进行缓存,缓存量很大,且速度很慢,难以满足用户希望尽快观看视频的需求。



技术实现要素:

本发明实施例的目的在于提供一种视频文件的缓存方法及系统,以加快用户回看视频的速度。具体技术方案如下:

第一方面,本发明实施例提供了一种视频文件的缓存方法,包括以下步骤:

获取目标视频;

对所述目标视频进行分段,得到分段信息,其中,所述分段标准为视屏长度,所述分段信息包括视频分段数量以及视频分段长度;

根据分段信息对每一段目标视频进行重新编码,得到所述每一段目标视频所对应的编码信息;

获取与所述编码信息对应的每一段视频段;

获取每一段视频段的帧,并将每一视频段的帧转换为jpg帧图片;

缓存所述jpg帧图片,以完成视频文件的缓存。

可选的,获取目标视频包括:获取用户当前播放的视频,将其作为目标视频,或者

获取用户意向播放的视频,将其作为目标视频。

可选的,对每一段目标视频进行重新编码的编码规则为h264编码标准。

可选的,缓存所述jpg帧图片为将所述jpg帧图片缓存至ram中。

可选的,根据分段信息对每一段目标视频进行重新编码,得到所述每一段目标视频所对应的编码信息包括:

根据所述分段信息获取所述当前待处理视频;

获取所述当前待处理视频的当前视频编码;

对所述当前视频编码进行解码,得到解码信息;

根据所述解码信息绘制寄存器,并根据所述寄存器进行二次编码,得到编码信息;

将所述每一段目标视频作为所述当前待处理视频,获取与所述每一段目标视频所对应的编码信息。

第二方面,本发明实施例提供了一种视频文件的缓存系统,用以实现上述方法,包括:

第一获取模块,用于获取目标视频;

分段模块,用于对所述目标视频进行分段,得到分段信息;

编码模块,用于根据分段信息对每一段目标视频进行重新编码,得到所述每一段目标视频所对应的编码信息;

分析模块,用于获取与所述编码信息对应的每一段视频段;

转换模块,用于获取每一段视频段的帧,并将每一视频段的帧转换为jpg帧图片;

缓存模块,用于缓存所述jpg帧图片,以完成视频文件的缓存。

可选的,所述编码模块包括:

第二获取子模块:用于根据所述分段信息获取所述当前待处理视频;

第三获取子模块:用于获取所述当前待处理视频的当前视频编码;

解码模块:用于对所述当前视频编码进行解码,得到解码信息;

绘制模块:用于根据所述解码信息绘制寄存器,

二次编码模块:根据所述寄存器进行二次编码,得到编码信息;

循环模块:用于将所述每一段目标视频作为所述当前待处理视频,获取与所述每一段目标视频所对应的编码信息。

本发明实施例提供的视频缓存方法及系统,获取到用户观看正在观看的视频或者用户有意向观看的视频,将上述两种类型视频作为目标视频,将目标视频分段,并对分段后的目标视频分别进行重新编码以及缓存,在缓存时,将每一段重新编码后的编码所对应的目标视频段的视频进行获取,并获取每一段目标视频的帧,将每一段所述目标视频的帧转换为jpg帧图片,缓存jpg帧图片以间接缓存上述目标视频,采用本发明实施例提供的视频缓存方法,缓存是视频格式的帧,其键帧率更高,因此,大大提高了重新读取缓存视频的速度,进而提升用户体验,满足用户希望尽快观看视频的需求。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。

图1为本发明实施例提供的一种视频文件的缓存方法流程图。

图2为本发明实施例提供的一种视频文件的缓存系统的模块连接图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。

为了提高了重新读取缓存中视频的速度,本发明实施例提供了一种视频文件的缓存方法及系统。

第一方面,请参见图1,本发明实施例所提供的本发明实施例提供了一种视频文件的缓存方法,包括以下步骤:

s101.获取目标视频。

上述目标视频可以是用户正在观看的视频,也可以是用户意向选择的视频,但是还未观看,亦或者是用户观看的视频片段,均可以作为本发明实施例中的目标视频。

s102.对所述目标视频进行分段,得到分段信息,其中,所述分段标准为视屏长度,所述分段信息包括视频分段数量以及视频分段长度。

需要说明的是,对视频分段的技术有很多种,可以利用现有的视频分割器对视频进行分段,例如,我们可以采用视频分割软件(ultravideosplitter)对视频进行分段处理,也可以使用视频分割合并工具(solveigmmvideosplitter)对视频进行分段处理,还可以是采用极速视频分割器(boilsoftvideosplitter)对视频进行分段,亦或者是使用码流自适应的技术(mpeg-dash)对视频进行分段,优选的分段方式为:使用使用码流自适应的技术对视频进行分段,所有主流浏览器都可以通过媒体源扩展支持其分段结果,例如360浏览器可以通过腾讯资源播放我们的分段结果,本发明实施例不对具体的视频分段方法进行具体限定。

在利用现有的分段工具将视频分段后,分段工具主动将分段信息上传或发送至编码装置,以使得编码装置可获得上述分段信息,其中上传或发送的方式有多种,可以是有线的数据传输,也可以是无线的数据发送,还可以是利用服务器转发,亦或者是利用中转基站对分段信息进行转发,本发明实施例不对其进行限定;

编码装置可主动向分段工具发送需求分段信息的指令或者需求信息,将其设定为编码装置重复向分段器进行发送需求分段信息的指令或者需求信息,其中重复发送之间的间隔可以是5分钟,可以是10分钟,具体的间隔时间,用户可以根据实际需求设定,分段器在接收到上述需求分段信息的指令或者需求信息后,分段器将其已分段好的视频的分段信息发送至编码装置;

分段器将编码好的视频的编码信息发送至中转服务器,中转服务器在接收到上述编码信息后,向编码装置发送接收到分段信息的指令,编码器回复上述发送接收到分段信息的指令,其回复指令可以是同意接收或不同意接收,当回复同意接收后,中转服务器向编码器发送分段信息,当回复不同意接收时,中转服务器将分段信息退回分段器,不同意接收的情况可以是编码装置当前具有重新编码的任务,或者编码器需要重新编码的分段信息较多。

s103.根据分段信息对每一段目标视频进行重新编码,得到所述每一段目标视频所对应的编码信息。

重新编码的方法是,将每一段目标视频作为当前视频段,在目标视频的编码文件中,查找当前视频段所对应的编码信息,例如,当前视频是h265编码,我们在当前视频的h265编码的文件中查找当前视频段所对应的编码,将该编码进行解码,并利用解码结果重新绘制寄存器(bbox),之后我们在根据上述寄存器,进行二次编码,我们可以将其编制成h265文件,也可以将其重新编码成h264文件,具体的二次编码方式,用户可以自行选择,例如,用户仅要求快速查看视频,则将其编制成h264文件,将h264文件转换成视频后,其分辨率较低,但是编码速度较快,用户等待时间短,在例如,用户仅要求查看高清视频,则将其编制成h265文件,将h265文件转换成视频后,其分辨率高,但是编码速度较慢,用户等待时间可能比h264文件的等待时间长,此例仅为说明,我们可以在重新编码的时间内对视频进行格式的切换,且用户可以根据切换视频的格式,来选择观看视频的质量,以此来实现在视频回放过程中,添加动态质量选择的功能。

s104.获取与所述编码信息对应的每一段视频段。

s105.获取每一段视频段的帧,并将每一视频段的帧转换为jpg帧图片。

具体的,获取每一段所述目标视频的帧的方式为使用ffmpeg从视频中获取图像帧,其中,ffmpeg是一个自由软件,可以运行音频和视频多种格式的录影、转换、流功能,包含了一个用于多个项目中音频和视频的解码器库(libavcodec),以及一个音频与视频格式转换库(libavformat),也可以是其他可以获取视频帧的方法,本发明实施例不对其进行限定,将目标视频转换为jpg帧图片的方式为使用ffmpeg将h264编码的视频流保存为jpeg图片,也可以是其他可以将目标视频转换为jpg帧图片的方式,本发明实施例不对其进行限定。

s106.缓存所述jpg帧图片,以完成视频文件的缓存。

具体的,可以使用函数库(libjpeg)对上述的jpg帧图片进行缓存,jpg是ccitt和iso定义的一种连续色调图像压缩标准。jpg是一种有损图像压缩标准,其基础是dct变换。jpg图像的压缩过程分为三步:dct计算,量化,变长编码分配。尽管ccitt定义了jpg图像压缩标准,但是却并没有为jpg定义标准的文件格式。这导致了现实世界中出现了各种各样的jpg文件格式,而一种被称为jfif的jpg文件格式逐渐成为jpg文件格式的主流,libjpeg是一个被广泛使用的jpg压缩/解压缩函数库(至少在unix类系统下是广泛使用的),它能够读写jfif格式的jpg图像文件,通常这类文件是以.jpg或者.jpeg为后缀名的。通过libjpeg库,应用程序可以每次从jpg压缩图像中读取一个或多个扫描线,而诸如颜色空间转换、降采样/增采样、颜色量化之类的工作则都由libjpeg去完成了。由此,对上述采用libjpeg函数库处理完成的视频帧进行存储,可以将上述视频帧存储至奥卡云数据库,也可以存储在其他具有存储功能的数据库中,以完成视频文件的缓存。

进一步的,获取目标视频包括:获取用户当前播放的视频,将其作为目标视频,或者获取用户意向播放的视频,将其作为目标视频。

需要说明的是,还包括对所述目标视频进行分块,以此减少需要缓存的视频帧的量,进而提高缓存效率,具体的,在实际应用中,用户在观看视频时,观看进度到了25分钟的时间点,而整个视频有130分钟,此时,我们就要对这150分钟的视频进行分块,例如,我们将每15分钟的视频作为一个块,即0-15分钟为一块,15-30分钟为一块,30-45分钟为一块,45-60分钟为一块,60-75分钟为一块,75-90分钟为一块,90-105分钟为一块,105-130分钟为一块,我们便需要获取当前时间所在的块,即15-30分钟的块,以及与15-30分钟的块相邻的两个块,即0-15分钟的块和30-45分钟的块,此时,我们便将0-15分钟的块、15-30分钟的块、30-45分钟的块分别作为所述目标视频,采用上述s102-s106的步骤中的方法对目标视频进行处理。

具体的,目标视频可以是用户当前播放的视频,也可以是用户意向观看的视频,可以将用户意向观看的视频采用上述s102-s106的步骤中的方法对目标视频进行处理。

进一步的,对每一段目标视频进行重新编码的编码规则为h264编码标准。

进一步的,缓存所述jpg帧图片为将所述jpg帧图片缓存至ram中。

具体的,利用现有的转换工具将jpg帧图片进行格式转换,将jpg格式转换成ram格式,将ram格式的文件存储于ram中,其中,ram为半导体存储器,ram有两大类,一种称为静态ram(staticram/sram),当数据被存入其中后不会消失。sram速度非常快,是目前读写最快的存储设备了。当这个sram单元被赋予0或者1的状态之后,它会保持这个状态直到下次被赋予新的状态或者断电之后才会更改或者消失。但是存储1bit的信息需要4-6只晶体管。另一种称为动态ram(dynamicram/dram),dram必须在一定的时间内不停的刷新才能保持其中存储的数据。dram只要1只晶体管就可以实现。dram保留数据的时间很短,速度也比sram慢,本发明实施例中,可以采用sram,也可以采用dram,优选为sram,采用sram可以更快的对文件进行存储,以至于用户在观看时可以更快的从存储中获得已存储的视频帧文件,进而用户可以顺利观看视频,以提升用户体验。

可选的,依据所述分段信息对每一段目标视频进行重新编码,包括:根据所述分段信息获取所述当前待处理视频;获取所述当前待处理视频的当前视频编码;对所述当前视频编码进行解码,得到解码信息;根据所述解码信息绘制寄存器,并根据所述寄存器进行二次编码,得到编码信息;将所述每一段目标视频作为所述当前待处理视频,获取与所述每一段目标视频所对应的编码信息。

具体的,如果当前视频编码为h265,我们从当前视频的编码文件中找到当前待处理视频所对应的编码段,将其进行解码,并将解码结果绘制成寄存器(bbox),利用上述寄存器进行二次编码,此时,我们编码规则可以是h265,也可以是h265,亦或者是其他编码规则,本实施例不对二次编码的规则进行限定,采用预设规则对寄存器进行二次编码后,便得到了该待处理视频所对应的编码信息,采用本发明实施例所提供的的方法,实现了不妥协的视频流服务,在二次编码的过程中,通过选择不同的编码规则,将该不同的编码规则反馈至用户,便是用户可以自行选择视频的动态质量,以提高用户观看视频的体验。

第二方面,请参见图2,本发明实施例提供了一种视频文件的缓存系统,用以实现上述方法,包括:

第一获取模块,用于获取目标视频;

分段模块,用于对所述目标视频进行分段,得到分段信息;

编码模块,用于根据分段信息对每一段目标视频进行重新编码,得到所述每一段目标视频所对应的编码信息;

分析模块,用于获取与所述编码信息对应的每一段视频段;

转换模块,用于获取每一段视频段的帧,并将每一视频段的帧转换为jpg帧图片;

缓存模块,用于缓存所述jpg帧图片,以完成视频文件的缓存。

可选的,所述编码模块包括:

第二获取子模块:用于根据所述分段信息获取所述当前待处理视频;

第三获取子模块:用于获取所述当前待处理视频的当前视频编码;

解码模块:用于对所述当前视频编码进行解码,得到解码信息;

绘制模块:用于根据所述解码信息绘制寄存器,

二次编码模块:根据所述寄存器进行二次编码,得到编码信息;

循环模块:用于将所述每一段目标视频作为所述当前待处理视频,获取与所述每一段目标视频所对应的编码信息。

本发明实施例提供的视频缓存方法及系统,获取到用户观看正在观看的视频或者用户有意向观看的视频,将上述两种类型视频作为目标视频,将目标视频分段,并对分段后的目标视频分别进行重新编码以及缓存,在缓存时,将每一段重新编码后的编码所对应的目标视频段的视频进行获取,并获取每一段目标视频的帧,将每一段所述目标视频的帧转换为jpg帧图片,缓存jpg帧图片以间接缓存上述目标视频,采用本发明实施例提供的视频缓存方法,缓存是视频格式的帧,其键帧率更高,因此,大大提高了重新读取缓存视频的速度,进而提升用户体验,满足用户希望尽快观看视频的需求。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1