CN106791908B - 一种支持云平台采用双缓冲的实时视频流存储方法 - Google Patents

一种支持云平台采用双缓冲的实时视频流存储方法 Download PDF

Info

Publication number
CN106791908B
CN106791908B CN201611061691.1A CN201611061691A CN106791908B CN 106791908 B CN106791908 B CN 106791908B CN 201611061691 A CN201611061691 A CN 201611061691A CN 106791908 B CN106791908 B CN 106791908B
Authority
CN
China
Prior art keywords
storage
video
buffer area
data
video flowing
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.)
Active
Application number
CN201611061691.1A
Other languages
English (en)
Other versions
CN106791908A (zh
Inventor
李菲菲
王夷
刘其峰
徐强
王小虎
王丹
郭勇勇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SHANGHAI XILING INFORMATION TECHNOLOGY Co Ltd
Original Assignee
SHANGHAI XILING INFORMATION TECHNOLOGY Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by SHANGHAI XILING INFORMATION TECHNOLOGY Co Ltd filed Critical SHANGHAI XILING INFORMATION TECHNOLOGY Co Ltd
Priority to CN201611061691.1A priority Critical patent/CN106791908B/zh
Publication of CN106791908A publication Critical patent/CN106791908A/zh
Application granted granted Critical
Publication of CN106791908B publication Critical patent/CN106791908B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • H04N21/23106Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving caching operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • H04N21/23113Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving housekeeping operations for stored content, e.g. prioritizing content for deletion because of storage space restrictions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/258Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
    • H04N21/25808Management of client data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/643Communication protocols
    • H04N21/6437Real-time Transport Protocol [RTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Computer Graphics (AREA)
  • Television Signal Processing For Recording (AREA)
  • Closed-Circuit Television Systems (AREA)

Abstract

本发明公开了一种支持云平台采用双缓冲的实时视频流存储方法,包括如下步骤:获取云存储配置文件信息;连接数据库,获取部署ID对应的存储相机列表信息;获取调度服务器信息,同时启动存储管理主线程,为每个相机分配对应的双缓冲区,建立相机与双缓冲区之间的映射关系;遍历相机列表信息,创建视频流存储线程和视频流接收线程;向下级平台或设备发起视频点播请求,在接收到视频流后,将数据保存到对应的缓冲区中,存储线程根据缓冲区存满标志将视频流存储到云平台上。本发明能够在一定程度上提高了视频存储的效率,减少不可逆转的视频丢失问题,同时也可以在一定程度上提高视频存储的安全性。

Description

一种支持云平台采用双缓冲的实时视频流存储方法
技术领域
本发明涉及云存储技术领域,尤其涉及一种支持云平台采用双缓冲的实时视频流存储方法。
背景技术
随着整个安防行业技术水平的不断成熟以及社会治安事件复杂度的不断提高,原有的以硬盘存储视频的方式已经达不到破案的要求,视频在存储周期、访问效率以及安全性方面也有了更高的要求。
在这个大的应用背景下,基于云存储的实现架构应运而生,如阿里云、百度云、华为云等。一般云存储分为:文件存储、块存储和对象存储,文件存储和块存储是传统的存储数据方式;对象存储服务是面向企业和个人开发者提供的高可用,高稳定,强安全的云端存储服务,对象存储是目前最常用的云存储方案,克服了块存储和文件存储的缺点。同原有的存储架构相比,使用云存储在可靠性、安全、成本以及数据处理能力方面都具有明显的优势。就可靠性而言,对象存储服务的可运行性不低于99.9%,规模自动扩展,不影响对外服务,同时采用了多重冗余备份机制来增强其安全性,而采用自建服务器存储,其可靠性受限于存储服务的硬件环境,相比于对象存储,易出现不可逆转的数据丢失问题;就安全性而言,对象存储提供企业级多层次安全防护,而用户自建存储需要单独实现;就成本而言,对象存储根据存储大小按需收费,成本低,而用户自建存储则是一次性投入、资源的利用率很低,存储受硬盘容量限制;就处理能力而言,采用对象存储架构,提供内容加速分发功能,其存储效率远高于用户自建存储服务模式。
发明内容
有鉴于现有技术的上述缺陷,本发明提供一种支持云平台采用双缓冲的实时视频流存储方法,由云存储服务自动向下级平台或前端设备进行点播请求,获取到视频流,采用自定义的存储模式进行视频流存储,能够在一定程度上提高了视频存储的效率,减少不可逆转的视频丢失问题,同时也可以在一定程度上提高视频存储的安全性。
本发明所采用的技术方案是:一种支持云平台采用双缓冲的实时视频流存储方法,包括如下步骤:
步骤1、获取云存储配置文件信息,所述信息包括服务部署ID、云平台配置信息、数据库配置信息;
步骤2、初始化数据库连接,连接所述数据库,获取所述部署ID对应的存储相机列表信息;
步骤3、获取调度服务器信息,同时启动存储管理主线程,为每个相机分配对应的双缓冲区,建立相机与双缓冲区之间的映射关系,进行内存的一次性申请;
步骤4、遍历相机列表信息,创建视频流存储线程和视频流接收线程,每路视频对应一个存储线程和一个视频流接收线程,同时建立相机与存储线程、视频流接收线程之间的映射关系,并向调度服务发起实时视频播放请求;
步骤5、所述调度服务向下级平台或设备发起视频点播请求,为每路视频开启一个存储线程和一个视频流接收线程;
步骤6、所述视频流接收线程在接收到视频流后,将视频数据保存到对应的缓冲区中,所述存储线程根据缓冲区存满标志将所述视频数据存储到所述云平台上,并将时间节点信息保存至数据库中;
步骤7、在存储完成后,重置所述相机的缓冲区,同时将视频流存储信息保存到所述数据库中;重复步骤3-7,直到接收到退出指令。
在本发明较佳实施方式中,所述相机双缓冲区为主缓冲区和备用缓冲区,所述主缓冲区和所述备用缓冲区交替使用。
在本发明另一较佳实施方式中,所述每个缓冲区的结构为{相机编号、存储状态、当前已经存储的数据大小、I帧列表信息(I帧偏移量、时间戳)}。
在本发明较佳实施方式中,所述步骤6中所述存储接口根据所述云平台配置信息中的参数调用云平台接口进行初始化,所述存储线程通过所述云平台的存储接口将所述视频流保存到所述云平台上。
在本发明另一较佳实施方式中,所述步骤6中所述视频流接收线程接收视频流的具体方式为:
判断所述视频流的长度是否大于RTP包头长度,如果小于则直接丢弃;
否则获取到视频流数据,获取视频帧类型;
如果是I帧,判断临时接收缓冲区中是否有数据,如果没有,则直接将数据保存至所述临时缓冲区;如果有数据,则将所述临时缓冲区中的数据保存至所述缓冲区中,将接收到的I帧保存至所述临时缓冲区;
如果是P帧,判断是否找到了I帧,如果没有找到,则丢弃掉,如果已经找到,则将视频流保存至临时缓冲区中;
每次在处理完成后更新接收序号和接收时间戳信息。
在本发明较佳实施方式中,所述I帧序列数据入双缓冲区实现步骤如下:
步骤11、获取所述I帧序列数据、数据长度、I帧绝对时间信息;
步骤12、获取所述主缓冲区的状态,判断所述备用缓冲区中是否有数据,如果有数据,则执行步骤13;否则执行步骤14;
步骤13、获取所述备用缓冲区的剩余空间,判断所述备用缓冲区的剩余空间是否存够存储,如果是,则将数据拷贝至所述备用缓冲区,执行步骤15;否则将所述备用缓冲区的状态设置成已满,将剩下的空间进行占位填充,同时将数据拷贝至所述主缓冲区,执行步骤15;
步骤14、判断所述主缓冲区的剩余空间是否足够存储,如果足够存储,则将数据拷贝至所述主缓冲区,执行步骤15;否则将所述主缓冲区的状态设置为已满,将剩下的空间进行占位填充,并将数据拷贝至所述备用缓冲区,执行步骤15;
步骤15、处理完毕。
在本发明另一较佳实施方式中,所述视频流存储线程实现步骤如下:
步骤21、根据所述配置文件中的云平台配置信息初始化云平台接口、相机编号以及双缓冲区信息;
步骤22、启动所述视频流存储线程;
步骤23、判断是否接收到服务的退出命令,如果接收到退出命令,则退出循环,等待程序退出,否则执行步骤24;
步骤24、判断所述主缓冲区是否已满,如果已满,则调用所述云平台存储接口将数据保存至云平台,如果存储成功,则将视频片段信息保存至数据库,重置缓冲区,执行步骤25;
步骤25、判断所述备用缓冲区是否已经写满,如果所述备用缓冲区已经写满,则调用云平台存储接口将数据保存至云平台,如果存储成功,则将视频片段信息保存至数据库,重置缓冲区,执行步骤26;
步骤26、进行下一轮的判断,执行步骤23。
在本发明较佳实施方式中,所述视频流接收线程实现步骤如下:
步骤31、初始化所述视频流接收线程,包括所述相机编号、双缓冲区;
步骤32、生成视频流接收端口,并设置临时接收缓冲区;
步骤33、启动所述视频流接收线程;
步骤34、在所述视频流接收线程中判断是否接收到退出命令,如果接收到,则执行步骤35,否则执行步骤36;
步骤35、停止接收视频流,并判断双缓冲区中是否有需要存储的视频数据,如果有,将缓冲区的存满标志置成已满,并进行数据占位填充(保证整个缓冲区都是填满的),如果没有,则退出循环,等待线程退出;
步骤36、准备接收视频流,判断是否接收到所述视频流接收线程的退出信号,如果接收到,则执行步骤35;否则执行步骤37;
步骤37、获取视频数据、帧类型,如果是I帧,判断基准时间是否存在,如果不存在,则将基准时间设置为当前时间,根据RTP数据的时间戳信息以及基准时间更新I帧绝对时间,执行步骤38;如果不是I帧,则执行步骤39;
步骤38、将之前保存的整个I帧序列保存至双缓冲区,将新接收到I帧保存至临时接收缓冲区,并更新序号、时间戳信息,执行步骤36;
步骤39、判断是否已经接收到I帧,如果已经收到了I帧,则将接收到的视频数据保存至临时接收缓冲区,并更新序号、时间戳信息,执行步骤36;否则数据丢弃,更新序号、时间戳信息,执行步骤36
本发明能充分的提高视频的存储和访问效率,视频存储时每个片段里面都包含有一个或多个I帧序列信息,在下载后通过解析后直接进行播放,不存在找不到I帧而无法播放的问题;同时,当缓冲区的大小不足以存储一个I帧序列时,将缓冲区的存满标志设置为已满,将数据区剩余空间进行占位填充,这样在存储时可以减少存储碎片的产生,提高访问效率。
从安全性角度而言,由于本发明视频存储时是按照指定的格式进行存储和数据填充,在一定程度上可以提高视频存储的安全性,没有视频存储的结构信息则无法快速的对视频进行解析,从而提高了视频存储和访问的安全性。。
附图说明
图1是本发明一较佳实施例中的实时视频流存储方法方法流程示意图;
图2是本发明另一较佳实施例中的云平台配置信息结构示意图;
图3是本发明一较佳实施例中的双缓冲区存储结构示意图;
图4是本发明另一较佳实施例中的I帧序列数据入双缓冲区模块实现流程示意图;
图5是本发明一较佳实施例中的视频流存储线程实现流程示意图;
图6是本发明另一较佳实施例中的视频流接收线程实现流程示意图。
具体实施方式
下面对本发明的较佳实施例进行详细阐述,以使本发明的优点和特征能更易于被本领域技术人员理解,从而对本发明的保护范围做出更为清楚明确的界定。
本实施例公开一种支持云平台采用双缓冲的实时视频流存储方法,具体流程如图1所示,包括如下步骤:
步骤1、获取云存储配置文件信息,配置文件信息包括服务部署ID、云平台配置信息、数据库配置信息。
其中,云平台配置信息结构如图2所示,包括实例编号、云平台登录信息、访问权限和分区配置信息。
步骤2、初始化数据库连接,连接数据库,获取部署ID对应的存储相机列表信息。
实时视频流存储支持分布式部署。
步骤3、获取调度服务器信息,同时启动存储管理主线程,为每个相机分配对应的双缓冲区,建立相机与双缓冲区之间的映射关系,进行内存的一次性申请。
其中,视频流的获取由调度服务向下级平台/设备发起请求,由下级平台/设备将码流发给实时视频流存储服务。
双缓冲为主缓冲区和备用缓冲区两个缓冲区,主缓冲区和备用缓冲区交替使用,双缓冲区存储结构如图3所示,每个缓冲区结构为{相机编号、存储状态、当前已经存储的数据大小、I帧列表信息(I帧偏移量、时间戳)}。
双缓冲区数据保存过程如下:
获取当前缓冲区剩余空间,两个缓冲区默认大小设置可以根据实际情况进行设置,当接收到一个完整的I帧序列时数据时,将该数据存入主缓冲区,当不是一个完整的I帧序列数据时,则将该数据保存在临时缓冲区。如果缓冲区剩余空间小于接收到的I帧数据,则将该缓冲区标志设置为已满,并将缓冲区剩余空间进行占位填充,将已经接收到的数据保存至另一个缓冲区中,并将I帧的时间戳信息保存起来,更新数据总大小信息。
步骤4、遍历相机列表信息,创建视频流存储线程和视频流接收线程,每路视频对应一个存储线程和一个视频流接收线程,同时建立相机与存储线程、视频流接收线程之间的映射关系,并向调度服务发起实时视频播放请求。
步骤5、调度服务向下级平台或设备发起视频点播请求,为每路视频开启一个存储线程和一个视频流接收线程。
步骤6、视频流接收线程在接收到视频流后,将数据保存到对应的缓冲区中,存储线程根据缓冲区存满标志将视频流存储到云平台上,并将时间节点信息保存至数据库中。
视频流接收线程接收视频流的具体方式为:
判断视频流的长度是否大于RTP包头长度,如果小于则直接丢弃;
否则获取到视频流数据,获取视频帧类型;
如果是I帧,判断临时接收缓冲区中是否有数据,如果没有,则直接将数据保存至临时缓冲区;如果有数据,则将临时缓冲区中的数据保存至缓冲区中,将接收到的I帧保存至临时缓冲区;
如果是P帧,判断是否找到了I帧,如果没有找到,则丢弃掉,如果已经找到,则将视频流保存至临时缓冲区中;
每次在处理完成后更新接收序号和接收时间戳信息。
I帧序列数据入双缓冲区实现流程如图4所示,具体步骤如下:
步骤11、根据获取到I帧序列数据、数据长度、I帧绝对时间信息;
步骤12、获取主缓冲区的状态,判断备用缓冲区中是否有数据,如果有数据,则执行步骤13;否则执行步骤14;
步骤13、获取备用缓冲区的剩余空间,判断备用缓冲区的剩余空间是否存够存储,如果是,则将数据拷贝至备用缓冲区,执行步骤15;否则将备用缓冲区的状态设置成已满,将剩下的空间进行占位填充,同时将数据拷贝至主缓冲区,执行步骤15
步骤14、判断主缓冲区的剩余空间是否足够存储,如果足够存储,则将数据拷贝至主缓冲区,执行步骤15;否则将主缓冲区的状态设置为已满,将剩下的空间进行占位填充,并将数据拷贝至备用缓冲区,执行步骤15;
步骤15、处理完毕。
视频流存储线程实现流程如图4所示,具体步骤如下:
步骤21、根据配置文件中的云平台配置信息初始化云平台接口、相机编号以及双缓冲区信息;
步骤22、启动视频流存储线程;
步骤23、判断是否接收到服务的退出命令,如果接收到退出命令,则退出循环,等待程序退出,否则执行步骤24;
步骤24、判断主缓冲区是否已满,如果已满,则调用云平台存储接口将数据保存至云平台,如果存储成功,则将视频片段信息保存至数据库,重置缓冲区,执行步骤25;
步骤25、判断备用缓冲区是否已经写满,如果备用缓冲区已经写满,则调用云平台存储接口将数据保存至云平台,如果存储成功,则将视频片段信息保存至数据库,重置缓冲区,执行步骤26;
步骤26、进行下一轮的判断,执行步骤23。
存储接口通过云平台配置信息进行初始化。
视频流接收线程实现流程如图5所示,具体步骤如下:
步骤31、初始化视频流接收线程,包括相机编号、双缓冲区;
步骤32、生成视频流接收端口,并设置临时接收缓冲区;
步骤33、启动视频流接收线程;
步骤34、在视频流接收线程中判断是否接收到退出命令,如果接收到,则执行步骤35,否则执行步骤36;
步骤35、停止接收视频流,并判断双缓冲区中是否有需要存储的视频数据,如果有,将缓冲区的存满标志置成已满,并进行数据占位填充(保证整个缓冲区都是填满的),如果没有,则退出循环,等待线程退出;
步骤36、准备接收视频流,判断是否接收到线程的退出信号,如果接收到,则执行步骤35;否则执行步骤37;
步骤37、获取视频数据、帧类型,如果是I帧,判断基准时间是否存在,(RTP((Realtime Transport Protocol,实时传输协议))数据获取到的时间戳都是相对时间),如果不存在,则将基准时间设置为当前时间,根据RTP数据的时间戳信息以及基准时间更新I帧绝对时间,执行步骤38;如果不是I帧,则执行步骤39;
步骤38、将之前保存的整个I帧序列保存至双缓冲区,将新接收到I帧保存至临时接收缓冲区,并更新序号、时间戳信息,执行步骤36;
步骤39、判断是否已经接收到I帧,如果已经收到了I帧,则将接收到的视频数据保存至临时接收缓冲区,并更新序号、时间戳信息,执行步骤36;否则数据丢弃,更新序号、时间戳信息,执行步骤36。
步骤7在存储完成后,重置相机的缓冲区,同时将视频流存储信息保存到数据库中;重复步骤3-7,直到接收到退出指令。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (8)

1.一种支持云平台采用双缓冲的实时视频流存储方法,其特征在于,所述方法包括如下步骤:
步骤1、获取云存储配置文件信息,所述信息包括服务部署ID、云平台配置信息、数据库配置信息;
步骤2、初始化数据库连接,连接所述数据库,获取所述部署ID对应的存储相机列表信息;
步骤3、获取调度服务信息,同时启动存储管理主线程,为每个相机分配对应的双缓冲区,建立相机与双缓冲区之间的映射关系,进行内存的一次性申请;
步骤4、遍历相机列表信息,创建视频流存储线程和视频流接收线程,每路视频对应一个存储线程和一个视频流接收线程,同时建立相机与存储线程、视频流接收线程之间的映射关系,并向调度服务发起实时视频播放请求;
步骤5、所述调度服务向下级平台或设备发起视频点播请求,为每路视频开启一个存储线程和一个视频流接收线程;
步骤6、所述视频流接收线程在接收到视频流后,将视频数据保存到对应的缓冲区中,所述存储线程根据缓冲区存满标志将所述视频数据存储到所述云平台上,并将时间节点信息保存至数据库中,所述视频流接收线程接收视频流的具体方式为判断所述视频流的长度是否大于RTP包头长度,如果小于则直接丢弃;否则,获取到视频流数据,获取视频帧类型;如果是I帧,判断临时接收缓冲区中是否有数据,如果没有,则直接将数据保存至所述临时缓冲区;如果有数据,则将所述临时缓冲区中的数据保存至所述缓冲区中,将接收到的I帧保存至所述临时缓冲区;如果是P帧,判断是否找到了I帧,如果没有找到,则丢弃掉,如果已经找到,则将视频流保存至临时缓冲区中
步骤7、在存储完成后,重置所述相机的缓冲区,同时将所述视频流存储信息保存到所述数据库中;重复步骤3-7,直到接收到退出指令。
2.根据权利要求1所述的实时视频流存储方法,其特征在于,所述相机双缓冲区为主缓冲区和备用缓冲区,所述主缓冲区和所述备用缓冲区交替使用。
3.根据权利要求2所述的实时视频流存储方法,其特征在于,所述每个缓冲区的结构为{相机编号、存储状态、当前已经存储的数据大小、I帧列表信息(I帧偏移量、时间戳)}。
4.根据权利要求1所述的实时视频流存储方法,其特征在于,所述步骤6中所述存储接口根据所述云平台配置信息中的参数调用云平台接口进行初始化,所述存储线程通过所述云平台的存储接口将所述视频流保存到所述云平台上。
5.根据权利要求3所述的实时视频流存储方法,其特征在于,所述步骤6中所述视频流接收线程接收视频流
每次在处理完成后更新接收序号和接收时间戳信息。
6.根据权利要求5所述的实时视频流存储方法,其特征在于,所述I帧序列数据入双缓冲区实现步骤如下:
步骤11、获取所述I帧序列数据、数据长度、I帧绝对时间信息;
步骤12、获取所述主缓冲区的状态,判断所述备用缓冲区中是否有数据,如果有数据,则执行步骤13;否则执行步骤14;
步骤13、获取所述备用缓冲区的剩余空间,判断所述备用缓冲区的剩余空间是否存够存储,如果是,则将数据拷贝至所述备用缓冲区,执行步骤15;否则将所述备用缓冲区的状态设置成已满,将剩下的空间进行占位填充,同时将数据拷贝至所述主缓冲区,执行步骤15;
步骤14、判断所述主缓冲区的剩余空间是否足够存储,如果足够存储,则将数据拷贝至所述主缓冲区,执行步骤15;否则将所述主缓冲区的状态设置为已满,将剩下的空间进行占位填充,并将数据拷贝至所述备用缓冲区,执行步骤15;
步骤15、处理完毕。
7.根据权利要求6所述的实时视频流存储方法,其特征在于,所述视频流存储线程实现步骤如下:
步骤21、根据所述配置文件中的云平台配置信息初始化云平台接口、相机编号以及双缓冲区信息;
步骤22、启动所述视频流存储线程;
步骤23、判断是否接收到服务的退出命令,如果接收到退出命令,则退出循环,等待程序退出,否则执行步骤24;
步骤24、判断所述主缓冲区是否已满,如果已满,则调用所述云平台存储接口将数据保存至云平台,如果存储成功,则将视频片段信息保存至数据库,重置缓冲区,执行步骤25;
步骤25、判断所述备用缓冲区是否已经写满,如果所述备用缓冲区已经写满,则调用云平台存储接口将数据保存至云平台,如果存储成功,则将视频片段信息保存至数据库,重置缓冲区,执行步骤26;
步骤26、进行下一轮的判断,执行步骤23。
8.根据权利要求6所述的实时视频流存储方法,其特征在于,所述视频流接收线程实现步骤如下:
步骤31、初始化所述视频流接收线程,包括所述相机编号、双缓冲区;
步骤32、生成视频流接收端口,并设置临时接收缓冲区;
步骤33、启动所述视频流接收线程;
步骤34、在所述视频流接收线程中判断是否接收到退出命令,如果接收到,则执行步骤35,否则执行步骤36;
步骤35、停止接收视频流,并判断双缓冲区中是否有需要存储的视频数据,如果有,将缓冲区的存满标志置成已满,并进行数据占位填充(保证整个缓冲区都是填满的),如果没有,则退出循环,等待线程退出;
步骤36、准备接收视频流,判断是否接收到所述视频流接收线程的退出信号,如果接收到,则执行步骤35;否则执行步骤37;
步骤37、获取视频数据、帧类型,如果是I帧,判断基准时间是否存在,如果不存在,则将基准时间设置为当前时间,根据RTP数据的时间戳信息以及基准时间更新I帧绝对时间,执行步骤38;如果不是I帧,则执行步骤39;
步骤38、将之前保存的整个I帧序列保存至双缓冲区,将新接收到I帧保存至临时接收缓冲区,并更新序号、时间戳信息,执行步骤36;
步骤39、判断是否已经接收到I帧,如果已经收到了I帧,则将接收到的视频数据保存至临时接收缓冲区,并更新序号、时间戳信息,执行步骤36;否则数据丢弃,更新序号、时间戳信息,执行步骤36。
CN201611061691.1A 2016-11-25 2016-11-25 一种支持云平台采用双缓冲的实时视频流存储方法 Active CN106791908B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611061691.1A CN106791908B (zh) 2016-11-25 2016-11-25 一种支持云平台采用双缓冲的实时视频流存储方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611061691.1A CN106791908B (zh) 2016-11-25 2016-11-25 一种支持云平台采用双缓冲的实时视频流存储方法

Publications (2)

Publication Number Publication Date
CN106791908A CN106791908A (zh) 2017-05-31
CN106791908B true CN106791908B (zh) 2019-11-01

Family

ID=58911086

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611061691.1A Active CN106791908B (zh) 2016-11-25 2016-11-25 一种支持云平台采用双缓冲的实时视频流存储方法

Country Status (1)

Country Link
CN (1) CN106791908B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109819309B (zh) * 2017-11-21 2021-12-14 中国电信股份有限公司 云存储平台、方法和视频点播平台、方法和视频播放系统
CN111711779A (zh) * 2020-06-29 2020-09-25 重庆紫光华山智安科技有限公司 一种实时视频节点多维度缓存方法及设备
CN115955576B (zh) * 2023-03-10 2023-06-09 深圳市泛联信息科技有限公司 视频数据访问方法、装置、存储节点及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101860657A (zh) * 2010-05-14 2010-10-13 中国科学院上海技术物理研究所 大视场可见红外双通道相机实时图像采集方法及系统
CN102075738A (zh) * 2011-03-01 2011-05-25 天津市天祥世联网络科技有限公司 视频监控系统
CN102143215A (zh) * 2011-01-20 2011-08-03 中国人民解放军理工大学 一种基于网络的pb级云存储系统及其处理方法
CN102547239A (zh) * 2011-12-29 2012-07-04 浙江工业大学 基于Android移动终端的视频监控系统
CN103747274A (zh) * 2013-12-18 2014-04-23 北京邮电大学 一种增设缓存集群的视频数据中心及其缓存资源调度方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008193510A (ja) * 2007-02-06 2008-08-21 Canon Inc 映像送信装置、映像受信装置、及び映像伝送システム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101860657A (zh) * 2010-05-14 2010-10-13 中国科学院上海技术物理研究所 大视场可见红外双通道相机实时图像采集方法及系统
CN102143215A (zh) * 2011-01-20 2011-08-03 中国人民解放军理工大学 一种基于网络的pb级云存储系统及其处理方法
CN102075738A (zh) * 2011-03-01 2011-05-25 天津市天祥世联网络科技有限公司 视频监控系统
CN102547239A (zh) * 2011-12-29 2012-07-04 浙江工业大学 基于Android移动终端的视频监控系统
CN103747274A (zh) * 2013-12-18 2014-04-23 北京邮电大学 一种增设缓存集群的视频数据中心及其缓存资源调度方法

Also Published As

Publication number Publication date
CN106791908A (zh) 2017-05-31

Similar Documents

Publication Publication Date Title
WO2023024834A9 (zh) 一种游戏数据处理方法、装置及存储介质
EP4228178A1 (en) Communication method and apparatus, computer readable medium, and electronic device
CN104025548B (zh) 用于被递送媒体的灵活缓存的方法和设备
CN103297807A (zh) 一种基于hadoop平台的提高视频转码效率的方法
CN106791908B (zh) 一种支持云平台采用双缓冲的实时视频流存储方法
CN110502259B (zh) 服务器版本升级方法、视联网系统、电子设备及存储介质
CN106162235A (zh) 用于切换视频流的方法和装置
CN107483976A (zh) 直播管控方法、装置及电子设备
CN110768829B (zh) 一种基于dpdk实现流量分析业务性能线性增长的方法
US6744741B1 (en) System and method for maintaining a plurality of media conferences
CN101674486A (zh) 一种流媒体音视频同步方法及系统
CN104661112B (zh) 基于可伸缩选择窗口的视频流文件传输方法及装置
CN103841432A (zh) 一种复合视频数据的传输方法和设备
CN109672857B (zh) 监控资源的信息处理方法和装置
CN106059936B (zh) 云系统组播文件的方法及装置
CN102201907A (zh) 一种分布式仿真同步的实现方法
CN107223334A (zh) 用于将mmtp流转换为mpeg‑2ts的方法和装置
CN109547162A (zh) 基于两套单向边界的数据通信方法
CN106789917B (zh) 数据包处理方法及装置
CA2891927C (en) Method and apparatus for traffic management scheduling
WO2011072550A1 (zh) 一种媒体数据的平稳输出方法及装置
US20210392391A1 (en) Data transmission method and apparatus
TW200816670A (en) Transmit driver data communication
CN109587524B (zh) 一种向互联网终端同步视联网资源的方法和装置
CN105657448B (zh) 一种编码视频流的转发方法、装置及系统

Legal Events

Date Code Title Description
PB01 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