[发明专利]一种多路录像实现快速写磁盘文件的方法及装置在审
申请号: | 202010461790.9 | 申请日: | 2020-05-27 |
公开(公告)号: | CN111654654A | 公开(公告)日: | 2020-09-11 |
发明(设计)人: | 洪雁;张全宝;吴晓樵 | 申请(专利权)人: | 南京通用电器有限公司 |
主分类号: | H04N5/76 | 分类号: | H04N5/76;H04N5/781;G06F12/0871;G06F3/06 |
代理公司: | 南京纵横知识产权代理有限公司 32224 | 代理人: | 母秋松 |
地址: | 210001 江苏*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 录像 实现 速写 磁盘 文件 方法 装置 | ||
本发明公开了一种多路录像实现快速写磁盘文件的方法及装置,当通道录像时,各个录像通道分别从空闲缓冲区链表中取出缓冲区,将采集到的音视频数据写入到缓冲区,当缓冲区写满时,将缓冲区挂载到对应通道缓冲区链表中;当写磁盘文件时,从通道缓冲区链表中获取缓冲区,将缓冲区数据写入磁盘文件中,数据写完后,将缓冲区挂载到空闲缓冲区链表上。本发明提高了缓冲区的利用率,减少了系统资源的浪费,实现了快速保存音视频数据,保证了磁盘有足够的时间写入数据,防止出现音视频数据丢失的现象。
技术领域
本发明涉及一种多路录像实现快速写磁盘文件的方法及装置,属于音视频数据存储技术领域。
背景技术
对于音视频录像,一帧音视频数据采集后,会将数据最终存放到磁盘文件中。假定通道码流设置为4Mbps每秒,如果有8路视频同时录制的话,每秒就需要存储32Mbps的数据量。由于磁盘本身设计和系统内核的写磁盘机制,导致在某一时刻写数据时间过长,而前端的音视频数据采集时间间隔是40ms,采集的音视频数据如果不及时取走,会被后面采集到的音视频数据覆盖,导致音视频数据的丢失。
现有的写缓存机制,将采集的数据写到缓冲区,再模拟快速写磁盘文件。但是,系统的缓冲区大小有限,在面对多路同时录制系统时,如果缓冲区分配不够多,在写卡顿时会导致缓冲区不够用,前端的音视频的被覆盖,导致音视频数据丢失。或者设置大量不共享的缓冲区,用于写卡顿时的备份,但是,现有录制通道数量很多,大量备份缓冲区会减小系统中其他程序可用缓冲区,最终影响系统性能。
发明内容
目的:为了克服现有技术中存在的音视频数据写入磁盘不及时的问题,本发明提供一种多路录像实现快速写磁盘文件的方法及装置。
技术方案:为解决上述技术问题,本发明采用的技术方案为:
一种多路录像实现快速写磁盘文件的方法,包括如下步骤:
当通道录像时,各个录像通道分别从空闲缓冲区链表中取出缓冲区,将采集到的音视频数据写入到缓冲区,当缓冲区写满时,将缓冲区挂载到对应通道缓冲区链表中;
当写磁盘文件时,从通道缓冲区链表中获取缓冲区,将缓冲区数据写入磁盘文件中,数据写完后,将缓冲区挂载到空闲缓冲区链表上。
作为优选方案,还包括:当写入磁盘文件卡顿时,对应的录像通道从空闲缓冲区链表中取出共享缓冲区,将采集到的音视频数据写入到共享缓冲区,当共享缓冲区写满时,将共享缓冲区挂载到对应的通道缓冲区链表中;将共享缓冲区数据写入磁盘文件后,将共享缓冲区挂载到空闲缓冲区链表上。
一种多路录像实现快速写磁盘文件的装置,包括录像存储模块、通道缓存处理模块;
所述录像存储模块采集到音视频数据后,从空闲缓冲区链表中获取可用的缓冲区,将音视频数据写入缓冲区,写满缓冲区后,通知通道缓存处理模块,并将写满的缓冲区挂载到对应通道缓冲区链表中;
所述通道缓存处理模块收到录像存储模块通知后,从通道缓冲区链表中获取写满的缓冲区,将缓冲区的数据写入到磁盘指向的录像文件中,再将缓冲区挂载到空闲缓冲区链表上。
作为优选方案,如果缓冲区剩余可用空间小于一帧音视频数据长度,录像存储模块先将部分音视频数据填充缓冲区的剩余空间,将写满的缓冲区挂载到对应的通道缓冲区链表,再从空闲缓冲区链表中获取可用的缓冲区,将音视频数据剩余的部分填充到缓冲区中。
作为优选方案,所述空闲缓冲区链表数量为一个,用于挂载空白的缓冲区。
作为优选方案,所述通道缓冲区链表与录像通道一一对应,用于挂载每个录像通道写入的缓冲区。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京通用电器有限公司,未经南京通用电器有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010461790.9/2.html,转载请声明来源钻瓜专利网。