CN105657311A - 一种视频录制方法及装置 - Google Patents
一种视频录制方法及装置 Download PDFInfo
- Publication number
- CN105657311A CN105657311A CN201610141138.2A CN201610141138A CN105657311A CN 105657311 A CN105657311 A CN 105657311A CN 201610141138 A CN201610141138 A CN 201610141138A CN 105657311 A CN105657311 A CN 105657311A
- Authority
- CN
- China
- Prior art keywords
- round
- video
- robin queue
- data
- buffer 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.)
- Pending
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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/433—Content storage operation, e.g. storage operation in response to a pause request, caching operations
- H04N21/4334—Recording operations
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Television Signal Processing For Recording (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
本发明公开了一种视频录制方法及装置,该视频录制方法包括:视频数据采集;建立视频帧缓存;建立循环队列;建立写卡缓存a;将采集的视频数据写入循环队列,标示w;读循环队列,标示r,并写入卡缓存a;动态增减循环队列节点。该视频录制装置包括:视频采集单元;视频帧缓存创建单元;循环队列创建单元;写卡缓存创建单元;数据写入单元;数据读取单元;控制单元。本发明通过建立循环队列,实现动态缓冲机制,动态分配资源,在有限的硬件资源下,解决视频录制不理想,漏帧,漏秒的情况。本发明作为一种视频录制方法及装置,广泛适用于视频处理领域。
Description
技术领域
本发明涉及本发明涉及视频处理领域,尤其涉及一种视频录制方法及装置。
背景技术
视频录制是指录制来自于计算机硬件终端、计算机视窗环境的视频,常见的录制模式包括捕捉摄像头、摄像机、数码相机、电视卡、DVR等硬件视频,录制计算机视窗的游戏视频、QQ视频、录制电影等。随着时代进步,科技发展,人民追求精神享受的愿望的提高,对视频录制的清晰度,可靠性也随之增加,通常视频录制的帧数越高,视频越清晰,但是视频录制帧数越高,越容易出现漏帧,漏秒的情况。通常是通过提升硬件配置,加强视频处理芯片和存储介质的处理速度来解决漏帧,漏秒的情况。没有一种在当前有限的硬件资源下,解决视频录制不理想,漏帧,漏秒的情况。
发明内容
为了解决上述技术问题,本发明的目的是提供一种在有限的硬件资源下,解决视频录制不理想,漏帧,漏秒的情况的视频录制方法及装置。
本发明所采用的技术方案是:一种视频录制方法,其包括如下步骤:
一种视频录制方法,其特征在于,其包括如下步骤:
步骤11、视频数据采集;
步骤12、建立视频帧缓存;
步骤13、建立循环队列;
步骤14、建立写卡缓存a;
步骤15、将采集的视频数据写入循环队列,标示w;
步骤16、读循环队列,标示r,并写入卡缓存a;
步骤17、动态增减循环队列节点。
进一步,所述视频数据包括H264或MPEG1-4视频编码方式的数据。
进一步,所述的步骤12、建立视频帧缓存,具体分为2种:第一种为bigBuf,主要为存储关键帧I帧,缓存大小为(480*1024)Byte;第二种为smallBuf,主要为存储预测帧P帧,缓存大小为(120*1024)Byte。
进一步,步骤13建立循环队列,所述循环队列节点包括写入的视频数据的数据包长度D1。
进一步,所述的循环节点数为300。
进一步,步骤14、建立写卡缓存a,为3M连续内存,所述写卡缓存a包括写入的视频的数据长度D2。
进一步,步骤17、动态增减循环队列节点,具体为当写入循环队列结点中的成员“数据包长度D1”不为0时,读取循环队列的内容,同时标示r,开始解析。当写卡缓存a中“数据长度D2”加上“数据包长度D1”<3M,将解析后的数据写入卡缓存a,否则开始写卡,写卡完后将循环队列节点中的“数据长度”清0,同时将该次解析数据写入卡缓存a。
进一步,所述步骤17包括:当循环队列剩余可用节点小于循环队列节点数的六分之一大小时,则增加循环队列节点数的1/6个节点;当循环队列剩余可用节点不少于循环队列总节点数1/2时,则一次释放;当循环队列剩余可用节点大于循环队列总节点数1/3,小于循环队列总节点数1/2时,则逐渐释放。
此外,本发明的另一方面,提供了一种视频录制装置,其包括:
视频采集单元:用于视频数据采集,所提供数据可以是来自任何视频源设备;
视频帧缓存创建单元:用于建立视频帧缓存;
循环队列创建单元:用于建立循环队列;
写卡缓存创建单元:用于建立写卡缓存a;
数据写入单元:用于将采集的视频数据写入循环队列,标示w;
数据读取单元:用于将视频数据读循环队列,标示r,并写入卡缓存a;
控制单元:用于动态增减循环队列节点。
本发明的有益效果是:本发明通过建立循环队列,实现动态缓冲机制,动态分配资源,在有限的硬件资源下,解决视频录制不理想,漏帧,漏秒的情况。
附图说明
下面结合附图对本发明的具体实施方式作进一步说明:
图1是本发明的一具体实施例的流程图;
图2是本发明的一具体实施例的功能模块图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
如图1所示,一种视频录制方法,其包括如下步骤:
本发明所采用的技术方案是:一种视频录制方法,其包括如下步骤:
步骤11、视频数据采集;
步骤12、建立视频帧缓存;
步骤13、建立循环队列;
步骤14、建立写卡缓存a;
步骤15、将采集的视频数据写入循环队列,标示w;
步骤16、读循环队列,标示r,并写入卡缓存a;
步骤17、动态增减循环队列节点。
进一步作为优选的实施方式,所述视频数据包括H264或MPEG1-4视频编码方式的数据。
进一步作为优选的实施方式,所述的步骤12、建立视频帧缓存,具体分为2种:第一种为bigBuf,主要为存储关键帧I帧,缓存大小为(480*1024)Byte;第二种为smallBuf,主要为存储预测帧P帧,缓存大小为(120*1024)Byte,目的在于减少无效内存的分配。
进一步作为优选的实施方式,步骤13建立循环队列,所述循环队列节点包括写入的视频数据的数据包长度D1。循环队列及每个节点中成员如下:
structbufQue{
队列头;
头索引w;
尾索引r;
}
structbufNode
{
视频帧缓存指针;
数据包长度;
时间戳;
关键帧标示;
下一个节点指针;
};
此循环队列判别队列是"空"还是"满"另设一char变量(以下简称F)标示。此循环的队列节点个数为300。
进一步作为优选的实施方式,步骤14、建立写卡缓存a,为3M连续内存,所述写卡缓存a包括写入的视频的数据长度D2。以3M左右大小写卡时,速度最快,具体大小视系统而定。结构体如下:
structSdBuf{
3M连续内存指针;
数据长度;
};
进一步作为优选的实施方式,步骤17、动态增减循环队列节点,具体为当写入循环队列结点中的成员“数据包长度D1”不为0时,读取循环队列的内容,同时标示r,开始解析。当写卡缓存a中“数据长度D2”加上“数据包长度D1”<3M,将解析后的数据写入卡缓存a,否则开始写卡,写卡完后将循环队列节点中的“数据长度”清0,同时将该次解析数据写入卡缓存a。
进一步作为优选的实施方式,所述步骤17包括根据队列头索引,尾索引及F监控循环队列,当循环队列剩余可用节点小于循环队列节点数的六分之一大小时,则增加循环队列节点数(共300个)的1/6个节点;当循环队列剩余可用节点不少于循环队列总节点数1/2时,则一次释放;当循环队列剩余可用节点大于循环队列总节点数1/3,小于循环队列总节点数1/2时,则逐渐释放。
本发明建立动态双缓冲,缓冲一为循环队列,缓冲二A。视频流数据首先写入循环队列中,当循环队列结点中的成员“数据包长度”不为0时,开始解析,当SdBuf结构体中的成员“数据长度”+循环队列结点中的成员“数据包长度”<3M,将解析后的数据写入A,否则开始写卡,写卡完后将SdBuf结构体中的成员“数据长度”清0,同时将该次解析数据写入A。根据队列头索引,尾索引及F监控循环队列,当循环队列剩余可用节点小于循环队列节点数的六分之一大小时,则增加循环队列节点数(共300个)的1/6个节点,保证循环队列的完整性和可伸缩。
如图2所示,一种视频录制装置,其包括:
视频采集单元:用于视频数据采集,所提供数据可以是来自任何视频源设备;
视频帧缓存创建单元:用于建立视频帧缓存;
循环队列创建单元:用于建立循环队列;
写卡缓存创建单元:用于建立写卡缓存a;
数据写入单元:用于将采集的视频数据写入循环队列,标示w;
数据读取单元:用于将视频数据读循环队列,标示r,并写入卡缓存a;
控制单元:用于动态增减循环队列节点。
本发明的有益效果是:本发明通过建立循环队列,实现动态缓冲机制,动态分配资源,在有限的硬件资源下,解决视频录制不理想,漏帧,漏秒的情况。
以上是对本发明的较佳实施进行了具体说明,但本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做作出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。
Claims (9)
1.一种视频录制方法,其特征在于,其包括如下步骤:
步骤11、视频数据采集;
步骤12、建立视频帧缓存;
步骤13、建立循环队列;
步骤14、建立写卡缓存a;
步骤15、将采集的视频数据写入循环队列,标示w;
步骤16、读循环队列,标示r,并写入卡缓存a;
步骤17、动态增减循环队列节点。
2.根据权利要求1所述的视频录制方法,其特征在于:所述视频数据包括H264或MPEG1-4视频编码方式的数据。
3.根据权利要求2所述的视频录制方法,其特征在于:所述的步骤12、建立视频帧缓存,具体分为2种:第一种为bigBuf,主要为存储关键帧I帧,缓存大小为(480*1024)Byte;第二种为smallBuf,主要为存储预测帧P帧,缓存大小为(120*1024)Byte。
4.根据权利要求3所述的视频录制方法,其特征在于:步骤13建立循环队列,所述循环队列节点包括写入的视频数据的数据包长度D1。
5.根据权利要求4所述的视频录制方法,其特征在于:所述的循环节点数为300。
6.根据权利要求5所述的视频录制方法,其特征在于:步骤14、建立写卡缓存a,为3M连续内存,所述写卡缓存a包括写入的视频的数据长度D2。
7.根据权利要求6所述的视频录制方法,其特征在于:步骤17、动态增减循环队列节点,具体为当写入循环队列结点中的成员“数据包长度D1”不为0时,读取循环队列的内容,同时标示r,开始解析。当写卡缓存a中“数据长度D2”加上“数据包长度D1”<3M,将解析后的数据写入卡缓存a,否则开始写卡,写卡完后将循环队列节点中的“数据长度”清0,同时将该次解析数据写入卡缓存a。
8.根据权利要求7所述的视频录制方法,其特征在于:所述步骤17包括:当循环队列剩余可用节点小于循环队列节点数的六分之一大小时,则增加循环队列节点数的1/6个节点;当循环队列剩余可用节点不少于循环队列总节点数1/2时,则一次释放;当循环队列剩余可用节点大于循环队列总节点数1/3,小于循环队列总节点数1/2时,则逐渐释放。
9.一种视频录制装置,其特征在于,其包括:
视频采集单元:用于视频数据采集,所提供数据可以是来自任何视频源设备;
视频采集单元:用于视频数据采集,所提供数据可以是来自任何视频源设备;
视频帧缓存创建单元:用于建立视频帧缓存;
循环队列创建单元:用于建立循环队列;
写卡缓存创建单元:用于建立写卡缓存a;
数据写入单元:用于将采集的视频数据写入循环队列,标示w;
数据读取单元:用于将视频数据读循环队列,标示r,并写入卡缓存a;
控制单元:用于动态增减循环队列节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610141138.2A CN105657311A (zh) | 2016-03-11 | 2016-03-11 | 一种视频录制方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610141138.2A CN105657311A (zh) | 2016-03-11 | 2016-03-11 | 一种视频录制方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105657311A true CN105657311A (zh) | 2016-06-08 |
Family
ID=56493210
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610141138.2A Pending CN105657311A (zh) | 2016-03-11 | 2016-03-11 | 一种视频录制方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105657311A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106878683A (zh) * | 2017-03-03 | 2017-06-20 | 天津天地伟业信息系统集成有限公司 | 一种图片流文件存储编码方法 |
CN110149546A (zh) * | 2019-04-15 | 2019-08-20 | 广州虎牙信息科技有限公司 | 移动终端及其基于录屏的视频补帧方法、计算机存储介质 |
CN110312156A (zh) * | 2018-03-27 | 2019-10-08 | 腾讯科技(深圳)有限公司 | 一种视频缓存方法、装置及可读存储介质 |
CN110555890A (zh) * | 2018-05-30 | 2019-12-10 | 珠海全志科技股份有限公司 | 一种内存管理方法及系统 |
CN110996057A (zh) * | 2019-12-02 | 2020-04-10 | 腾讯云计算(北京)有限责任公司 | 媒体数据处理方法、装置、计算机设备和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080151992A1 (en) * | 2006-12-25 | 2008-06-26 | Shih-Fang Chuang | Method for dynamically adjusting video frame |
CN101729879A (zh) * | 2009-12-15 | 2010-06-09 | 山东大学 | 一种基于mimo-ofdm系统的实时视频传输的实现方法 |
CN103686077A (zh) * | 2013-11-29 | 2014-03-26 | 成都亿盟恒信科技有限公司 | 应用于3g无线网络实时音视频数据传输的双缓冲方法 |
CN105245912A (zh) * | 2015-10-21 | 2016-01-13 | 东方网力科技股份有限公司 | 一种缓存视频数据及读取视频数据的方法及装置 |
-
2016
- 2016-03-11 CN CN201610141138.2A patent/CN105657311A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080151992A1 (en) * | 2006-12-25 | 2008-06-26 | Shih-Fang Chuang | Method for dynamically adjusting video frame |
CN101729879A (zh) * | 2009-12-15 | 2010-06-09 | 山东大学 | 一种基于mimo-ofdm系统的实时视频传输的实现方法 |
CN103686077A (zh) * | 2013-11-29 | 2014-03-26 | 成都亿盟恒信科技有限公司 | 应用于3g无线网络实时音视频数据传输的双缓冲方法 |
CN105245912A (zh) * | 2015-10-21 | 2016-01-13 | 东方网力科技股份有限公司 | 一种缓存视频数据及读取视频数据的方法及装置 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106878683A (zh) * | 2017-03-03 | 2017-06-20 | 天津天地伟业信息系统集成有限公司 | 一种图片流文件存储编码方法 |
CN110312156A (zh) * | 2018-03-27 | 2019-10-08 | 腾讯科技(深圳)有限公司 | 一种视频缓存方法、装置及可读存储介质 |
CN110312156B (zh) * | 2018-03-27 | 2022-04-22 | 腾讯科技(深圳)有限公司 | 一种视频缓存方法、装置及可读存储介质 |
CN110555890A (zh) * | 2018-05-30 | 2019-12-10 | 珠海全志科技股份有限公司 | 一种内存管理方法及系统 |
CN110555890B (zh) * | 2018-05-30 | 2023-10-20 | 珠海全志科技股份有限公司 | 一种内存管理方法及系统 |
CN110149546A (zh) * | 2019-04-15 | 2019-08-20 | 广州虎牙信息科技有限公司 | 移动终端及其基于录屏的视频补帧方法、计算机存储介质 |
CN110996057A (zh) * | 2019-12-02 | 2020-04-10 | 腾讯云计算(北京)有限责任公司 | 媒体数据处理方法、装置、计算机设备和存储介质 |
CN110996057B (zh) * | 2019-12-02 | 2021-11-16 | 腾讯云计算(北京)有限责任公司 | 媒体数据处理方法、装置、计算机设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105657311A (zh) | 一种视频录制方法及装置 | |
US9747318B2 (en) | Retrieving data in a storage system using thin provisioning | |
WO2016141735A1 (zh) | 缓存数据的确定方法及装置 | |
CN109919952A (zh) | 一种在fpga中将大图切割为几幅小图并同时显示的方法 | |
JP4129242B2 (ja) | ビットストリーム・フォーマット、ならびにその読み取りおよび書き込み方法および装置 | |
CN115460414B (zh) | 一种基板管理控制芯片的视频压缩方法、系统及相关组件 | |
US20140237224A1 (en) | Network boot system | |
CN103246754B (zh) | 一种高速数字信号采集、存储系统 | |
CN106713805A (zh) | 一种基于fpga的数字视频显示接口模块及其通信方法 | |
CN103686077A (zh) | 应用于3g无线网络实时音视频数据传输的双缓冲方法 | |
JP2007179496A (ja) | データ記録装置及びfifo機能実現プログラム | |
US20100058020A1 (en) | Mobile phone and method for managing memory of the mobile phone | |
US8625968B2 (en) | Recording apparatus and control method thereof | |
US8730348B2 (en) | Recording apparatus and control method thereof | |
CN111263211B (zh) | 一种缓存视频数据的方法及终端设备 | |
CN117009087A (zh) | 一种图像输出方法、装置、设备及存储介质 | |
US20110283068A1 (en) | Memory access apparatus and method | |
US10448020B2 (en) | Intelligent MSI-X interrupts for video analytics and encoding | |
CN113242321B (zh) | 一种移动存储设备数据传输方法 | |
CN112637602B (zh) | 一种jpeg接口及数字图像处理系统 | |
JP2006018419A (ja) | 記憶装置 | |
CN113596486A (zh) | 一种数据信息存储方法、读取、装置、终端及存储介质 | |
US9547612B2 (en) | Method and architecture for data channel virtualization in an embedded system | |
CN103702239A (zh) | 一种网络多媒体资源数据处理方法及装置 | |
CN112363778B (zh) | 一种动态图片加载方法、装置、电子设备以及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160608 |
|
RJ01 | Rejection of invention patent application after publication |