CN106101596A - 一种视频存储方法和装置 - Google Patents
一种视频存储方法和装置 Download PDFInfo
- Publication number
- CN106101596A CN106101596A CN201610669632.6A CN201610669632A CN106101596A CN 106101596 A CN106101596 A CN 106101596A CN 201610669632 A CN201610669632 A CN 201610669632A CN 106101596 A CN106101596 A CN 106101596A
- Authority
- CN
- China
- Prior art keywords
- frame
- video
- storage card
- write
- internal memory
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/76—Television signal recording
- H04N5/91—Television signal processing therefor
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/76—Television signal recording
Abstract
本发明适用于存储领域,提供了一种视频存储方法和装置,旨在解决现有技术不支持将高分辨率的视频实时录制到外置存储卡上。所述方法包括:获取存储卡的写速度和视频平均码率;若存储卡的写速度与视频平均码率的比值在预设的重组范围内,则对实时录制的视频进行数据重组,使得视频中满足预设的重组条件的帧被写入内存,并满足预设的重组条件的帧在被转换为更小数据量的帧后与视频中的其他帧一起被实时写入存储卡。本发明的技术方案采用内存与外置存储卡结合存储的方式,实现对视频的动态重组,减少了写入存储卡的视频数据量,提高了将视频数据写入存储卡的速度,使得高分辨率的视频可以被实时录制到低速的外置存储卡中。
Description
技术领域
本发明涉及存储领域,尤其涉及一种视频存储方法和装置。
背景技术
目前,各种数码设备和智能终端等设备都已经可以录制1080P,甚至4K级别的高分辨率视频,由于这些视频的码率较大,如实际项目中测试发现4K级别的视频的码率可以达到5MB/s甚至更高,通常这些高分辨率的视频都是存储在内存中,如flash内存,虽然设备内部的flash内存有很高的读写速度,可以录制4K甚至更高分辨率的视频,但是flash内存空间一般相对较小,且不可以扩展,很容易被视频占满,影响设备的整个系统的运行速度。
与此同时,外置的存储卡由于其容量大,可以存放大量的音视频文件,被广泛使用在各种数码设备和智能终端等设备上,但是外置的存储卡的读写速度相对于内存的读写速度来说比较低,以SD卡(Secure Digital Memory Card,安全数码卡)为例,class4速率级别的SD卡的写速度实际测试仅为3MB/S。
因此,由于外置存储卡较低的写入速度,导致了无法将高分辨率的视频实时录制到低速的外置存储卡中。
发明内容
本发明的目的在于提供一种视频存储方法和装置,旨在解决现有技术不支持将高分辨率的视频实时录制到低速的外置存储卡中。
本发明的第一方面,提供一种视频存储方法,包括:
获取存储卡的写速度和视频平均码率;
若所述存储卡的写速度与所述视频平均码率的比值在预设的重组范围内,则对实时录制的视频进行数据重组,使得所述视频中满足预设的重组条件的帧被写入内存,并且所述满足预设的重组条件的帧在被转换为更小数据量的帧后与所述视频中的其他帧一起被实时写入所述存储卡。
本发明的第二方面,提供一种视频存储装置,包括:
获取模块,用于获取存储卡的写速度和视频平均码率;
重组模块,用于若所述存储卡的写速度与所述视频平均码率的比值在预设的重组范围内,则对实时录制的视频进行数据重组,使得所述视频中满足预设的重组条件的帧被写入内存,并且所述满足预设的重组条件的帧在被转换为更小数据量的帧后与所述视频中的其他帧一起被实时写入所述存储卡。
本发明与现有技术相比存在的有益效果是:通过判断当存储卡的写速度与视频平均码率的比值在预设的重组范围内时,对实时录制的视频进行数据重组,使得视频中满足预设的重组条件的帧被写入内存的同时被转换为更小数据量的帧,并与视频中的其他帧一起被实时写入所述存储卡,采用内存与外置存储卡结合存储的方式,实现对视频的动态重组,减少了写入存储卡的视频数据量,提高了将视频数据写入存储卡的速度,使得高分辨率的视频可以被实时录制到低速的外置存储卡中。
附图说明
图1是本发明实施例一提供的一种视频存储方法的流程图;
图2是本发明实施例二提供的一种视频存储方法的流程图;
图3是本发明实施例三提供的一种视频存储装置的结构示意图;
图4是本发明实施例四提供的一种视频存储装置的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
以下结合具体附图对本发明的实现进行详细的描述。
实施例一:
图1是本发明实施例一提供的一种视频存储方法的流程图,具体包括步骤S101至S102,详述如下:
S101、获取存储卡的写速度和视频平均码率。
存储卡为外置存储卡,其具体可以是SD卡。存储卡的写速度是指写入存储卡的数据的平均写入速度。
具体地,可以通过如下方法获取存储卡的写速度:
向存储卡一次性写入X个字节的数据,并统计出写入X个字节的数据需要的时间为T秒,则存储卡的写速度SWsd可以通过公式SWsd=X/T计算得到,其单位为字节/秒。
码率即比特率,是指每秒传送的比特(Bit)数,比特率的单位为bps(Bit PerSecond),比特率越高,传送数据的速度越快。
具体地,可以通过如下方法获取视频平均码率:
首先,对尚未录制过任何视频的新设备而言,通过对每种格式的视频分别录制一段视频文件,获取视频文件的大小和录制时长,计算视频文件的大小与录制时长的比值得到每一种视频格式下的预估码率BR0。
视频平均码率BRt的初始值即为预估码率BR0。
在每次视频录制过程中,可以对视频平均码率BRt进行实时动态刷新,通过计算已经录制的文件大小与已经录制的时长的比值得到实时的视频平均码率BRt。
当视频录制结束后,根据当前的视频平均码率BRt对预估码率BR0进行调整,具体的调整公式为:BR0'=(BRt+BR0)/2,其中,BR0'为调整后的预估码率。
在下一次视频录制开始前,视频平均码率BRt的初始值即为调整后的预估码率BR0'。
S102、若存储卡的写速度与视频平均码率的比值在预设的重组范围内,则对实时录制的视频进行数据重组,使得实时录制的视频中满足预设的重组条件的帧被写入内存,并且满足预设的重组条件的帧在被转换为更小数据量的帧后与视频中的其他帧一起被实时写入存储卡。
具体地,通过判断存储卡的写速度SWsd与视频平均码率BRt的比值是否在预设的重组范围内来决定是否需要对实时录制的视频进行数据重组。
如果SWsd/BRt的值过小,即写入存储卡的数据的写入速度远远低于视频的平均码率,导致写入存储卡的数据量很小,此时将视频直接录制到存储卡已经没有意义,因此在内存有空闲空间的情况下可以直接将视频直接录制在内存中,其中,内存可以是flash内存。
如果SWsd/BRt的值很大,即写入存储卡的数据的写入速度远远超过视频的平均码率,说明存储卡的写速度已经足够满足将视频实时录制到存储卡中,因此在存储卡有空闲空间的情况下可以直接将视频录制到存储卡中,如果存储卡没有空闲空间并且内存有空闲空间时,可以直接将视频录制到内存中。
当SWsd/BRt的值在预设的重组范围内时,需要对实时录制的视频进行数据重组。预设的重组范围可以设置为(TH0,TH1),其中,TH0为小于1的数,TH1为大于1的数,即当SWsd/BRt的值大于TH0并且小于TH1时认为SWsd/BRt的值在预设的重组范围内,通常TH0可以设置为0.8,TH1可以设置为1.2,但并不限于此,预设的重组范围(TH0,TH1)可以根据实际情况进行设置,此处不做限制。
需要说明的是,当SWsd/BRt的值为1时,写入存储卡的数据的写入速度与视频的平均码率相同,从理论上来说此时存储卡的写速度正好可以满足将视频实时录制到存储卡中,但是由于码率会存在波动,视频平均码率BRt的值会发生变化,因此为了避免由于码率波动导致视频数据无法及时写入到存储卡中的情况,通过设置重组范围,使得当SWsd/BRt的值在1的附近范围内时对视频进行数据重组,从而确保视频可以被实时录制到存储卡中。
数据重组的过程包括将实时录制的视频中满足预设的重组条件的帧写入内存,同时将满足重组条件的帧转换为更小数据量的帧后与视频中的其他帧一起写入存储卡中。
预设的重组条件可以根据实际情况进行设置,例如可以设置为每隔固定数量的帧选择一帧或者几帧,使得可以均匀地将满足重组条件的帧写入内存中,但并不限于此,此处不做限制。
将满足重组条件的帧转换为更小数据量的帧后与视频中的其他帧一起写入存储卡,可以减少写入存储卡的视频数据量,确保视频可以被实时录制到存储卡中。但由于这种转换,虽然录制到存储卡中的视频可以播放,但视频质量可能会受到影响,因此将满足重组条件的帧写入内存,使得视频录制完成后可以将写入内存的帧复原到存储卡的视频中。
本实施例中,当存储卡的写速度与视频平均码率的比值在预设的重组范围内,对实时录制的视频进行数据重组,使得视频中满足预设的重组条件的帧被写入内存的同时被转换为更小数据量的帧,并与视频中的其他帧一起被实时写入所述存储卡,采用内存与外置存储卡结合存储的方式,实现对视频的动态重组,减少了写入存储卡的视频数据量,提高了将视频数据写入存储卡的速度,使得高分辨率的视频可以被实时录制到低速的外置存储卡中。
图2是本发明实施例二提供的一种视频存储方法的流程图,具体包括步骤S201至S206,详述如下:
S201、获取存储卡的写速度和视频平均码率。
存储卡为外置存储卡,其具体可以是SD卡。存储卡的写速度是指写入存储卡的数据的平均写入速度。
具体地,可以通过如下方法获取存储卡的写速度:
向存储卡一次性写入X个字节的数据,并统计出写入X个字节的数据需要的时间为T秒,则存储卡的写速度SWsd可以通过公式SWsd=X/T计算得到,其单位为字节/秒。
码率即比特率,是指每秒传送的比特(Bit)数,比特率的单位为bps(Bit PerSecond),比特率越高,传送数据的速度越快。
具体地,可以通过如下方法获取视频平均码率:
首先,对尚未录制过任何视频的新设备而言,通过对每种格式的视频分别录制一段视频文件,获取视频文件的大小和录制时长,计算视频文件的大小与录制时长的比值得到每一种视频格式下的预估码率BR0。
视频平均码率BRt的初始值即为预估码率BR0。
在每次视频录制过程中,可以对视频平均码率BRt进行实时动态刷新,通过计算已经录制的文件大小与已经录制的时长的比值得到实时的视频平均码率BRt。
当视频录制结束后,根据当前的视频平均码率BRt对预估码率BR0进行调整,具体的调整公式为:BR0'=(BRt+BR0)/2,其中,BR0'为调整后的预估码率。
在下一次视频录制开始前,视频平均码率BRt的初始值即为调整后的预估码率BR0'。
S202、若存储卡的写速度与视频平均码率的比值在预设的重组范围内,则根据视频平均码率计算需要写入内存的帧的帧间隔。
具体地,通过判断存储卡的写速度SWsd与视频平均码率BRt的比值是否在预设的重组范围内来决定是否需要对实时录制的视频进行数据重组,当SWsd/BRt的值在预设的重组范围内时,根据视频平均码率BRt计算需要写入内存的帧的帧间隔。
帧间隔F可以通过公式F=FR/(FR*(1-SWsd/BRt))计算得到,其中,FR为帧率。帧率(Frame rate)是用于测量显示帧数的量度,测量单位为每秒显示帧数(Frames perSecond,FPS)或赫兹(Hz),帧率可以通过读取视频录制参数得到。例如,需要录制的视频的帧率FR为30,视频平均码率BRt为5M/S,存储卡的写速度SWsd为4M/S,则根据公式F=FR/(FR*(1-SWsd/BRt))计算得到的帧间隔F为5,表示30帧中每间隔5帧需要写入一帧到内存中。每秒钟有6帧需要写入到内存中。
需要说明的是,通过计算帧间隔均匀地将帧数据写入内存中,可以避免录制到存储卡上的视频播放不流畅的问题。因为如果不是均匀地将帧数据写入内存,而是一段时间写入内存的帧太多,则相应的写入存储卡的帧太少,会使得录制到存储卡上的视频的相邻帧的变化较大,导致在播放时出现不流畅的情况。
预设的重组范围可以设置为(TH0,TH1),其中,TH0为小于1的数,TH1为大于1的数,即当SWsd/BRt的值大于TH0并且小于TH1时认为SWsd/BRt的值在预设的重组范围内,通常TH0可以设置为0.8,TH1可以设置为1.2,但并不限于此,预设的重组范围(TH0,TH1)可以根据实际情况进行设置,此处不做限制。
S203、从实时录制的视频中读取一帧作为当前帧,并根据帧间隔对当前帧进行帧重组。
具体地,根据帧间隔对当前帧进行帧重组可以通过如下步骤S2031至步骤S2035实现:
S2031、根据帧间隔判断是否需要将当前帧写入内存。
具体地,根据步骤S202计算出的帧间隔判断是否需要将当前帧写入内存,如果不需要将当前帧写入内存,则执行步骤S2032,否则执行步骤S2033。
S2032、直接将当前帧写入存储卡。
具体地,若不需要将当前帧写入内存,则直接将当前帧写入存储卡。
进一步地,当存储卡的写速度相对于视频平均码率较慢时,可以先将当前帧写入缓存中,再将缓存中的数据写入存储卡,从而可以使更多的视频数据被写入到存储卡中,同时监测缓存状态,当缓存满时,说明此时存储卡的写速度较慢,可以将数据写入内存中,等到缓存有空闲空间时再重新将数据写入缓存中。
将当前帧直接写入存储卡后,流程跳转到步骤S204继续执行。
S2033、将当前帧写入内存,并获取当前帧的帧类型,其中,帧类型包括I帧、B帧和P帧。
具体地,若根据帧间隔判断需要将当前帧写入内存,则将当前帧写入内存中,并获取当前帧的帧类型。
帧类型包括I帧、B帧和P帧。I帧是帧内编码帧,没有参考帧,B帧是双向预测内插编码帧,以前面的I或P帧和后面的P帧为参考帧,P帧为前向预测编码帧,以前面的I帧为参考帧。当某一帧的参考帧较多时,其编码后的数据量相对较小,同一个帧如果采用这三种帧类型进行编码后其数据量大小依次为:I帧最大、P帧次之、B帧最小,因此将某一帧从I帧转换为P帧或者从P帧转换为I帧,都可以减少该帧的数据量。
由于I帧和P帧都会作为其他帧的参考帧,对其他帧有一定影响,而B帧不会作为参考帧,对其他帧没有影响,因此优先将B帧写入内存,即如果当前帧的帧类型为B帧,则将B帧写入内存后,流程跳转到步骤S204继续执行;如果当前帧的帧类型为P帧,则将P帧写入内存后,继续执行步骤S2034;如果当前帧的帧类型为I帧,则将I帧写入内存后,继续执行步骤S2035。
S2034、将当前帧进行解码,并以当前帧的前一帧和后一帧为参考帧对解码后的当前帧重新编码,得到帧类型为B帧的Bp帧,将Bp帧写入存储卡。
具体地,如果当前帧的帧类型为P帧,则对当前帧进行解码,由于视频相邻帧变化不大,因此可以以当前帧的前一帧和后一帧为参考帧,将当前帧重新编码成B帧类型的帧,标记为Bp帧,并将该Bp帧写入存储卡中,并且在解码时该Bp帧可以作为后续B帧的参考帧。
将Bp帧写入存储卡后,流程跳转到步骤S204继续执行。
S2035、将当前帧进行解码,并以当前帧的前一帧为参考帧对解码后的当前帧重新编码,得到帧类型为P帧的Pi帧,将Pi帧写入存储卡。
具体地,如果当前帧的帧类型为I帧,则对当前帧进行解码,由于视频相邻帧变化不大,因此可以以当前帧的前一帧为参考帧,将当前帧重新编码成P帧类型的帧,标记为Pi帧,并将该Pi帧写入存储卡中,并且在解码时该Pi帧可以作为后续P帧和B帧的参考帧。
将Pi帧写入存储卡后,流程跳转到步骤S204继续执行。
以上通过步骤S2031至步骤S2035对当前帧完成帧重组后,使得满足帧间隔这一重组条件的当前帧被写入内存,同时将当前帧转换为更小数据量的帧后与视频中的其他帧一起被实时写入存储卡。
S204、更新视频平均码率。
具体地,在步骤S203完成对当前帧的帧重组后,实时动态刷新视频平均码率BRt,通过计算已经录制的文件大小与已经录制的时长的比值更新视频平均码率BRt。
S205、根据更新后的视频平均码率重新计算帧间隔,并根据重新计算后的帧间隔对当前帧的下一帧进行帧重组,直到视频录制结束为止。
具体地,判断当前视频录制是否结束,如果视频录制尚未结束,则根据步骤S204计算出的更新后的视频平均码率BRt,按照步骤S202中帧间隔的计算方法重新计算帧间隔,并根据重新计算后的帧间隔对当前帧的下一帧继续进行帧重组,直到视频录制结束后继续执行步骤S206。
需要说明的是,在本发明实施例中,当前帧的下一帧的帧重组的处理方式与当前帧的帧重组可以使用相同的处理方式,即,对当前帧的下一帧的帧重组可以采用步骤S203对当前帧的帧重组相同的处理过程。
S206、当检测到视频录制结束后,将写入内存的视频帧复原到写入存储卡的视频中。
视频录制结束后,虽然写入存储卡中的视频可以播放,但由于部分视频帧被写入到了内存中,使得写入存储卡中的视频的质量会受到一定程度的影响,并且写入存储卡中的视频数据也已经不是完成的原始视频数据,因此为了保证视频数据的完整性,将写入内存的视频帧复原到写入存储卡的视频中,由于视频的大部分数据都已经被录制到存储卡中,内存中的视频帧只占整个视频数据的一小部分,因此复原需要的时间很短,并且可以在后台完成,同时在复原前后和复原过程中也不会影响已经录制在存储卡中的视频的正常播放。
具体地,将写入内存的视频帧复原到写入存储卡的视频中的过程可以通过如下步骤S2061至步骤S2062实现:
S2061、从内存中读取每个视频帧,并获取每个视频帧的时间戳。
时间戳(timestamp)通常是一个字符序列,唯一地标识某一刻的时间。无论是I帧、P帧还是B帧,每一帧数据都会有一个时间戳,通过时间戳可以标识每一帧的先后顺序。
具体地,从内存中读取每个视频帧Fflash,并获取Fflash的时间戳Tflash。
S2062、若从写入存储卡的视频中查询到某一帧的时间戳与内存中的视频帧的时间戳相同,则用内存中的视频帧替换查询到的这一帧,否则,根据内存中的视频帧的时间戳将该视频帧插入到写入存储卡的视频的两帧之间,并且满足内存中的视频帧的时间戳在该两帧的时间戳之间。
具体地,步骤S2062对每个视频帧Fflash的复原过程可以通过如下步骤a)和步骤b)完成,详细说明如下:
a)读取写入存储卡的视频中的一帧数据Fsd,并获取Fsd的时间戳Tsd。
b)判断Tsd是否小于Tflash,并根据判断结果将Fflash插入到写入存储卡的视频中的合适位置。
若Tsd小于Tflash,则判断当前写入存储卡的视频中的帧数据是否已经全部被读取,如果全部被读取,则直接将Fflash及其之后的全部视频帧插入到写入存储卡的视频的最后,此时跳出步骤S206,整个流程结束;如果没有全部被读取,则返回步骤a)继续读取Fsd的下一帧。
若Tsd等于Tflash,则用Fflash替换Fsd;若Tsd大于Tflash,则将Fflash插入到Fsd之前。然后判断当前写入存储卡的视频中的帧数据是否已经全部被读取,如果全部被读取,则直接将Fflash之后的全部视频帧插入到写入存储卡的视频的最后,此时跳出步骤S206,整个流程结束;如果没有全部被读取,则继续从内存中读取下一个视频帧Fflash,重复步骤a)和步骤b)的复原过程,直到写入内存的视频帧全部被复原到写入存储卡的视频中为止。
本实施例中,当存储卡的写速度与视频平均码率的比值在预设的重组范围内,根据视频平均码率计算需要写入内存的帧的帧间隔,并从实时录制的视频中读取一帧作为当前帧,对当前帧进行帧重组,通过帧重组将满足帧间隔这一重组条件的当前帧被写入内存,同时将当前帧转换为更小数据量的帧后与视频中的其他帧一起被实时写入存储卡,采用内存与外置存储卡结合存储的方式,实现对视频的动态重组,减少了写入存储卡的视频数据量,提高了将视频数据写入存储卡的速度,使得高分辨率的视频可以被实时录制到低速的外置存储卡中。同时,在视频录制完成后,将写入内存的视频帧复原到写入存储卡的视频中,保证了视频的完整性,由于视频的大部分数据都已经被录制到存储卡中,内存中的视频帧只占整个视频数据的一小部分,因此复原需要的时间很短,并且可以在后台完成,同时在复原前后和复原过程中也不会影响已经录制在存储卡中的视频的正常播放。
实施例三:
图3是本发明实施例三提供的一种视频存储装置的结构示意图,为了便于说明,仅示出了与本发明实施例相关的部分。图3示例的一种视频存储装置可以是前述实施例一提供的视频存储方法的执行主体,其可以是终端或者终端的一个功能模块。图3示例的一种视频存储装置包括:获取模块31和重组模块32。各功能模块详细说明如下:
获取模块31,用于获取存储卡的写速度和视频平均码率;
重组模块32,用于若获取模块31获取到的存储卡的写速度与视频平均码率的比值在预设的重组范围内,则对实时录制的视频进行数据重组,使得实时录制的视频中满足预设的重组条件的帧被写入内存,并且满足预设的重组条件的帧在被转换为更小数据量的帧后与视频中的其他帧一起被实时写入存储卡。
本实施例提供的一种视频存储装置中各模块实现各自功能的过程,具体可参考前述图1所示实施例的描述,此处不再赘述。
从上述图3示例的一种视频存储装置可知,本实施例中,当存储卡的写速度与视频平均码率的比值在预设的重组范围内,对实时录制的视频进行数据重组,使得视频中满足预设的重组条件的帧被写入内存的同时被转换为更小数据量的帧,并与视频中的其他帧一起被实时写入所述存储卡,实现了对视频的动态重组,减少了写入存储卡的视频数据量,提高了将视频数据写入存储卡的速度,使得高分辨率的视频可以被实时录制到低速的外置存储卡中。
实施例四:
图4是本发明实施例四提供的一种视频存储装置的结构示意图,为了便于说明,仅示出了与本发明实施例相关的部分。图4示例的一种视频存储装置可以是前述实施例二提供的视频存储方法的执行主体,其可以是终端或者终端的一个功能模块。图4示例的一种视频存储装置包括:获取模块41和重组模块42。各功能模块详细说明如下:
获取模块41,用于获取存储卡的写速度和视频平均码率;
重组模块42,用于若获取模块41获取到的存储卡的写速度与视频平均码率的比值在预设的重组范围内,则对实时录制的视频进行数据重组,使得实时录制的视频中满足预设的重组条件的帧被写入内存,并且满足预设的重组条件的帧在被转换为更小数据量的帧后与视频中的其他帧一起被实时写入存储卡。
进一步地,重组模块42包括:
帧间隔计算子模块421,用于根据视频平均码率计算需要写入内存的帧的帧间隔;
当前帧重组子模块422,用于从实时录制的视频中读取一帧作为当前帧,并根据帧间隔计算子模块421计算的帧间隔对当前帧进行帧重组。
码率更新子模块423,用于更新视频平均码率;
下一帧重组子模块424,用于根据码率更新子模块423更新后的视频平均码率重新计算帧间隔,并根据重新计算后的帧间隔对当前帧的下一帧进行帧重组,直到视频录制结束为止。
进一步地,当前帧重组子模块422包括:
判断单元4221,用于根据帧间隔计算子模块421计算的帧间隔判断是否需要将当前帧写入内存;
第一处理单元4222,用于若不需要将当前帧写入内存,则直接将当前帧写入存储卡;
第二处理单元4223,用于若需要将当前帧写入内存,则将当前帧写入内存,并获取当前帧的帧类型,其中,帧类型包括I帧、B帧和P帧;
第一解码单元4224,用于若当前帧的帧类型为P帧,则将当前帧进行解码,并以当前帧的前一帧和后一帧为参考帧对解码后的当前帧重新编码,得到帧类型为B帧的Bp帧,将Bp帧写入存储卡;
第二解码单元4225,用于若当前帧的帧类型为所述I帧,则将当前帧进行解码,并以当前帧的前一帧为参考帧对解码后的当前帧重新编码,得到帧类型为P帧的Pi帧,将Pi帧写入存储卡。
进一步地,该装置还包括:
复原模块43,用于当检测到视频录制结束后,将写入内存的视频帧复原到写入存储卡的视频中。
进一步地,复原模块43包括:
读取子模块431,用于从内存中读取每个视频帧,并获取每个视频帧的时间戳;
处理子模块432,用于若从写入存储卡的视频中查询到某一帧的时间戳与内存中的视频帧的时间戳相同,则用内存中的视频帧替换查询到的这一帧,否则根据内存中的视频帧的时间戳将该视频帧插入到写入存储卡的视频的两帧之间,并且满足内存中的视频帧的时间戳在该两帧的时间戳之间。
本实施例提供的一种视频存储装置中各模块实现各自功能的过程,具体可参考前述图2所示实施例的描述,此处不再赘述。
从上述图4示例的一种视频存储装置可知,本实施例中,当存储卡的写速度与视频平均码率的比值在预设的重组范围内,根据视频平均码率计算需要写入内存的帧的帧间隔,并从实时录制的视频中读取一帧作为当前帧,对当前帧进行帧重组,通过帧重组将满足帧间隔这一重组条件的当前帧被写入内存,同时将当前帧转换为更小数据量的帧后与视频中的其他帧一起被实时写入存储卡,实现了对视频的动态重组,减少了写入存储卡的视频数据量,提高了将视频数据写入存储卡的速度,使得高分辨率的视频可以被实时录制到低速的外置存储卡中。同时,在视频录制完成后,将写入内存的视频帧复原到写入存储卡的视频中,保证了视频的完整性,由于视频的大部分数据都已经被录制到存储卡中,内存中的视频帧只占整个视频数据的一小部分,因此复原需要的时间很短,并且可以在后台完成,同时在复原前后和复原过程中也不会影响已经录制在存储卡中的视频的正常播放。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每一个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同或者相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
值得注意的是,上述装置实施例中,所包括的各个模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能模块的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
本领域普通技术人员可以理解,实现上述各实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,相应的程序可以存储于一计算机可读取存储介质中,所述的存储介质,如ROM/RAM、磁盘或光盘等。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种视频存储方法,其特征在于,包括:
获取存储卡的写速度和视频平均码率;
若所述存储卡的写速度与所述视频平均码率的比值在预设的重组范围内,则对实时录制的视频进行数据重组,使得所述视频中满足预设的重组条件的帧被写入内存,并且所述满足预设的重组条件的帧在被转换为更小数据量的帧后与所述视频中的其他帧一起被实时写入所述存储卡。
2.根据权利要求1所述的视频存储方法,其特征在于,所述对实时录制的视频进行数据重组包括:
根据所述视频平均码率计算需要写入内存的帧的帧间隔;
从所述实时录制的视频中读取一帧作为当前帧,并根据所述帧间隔对所述当前帧进行帧重组;
更新所述视频平均码率;
根据更新后的所述视频平均码率重新计算所述帧间隔,并根据重新计算后的所述帧间隔对所述当前帧的下一帧进行帧重组,直到所述视频录制结束为止。
3.根据权利要求2所述的视频存储方法,其特征在于,所述根据所述帧间隔对所述当前帧进行帧重组包括:
根据所述帧间隔判断是否需要将所述当前帧写入所述内存;
若不需要将所述当前帧写入所述内存,则直接将所述当前帧写入所述存储卡;
若需要将所述当前帧写入所述内存,则将所述当前帧写入内存,并获取所述当前帧的帧类型,所述帧类型包括I帧、B帧和P帧;
若所述帧类型为所述P帧,则将所述当前帧进行解码,并以所述当前帧的前一帧和后一帧为参考帧对解码后的所述当前帧重新编码,得到帧类型为所述B帧的Bp帧,将所述Bp帧写入所述存储卡;
若所述帧类型为所述I帧,则将所述当前帧进行解码,并以所述当前帧的前一帧为参考帧对解码后的所述当前帧重新编码,得到帧类型为所述P帧的Pi帧,将所述Pi帧写入所述存储卡。
4.根据权利要求1至3任一项所述的视频存储方法,其特征在于,所述方法还包括:
当检测到所述视频录制结束后,将写入所述内存的视频帧复原到写入所述存储卡的所述视频中。
5.根据权利要求4所述的视频存储方法,其特征在于,所述将写入所述内存的视频帧复原到写入所述存储卡的所述视频中包括:
从所述内存中读取写入所述内存的每个视频帧,并获取所述视频帧的时间戳;
若从写入所述存储卡的所述视频中查询到某一帧的时间戳与所述视频帧的时间戳相同,则用所述视频帧替换查询到的这一帧,否则根据所述视频帧的时间戳将所述视频帧插入到写入所述存储卡的所述视频的两帧之间,并且满足所述视频帧的时间戳在所述两帧的时间戳之间。
6.一种视频存储装置,其特征在于,包括:
获取模块,用于获取存储卡的写速度和视频平均码率;
重组模块,用于若所述存储卡的写速度与所述视频平均码率的比值在预设的重组范围内,则对实时录制的视频进行数据重组,使得所述视频中满足预设的重组条件的帧被写入内存,并且所述满足预设的重组条件的帧在被转换为更小数据量的帧后与所述视频中的其他帧一起被实时写入所述存储卡。
7.根据权利要求6所述的视频存储装置,其特征在于,所述重组模块包括:
帧间隔计算子模块,用于根据所述视频平均码率计算需要写入内存的帧的帧间隔;
当前帧重组子模块,用于从所述实时录制的视频中读取一帧作为当前帧,并根据所述帧间隔对所述当前帧进行帧重组;
码率更新子模块,用于更新所述视频平均码率;
下一帧重组子模块,用于根据更新后的所述视频平均码率重新计算所述帧间隔,并根据重新计算后的所述帧间隔对所述当前帧的下一帧进行帧重组,直到所述视频录制结束为止。
8.根据权利要求7所述的视频存储装置,其特征在于,所述当前帧重组子模块包括:
判断单元,用于根据所述帧间隔判断是否需要将所述当前帧写入所述内存;
第一处理单元,用于若不需要将所述当前帧写入所述内存,则直接将所述当前帧写入所述存储卡;
第二处理单元,用于若需要将所述当前帧写入所述内存,则将所述当前帧写入内存,并获取所述当前帧的帧类型,所述帧类型包括I帧、B帧和P帧;
第一解码单元,用于若所述帧类型为所述P帧,则将所述当前帧进行解码,并以所述当前帧的前一帧和后一帧为参考帧对解码后的所述当前帧重新编码,得到帧类型为所述B帧的Bp帧,将所述Bp帧写入所述存储卡;
第二解码单元,用于若所述帧类型为所述I帧,则将所述当前帧进行解码,并以所述当前帧的前一帧为参考帧对解码后的所述当前帧重新编码,得到帧类型为所述P帧的Pi帧,将所述Pi帧写入所述存储卡。
9.根据权利要求6至8任一项所述的视频存储装置,其特征在于,所述装置还包括:
复原模块,用于当检测到所述视频录制结束后,将写入所述内存的视频帧复原到写入所述存储卡的所述视频中。
10.根据权利要求9所述的视频存储装置,其特征在于,所述复原模块包括:
读取子模块,用于从所述内存中读取写入所述内存的每个视频帧,并获取所述视频帧的时间戳;
处理子模块,用于若从写入所述存储卡的所述视频中查询到某一帧的时间戳与所述视频帧的时间戳相同,则用所述视频帧替换查询到的这一帧,否则根据所述视频帧的时间戳将所述视频帧插入到写入所述存储卡的所述视频的两帧之间,并且满足所述视频帧的时间戳在所述两帧的时间戳之间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610669632.6A CN106101596B (zh) | 2016-08-15 | 2016-08-15 | 一种视频存储方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610669632.6A CN106101596B (zh) | 2016-08-15 | 2016-08-15 | 一种视频存储方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106101596A true CN106101596A (zh) | 2016-11-09 |
CN106101596B CN106101596B (zh) | 2020-01-03 |
Family
ID=58069173
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610669632.6A Active CN106101596B (zh) | 2016-08-15 | 2016-08-15 | 一种视频存储方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106101596B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10747659B2 (en) | 2018-02-06 | 2020-08-18 | Western Digital Technologies, Inc. | Flash fast program mode for high definition video recording and high resolution camera burst mode recording |
CN113645402A (zh) * | 2021-07-27 | 2021-11-12 | 深圳市阿达视高新技术有限公司 | 摄像设备的比特率控制方法、系统、存储介质及摄像设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101296158A (zh) * | 2007-04-26 | 2008-10-29 | 深圳市同洲电子股份有限公司 | 一种流媒体数据传输方法及其数据传输装置 |
CN101644996A (zh) * | 2009-09-25 | 2010-02-10 | 杭州华三通信技术有限公司 | 索引数据的存储方法和存储控制装置 |
US20100333155A1 (en) * | 2009-06-30 | 2010-12-30 | Philip David Royall | Selectively using local non-volatile storage in conjunction with transmission of content |
CN104301648A (zh) * | 2014-10-27 | 2015-01-21 | 厦门雅迅网络股份有限公司 | 一种sd卡保存视频时避免数据丢失的方法 |
CN105847722A (zh) * | 2015-01-16 | 2016-08-10 | 杭州海康威视数字技术股份有限公司 | 一种视频存储方法和装置、读取方法和装置以及存取系统 |
-
2016
- 2016-08-15 CN CN201610669632.6A patent/CN106101596B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101296158A (zh) * | 2007-04-26 | 2008-10-29 | 深圳市同洲电子股份有限公司 | 一种流媒体数据传输方法及其数据传输装置 |
US20100333155A1 (en) * | 2009-06-30 | 2010-12-30 | Philip David Royall | Selectively using local non-volatile storage in conjunction with transmission of content |
CN101644996A (zh) * | 2009-09-25 | 2010-02-10 | 杭州华三通信技术有限公司 | 索引数据的存储方法和存储控制装置 |
CN104301648A (zh) * | 2014-10-27 | 2015-01-21 | 厦门雅迅网络股份有限公司 | 一种sd卡保存视频时避免数据丢失的方法 |
CN105847722A (zh) * | 2015-01-16 | 2016-08-10 | 杭州海康威视数字技术股份有限公司 | 一种视频存储方法和装置、读取方法和装置以及存取系统 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10747659B2 (en) | 2018-02-06 | 2020-08-18 | Western Digital Technologies, Inc. | Flash fast program mode for high definition video recording and high resolution camera burst mode recording |
CN113645402A (zh) * | 2021-07-27 | 2021-11-12 | 深圳市阿达视高新技术有限公司 | 摄像设备的比特率控制方法、系统、存储介质及摄像设备 |
CN113645402B (zh) * | 2021-07-27 | 2022-05-17 | 深圳市阿达视高新技术有限公司 | 摄像设备的比特率控制方法、系统、存储介质及摄像设备 |
Also Published As
Publication number | Publication date |
---|---|
CN106101596B (zh) | 2020-01-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5847770A (en) | Apparatus and method for encoding and decoding a subtitle signal | |
CN101351845B (zh) | 记录装置、记录方法和记录程序、以及摄像装置、摄像方法和摄像程序 | |
KR960043549A (ko) | 속도-양자화 모델을 사용하여 인코딩하는 비디오 인코딩 시스템 및 방법 | |
CN101022547A (zh) | 传输速率调整设备和方法 | |
CN102724585A (zh) | 一种用于终端设备网络视频播放预加载的方法及装置 | |
JP3562544B2 (ja) | 復号化装置および復号化方法 | |
JP2010238354A (ja) | マルチアングルデータを記録した情報記録媒体、その記録方法及び再生装置 | |
US20090150749A1 (en) | Digital data coding and recording apparatus, and method of using the same | |
KR20160088803A (ko) | 영상 재생 제어 프로그램, 영상 재생 제어 방법, 영상 배신 서버, 송신 프로그램 및 송신 방법 | |
US20070223884A1 (en) | Apparatus and method for determining rendering duration of video frame | |
CN106101596A (zh) | 一种视频存储方法和装置 | |
EP3251019A1 (en) | Multiple protocol media streaming | |
CN101352038A (zh) | 记录装置、记录方法和记录程序、以及摄像装置、摄像方法和摄像程序 | |
CN107124571B (zh) | 录像存储方法及装置 | |
JP4988340B2 (ja) | マルチアングルデータを記録した情報記録媒体、その記録方法及び再生装置 | |
CN103761194B (zh) | 一种内存管理方法及装置 | |
CN108833817A (zh) | 一种视频数据存储方法及装置 | |
US8655139B2 (en) | Video recording and reproducing system and reading method of video data | |
KR20160088804A (ko) | 영상 데이터 파일 생성 프로그램, 영상 데이터 파일 생성 방법 및 영상 데이터 파일 생성 장치 | |
CN1170419C (zh) | 可变速率编码装置 | |
JP2004312245A (ja) | 記録装置および方法、記録媒体、並びにプログラム | |
JPH09265730A (ja) | データ再生装置、再生方法 | |
US20070081430A1 (en) | Information recording apparatus, imaging device, information-recording controlling method, and computer program | |
JP4847672B2 (ja) | マルチメディアデジタルデータを記録する方法及び装置 | |
JP3564910B2 (ja) | データ再生装置及びデータ再生方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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 | ||
CP03 | Change of name, title or address |
Address after: 516006 TCL science and technology building, No. 17, Huifeng Third Road, Zhongkai high tech Zone, Huizhou City, Guangdong Province Patentee after: TCL Technology Group Co.,Ltd. Address before: 516006 Guangdong province Huizhou Zhongkai hi tech Development Zone No. nineteen District Patentee before: TCL Corp. |
|
CP03 | Change of name, title or address |