定。结构体如下:
struct SdBuf{
3M连续内存指针;
数据长度;
};
进一步作为优选的实施方式,步骤17、动态增减循环队列节点,具体为当写入循环队列结点中的成员“数据包长度D1”不为O时,读取循环队列的内容,同时标示r,开始解析。当写卡缓存a中“数据长度D2”加上“数据包长度D1”〈3M,将解析后的数据写入卡缓存a,否则开始写卡,写卡完后将循环队列节点中的“数据长度”清O,同时将该次解析数据写入卡缓存
B ο
[0021]进一步作为优选的实施方式,所述步骤17包括根据队列头索引,尾索引及F监控循环队列,当循环队列剩余可用节点小于循环队列节点数的六分之一大小时,则增加循环队列节点数(共300个)的1/6个节点;当循环队列剩余可用节点不少于循环队列总节点数1/2时,则一次释放;当循环队列剩余可用节点大于循环队列总节点数1/3,小于循环队列总节点数1/2时,则逐渐释放。
[0022]本发明建立动态双缓冲,缓冲一为循环队列,缓冲二A。视频流数据首先写入循环队列中,当循环队列结点中的成员“数据包长度”不为O时,开始解析,当SdBuf结构体中的成员“数据长度”+循环队列结点中的成员“数据包长度”〈3M,将解析后的数据写入A,否则开始写卡,写卡完后将SdBuf结构体中的成员“数据长度”清0,同时将该次解析数据写入A。根据队列头索引,尾索引及F监控循环队列,当循环队列剩余可用节点小于循环队列节点数的六分之一大小时,则增加循环队列节点数(共300个)的1/6个节点,保证循环队列的完整性和可伸缩。
[0023]如图2所示,一种视频录制装置,其包括:
视频采集单元:用于视频数据采集,所提供数据可以是来自任何视频源设备;
视频帧缓存创建单元:用于建立视频帧缓存;
循环队列创建单元:用于建立循环队列;
写卡缓存创建单元:用于建立写卡缓存a;
数据写入单元:用于将采集的视频数据写入循环队列,标示w;
数据读取单元:用于将视频数据读循环队列,标示r,并写入卡缓存a;
控制单元:用于动态增减循环队列节点。
[0024]本发明的有益效果是:本发明通过建立循环队列,实现动态缓冲机制,动态分配资源,在有限的硬件资源下,解决视频录制不理想,漏帧,漏秒的情况。
[0025]以上是对本发明的较佳实施进行了具体说明,但本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做作出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。
【主权项】
1.一种视频录制方法,其特征在于,其包括如下步骤: 步骤11、视频数据采集; 步骤12、建立视频帧缓存; 步骤13、建立循环队列; 步骤14、建立写卡缓存a; 步骤15、将采集的视频数据写入循环队列,标示w; 步骤16、读循环队列,标示r,并写入卡缓存a; 步骤17、动态增减循环队列节点。2.根据权利要求1所述的视频录制方法,其特征在于:所述视频数据包括H264或MPEGl-4视频编码方式的数据。3.根据权利要求2所述的视频录制方法,其特征在于:所述的步骤12、建立视频帧缓存,具体分为2种:第一种为bigBuf,主要为存储关键帧I帧,缓存大小为(480*1024)Byte;第二种为smallBuf,主要为存储预测帧P帧,缓存大小为(120*1024)Byte。4.根据权利要求3所述的视频录制方法,其特征在于:步骤13建立循环队列,所述循环队列节点包括写入的视频数据的数据包长度Dl。5.根据权利要求4所述的视频录制方法,其特征在于:所述的循环节点数为300。6.根据权利要求5所述的视频录制方法,其特征在于:步骤14、建立写卡缓存a,为3M连续内存,所述写卡缓存a包括写入的视频的数据长度D2。7.根据权利要求6所述的视频录制方法,其特征在于:步骤17、动态增减循环队列节点,具体为当写入循环队列结点中的成员“数据包长度D1”不为O时,读取循环队列的内容,同时标示r,开始解析。当写卡缓存a中“数据长度D2”加上“数据包长度D1”〈3M,将解析后的数据写入卡缓存a,否则开始写卡,写卡完后将循环队列节点中的“数据长度”清0,同时将该次解析数据写入卡缓存a。8.根据权利要求7所述的视频录制方法,其特征在于:所述步骤17包括:当循环队列剩余可用节点小于循环队列节点数的六分之一大小时,则增加循环队列节点数的1/6个节点;当循环队列剩余可用节点不少于循环队列总节点数1/2时,则一次释放;当循环队列剩余可用节点大于循环队列总节点数1/3,小于循环队列总节点数1/2时,则逐渐释放。9.一种视频录制装置,其特征在于,其包括: 视频采集单元:用于视频数据采集,所提供数据可以是来自任何视频源设备; 视频采集单元:用于视频数据采集,所提供数据可以是来自任何视频源设备; 视频帧缓存创建单元:用于建立视频帧缓存; 循环队列创建单元:用于建立循环队列; 写卡缓存创建单元:用于建立写卡缓存a; 数据写入单元:用于将采集的视频数据写入循环队列,标示w; 数据读取单元:用于将视频数据读循环队列,标示r,并写入卡缓存a; 控制单元:用于动态增减循环队列节点。
【专利摘要】本发明公开了一种视频录制方法及装置,该视频录制方法包括:视频数据采集;建立视频帧缓存;建立循环队列;建立写卡缓存a;将采集的视频数据写入循环队列,标示w;读循环队列,标示r,并写入卡缓存a;动态增减循环队列节点。该视频录制装置包括:视频采集单元;视频帧缓存创建单元;循环队列创建单元;写卡缓存创建单元;数据写入单元;数据读取单元;控制单元。本发明通过建立循环队列,实现动态缓冲机制,动态分配资源,在有限的硬件资源下,解决视频录制不理想,漏帧,漏秒的情况。本发明作为一种视频录制方法及装置,广泛适用于视频处理领域。
【IPC分类】H04N21/433, H04N5/76
【公开号】CN105657311
【申请号】
【发明人】杨自和
【申请人】深圳市极酷威视科技有限公司
【公开日】2016年6月8日
【申请日】2016年3月11日