一种用于手机非编剪辑短视频的缓存映像方法
技术领域
本发明涉及视频编辑
技术领域
,尤其涉及一种用于手机非编剪辑短视频的缓存映像方法。背景技术
随着移动互联网视频业务的快速增长,广电行业的新闻采访人员需要在办公室以外的场景创作视频业务,基于手机非编客户端进行剪辑,在剪辑的过程中会需要通过移动网络访问台内的媒体资源,而当前我国的互联网环境稳定性还不是十分可靠,带宽时高时低,网速时快时慢,当台内媒体文件较大或当前网络环境不佳时,如何能高效流畅的对网络资源进行剪辑,是本发明的克服的重点。
目前常用的云素材剪辑方法,是将整体个文件完好无损的下载完成后,才能进行编辑,这种方法虽然也能满足实际应用,但对网络环境要求较高,特别是高清文件下的使用,但效率低下,网上获取数据,流量会数倍,甚至几十倍于文件本身的大小,且用户体验不佳,在非线性编辑过程中容易出现卡顿现象。
发明内容
本发明的目的在于克服现有技术的不足,提供一种用于手机非编剪辑短视频的缓存映像方法。
本发明的目的是通过以下技术方案来实现的:
一种用于手机非编剪辑短视频的缓存映像方法,包括以下步骤:
步骤一:在本地生成一个音视频文件的映像文件和一个索引文件index,索引文件index用于快速查找编辑所需数据在本地是否已经存在;
步骤二:定位或播放,获取文件数据时,先查询本地是否存在该文件数据,若本地存在该文件数据,则从本地读取文件数据来进行解析和解码;若本地不存在该文件数据,则通过网络获取该文件数据来进行解析和解码,并根据网络获取的文件数据来填充本地音视频文件的映像文件和索引文件index。
具体的,方法还包括:如果手机非编系统处于空闲时,系统会启动一个后台数据修复线程,将映像文件中缺失的数据自动补上。如果完全补上,则后续的编辑过程则无需再从网上获取数据。
具体的,方法还包括:当将某一个音视频文件播放一遍或完全逐帧定位一遍后,手机非编系统也无需从网上取该文件数据。
具体的,从本地读取文件数据来进行解析和解码过程具体包括:打开一个音视频文件,1)probe基本信息,根据基本信息,来打开不同的decoder;2)读取头文件,根据头文件信息,打开解析器和解码器;3)读取数据,解析数据,把不同流[stream]的数据分开,判断数据的有效性,然后分别送入不同的解码器;4)在解码器中,解出原始数据,根据用户使用需要将视频进行旋转、缩放或格式转换。
具体的,根据网络获取的文件数据来填充本地音视频文件的映像文件和索引文件index过程具体包括:打开网络获取的音视频文件,在本地也创建一个与音视频文件同样大小的cache映像文件,数据为空,同时创建一个索引文件index,用以标注数据在本地是否存在;
文件数据解析或解码读取音视频文件时都读取数据32768个字节,获取数据时,先查询索引文件index,如果本地存在相同文件数据,则从本地读取;如果本地不存在相同文件数据,则通过网络读取,同时把这份读取的数据写入cache映像文件,该cache映像文件位置等同于源文件,同时在索引文件index中记录下该位置的数据已经存在;
空闲填充,在计算机空闲时,根据索引文件index的记录,将本地不存在的文件数据,通过http读取,并将读取的文件数据直接填充到cache映像文件中,最后在索引文件index中标注该数据在本地已存在。
本发明的有益效果:
1.本发明缓存消耗的流量稍大于或等于音视频文件的大小,而如果不采用本发明的方法,每一次任何操作,都需要从网上获取数据,流量会数倍,甚至几十倍于文件本身的大小。
2.本地数据的读取速度数倍于通过互联网读取数据,明显减少了非线性编辑过程中的卡顿现象。
3.提升了用户非编剪辑短视频的使用体验。
附图说明
图1是本发明的方法流程图。
图2是本发明的数据流流向图。
具体实施方式
为了对本发明的技术特征、目的和效果有更加清楚的理解,现对照附图说明本发明的具体实施方式。
本实施例中,现有的手机非编系统有时需要编辑通过http的方式编辑音视频文件,传统编辑过程的方式如下:
(1.1)逐帧定位,需要先通过http连接服务器文件,然后得到需要的数据,解码。
(1.2)播放,在逐帧定位的基础上,继续通过http从服务器上取数据,然后解码播放。
上述编辑过程存在以下问题:非线性编辑的操作过程中,定位和播放的时候非常多,每一次定位都需要http重新连接,从服务器通过http获取数据。通过http获取数据比传统的网络共享或直接本地文件慢得多,如果通过互联网更慢,可能还需要网络流量的额外开销.而且在编辑过程中,往往又会在一段音视频素材上反复定位播放。而http重新连接效率特别慢,因为tcp/ip连接需要3次握手操作,这种编辑方式无疑增加了编辑的流量消耗和数据读取时间,且用户使用体验不好。
本发明的改进点在于,在解码程序中增加了一个文件缓存,包括映像文件及其索引。如图1和图2所示,改进后用于手机非编剪辑短视频的缓存映像方法,其工作流程为:
步骤一:在本地生成一个音视频文件的映像文件和一个索引文件index,索引文件index用于快速查找编辑所需数据在本地是否已经存在;
步骤二:定位或播放,获取文件数据时,先查询本地是否存在该文件数据,若本地存在该文件数据,则从本地读取文件数据来进行解析和解码;若本地不存在该文件数据,则通过网络获取该文件数据来进行解析和解码,并根据网络获取的文件数据来填充本地音视频文件的映像文件和索引文件index。
此外,如果手机非编系统处于空闲时,系统会启动一个后台数据修复线程,将映像文件中缺失的数据自动补上。如果完全补上,则后续的编辑过程则无需再从网上获取数据。
当将某一个音视频文件播放一遍或完全逐帧定位一遍后,手机非编系统也无需从网上取该文件数据。
本发明中,从本地读取文件数据来进行解析和解码过程包括:打开一个音视频文件,1.probe基本信息,根据基本信息,来打开不同的decoder。2.读取头文件,根据头文件信息,打开解析器和解码器。3.读取数据,解析数据,把不同流[stream]的数据分开,判断数据的有效性,如是否有缺失等,然后分别送入不同的解码器。4.在解码器中,解出原始数据,根据需要,视频如果需要旋转则旋转,需要缩放则缩放,需要转换成不同格式则转换。音频统一转换为48赫兹的PCM等方便其他程序调用。
本发明中,根据网络获取的文件数据来填充本地音视频文件的映像文件和索引文件index过程包括:第一次打开一个网上的音视频文件,在本地也创建一个同样大小的cache文件,数据为空,同时也创建一个index,用以标注数据是否在本地存在。以后,每次解析或解码读取音视频文件时都读取数据32768个字节,获取数据时,先看index文件[该文件标注了该数据本地是否存在],如果本地存在,则从本地读取,如果本地不存在,则在网上读取,同时把这份数据写入cache文件,位置等同于源文件,同时也在index中记录下该位置的数据已经存在,下次再读取时,就不会再从互联网上读取数据,而是本地读取,本地读取更加快捷,也更节约网络流量。
空闲填充,在计算机空闲时,根据index的记录,把本地还没有的数据,通过http读取,直接填充cache文件,并在index文件中标注该数据已经在本地存在了。
以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护的范围由所附的权利要求书及其等效物界定。
- 上一篇:石墨接头机器人自动装卡簧、装栓机
- 下一篇:基于redis的云回放索引服务方法及系统