CN112702550B - 一种nvr多进程共享音视频流***及实现方法 - Google Patents
一种nvr多进程共享音视频流***及实现方法 Download PDFInfo
- Publication number
- CN112702550B CN112702550B CN202011516363.2A CN202011516363A CN112702550B CN 112702550 B CN112702550 B CN 112702550B CN 202011516363 A CN202011516363 A CN 202011516363A CN 112702550 B CN112702550 B CN 112702550B
- Authority
- CN
- China
- Prior art keywords
- audio
- video frame
- video
- area
- data
- 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
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Television Signal Processing For Recording (AREA)
Abstract
本发明公开了一种NVR多进程共享音视频流***,包括:共享内存区、音视频帧信息区及音视频帧数据区,所述音视频帧信息区包括多个音视频帧模块,所述音视频帧数据区包括多个音视频帧数据模块;所述共享内存区用于实现多进程间音视频数据的快速高效共享;所述音视频帧信息区用于存放音视频帧信息;所述音视频帧数据区用于存放音视频帧数据。根据本发明,实现音视频视频流共享代码结构比较简单,各个业务模块代码耦合度比较低,不存在相互干扰程序易维护及健壮性高。
Description
技术领域
本发明涉及网络硬盘录像机的技术领域,特别涉及一种NVR多进程共享音视频流***及实现方法。
背景技术
随着NVR(Network Video Recorder网络硬盘录像机)音视频业务的不断发展,共享NVR的音视频流变得越来越重要。譬如NVR通过网络摄像头(IPC)获取的音视频流需要进行预览解码,需要进行写入硬盘保存录像文件,需要通过网络上传云服务器,需要通过peer-to-peer技术实现手持设备的视频预览。现有NVR软件多采用单进程多线程的架构,这种架构下实现音视频视频流共享代码结构比较复杂,各个业务模块代码耦合度比较高,模块之间存在相互干扰,程序的易维护性和健壮性很差。
发明内容
针对现有技术中存在的不足之处,本发明的目的是提供一种NVR多进程共享音视频流的实现方法,实现音视频视频流共享代码结构比较简单,各个业务模块代码耦合度比较低,不存在相互干扰程序易维护及健壮性高。为了实现根据本发明的上述目的和其他优点,提供了一种NVR多进程共享音视频流***,包括:
共享内存区、音视频帧信息区及音视频帧数据区,所述音视频帧信息区包括多个音视频帧模块,所述音视频帧数据区包括多个音视频帧数据模块;
所述共享内存区用于实现多进程间音视频数据的快速高效共享;
所述音视频帧信息区用于存放音视频帧信息;
所述音视频帧数据区用于存放音视频帧数据。
优选的,所述共享内存区包括写进程标识符、写入音视频帧的数目及读进程的数目。
优选的,所述音视频帧模块包括帧类型、帧数据的偏移地址及帧数据的长度。
一种NVR多进程共享音视频流的实现方法,包括以下步骤:
S1、所述共享内存区进行写入相关的视音频帧信息和数据;
S2、通过音视频帧信息区与音视频帧数据区分别进行读取进程,存放入不同的音视频帧模块与音视频帧数据模块;
S3、通过音视频帧信息块的帧类型对其中的音频帧进行过滤,进行快速筛选帧;
S4、通过共享内存区头部的写入帧数目快速定位到最新一帧音视频帧的信息块和数据块所在的位置,并且通过音视频帧信息块中的偏移地址和长度,读取音视频数据,进行音视频帧的快速跳转。
优选的,所述步骤S1包括:
S11、通过共享内存区头部中的写进程标识符对当前的写进程进行写权限鉴权;
S12、写进程每写入一个音视频帧,共享内存区头部的写入音视频帧的数目增加1,并通过写入音视频帧数目计算音视频帧信息块所在的位置,把音视频帧信息写入音视频信息块,把音视频数据写入音视频数据区对应的音视频数据块中;
S13、音视频帧信息区和音视频帧数据区写满后,新写入的音视频帧覆盖最早写入的音视频帧的内存,进行音视频帧的循环写入。
本发明与现有技术相比,其有益效果是:通过把需要共享音视频流的各个业务模块采用不同进程的方式进行隔离开,这样各个音视频业务模块之间不存在相关的干扰,也便于裁剪掉不需要的音视频流业务模块,或者增加新的音视频流业务模块。各个音视频业务进程采用共享内存区的方式实现多进程间音视频数据的快速高效共享。共享视频区则通过环形内存的方式进行内存管理,同时把音视频帧信息和音视频帧数据分开存放,可以实现快速的筛选检索和跳转读取。
附图说明
图1为根据本发明的NVR多进程共享音视频流***及实现方法的结构示意图;
图2为根据本发明的NVR多进程共享音视频流***及实现方法的多进程共享音视频流结构示意图;
图3为根据本发明的NVR多进程共享音视频流***及实现方法的共享内存区与音视频帧信息模块的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参照图1-3,一种NVR多进程共享音视频流***,包括:共享内存区、音视频帧信息区及音视频帧数据区,所述音视频帧信息区包括多个音视频帧模块,所述音视频帧数据区包括多个音视频帧数据模块,通过把需要共享音视频流的各个业务模块采用不同进程的方式进行隔离开,这样各个音视频业务模块之间不存在相关的干扰,也便于裁剪掉不需要的音视频流业务模块,或者增加新的音视频流业务模块,共享视频区则通过环形内存的方式进行内存管理,同时把音视频帧信息和音视频帧数据分开存放,可以实现快速的筛选检索和跳转读取;
所述共享内存区用于实现多进程间音视频数据的快速高效共享;
所述音视频帧信息区用于存放音视频帧信息;
所述音视频帧数据区用于存放音视频帧数据。
进一步的,所述共享内存区包括写进程标识符、写入音视频帧的数目及读进程的数目。
进一步的,所述音视频帧模块包括帧类型、帧数据的偏移地址及帧数据的长度。
进一步的,一种NVR多进程共享音视频流的实现方法,包括以下步骤:
S1、所述共享内存区进行写入相关的视音频帧信息和数据;
S2、通过音视频帧信息区与音视频帧数据区分别进行读取进程,存放入不同的音视频帧模块与音视频帧数据模块;
S3、通过音视频帧信息块的帧类型对其中的音频帧进行过滤,进行快速筛选帧;
S4、通过共享内存区头部的写入帧数目快速定位到最新一帧音视频帧的信息块和数据块所在的位置,并且通过音视频帧信息块中的偏移地址和长度,读取音视频数据,进行音视频帧的快速跳转。
进一步的,所述步骤S1包括:
S11、通过共享内存区头部中的写进程标识符对当前的写进程进行写权限鉴权;
S12、写进程每写入一个音视频帧,共享内存区头部的写入音视频帧的数目增加1,并通过写入音视频帧数目计算音视频帧信息块所在的位置,把音视频帧信息写入音视频信息块,把音视频数据写入音视频数据区对应的音视频数据块中;
S13、音视频帧信息区和音视频帧数据区写满后,新写入的音视频帧覆盖最早写入的音视频帧的内存,进行音视频帧的循环写入。
如图2所示一实施例:写进程写入了5个音视频帧信息和数据,此时有3个读进程:读进程A读第1帧数据,读进程B读第3帧数据,读进程C读第4帧数据。它们以只读的方式去读取音视频的帧信息和帧数据,并且在各自的进程中记录读到帧数。所以读进程A,B,C之间不存在彼此干扰,即使其中一个读进程出现问题,不会影响其他进程的正常运行。
如果进程B想只读取视频帧信息和数据,那么进程B就可以根据音视频帧信息块的帧类型对其中的音频帧进行过滤,这样就实现了帧的快速筛选,而不用去具体分析帧数据,这样做更加高效。
如果进程A想读取最新的一个视频帧,就可以通过共享内存区头部的写入帧数目快速定位到最新一帧音视频帧的信息块和数据块所在的位置,并通过音视频帧信息块中的偏移地址和长度,读取音视频数据。这样就可以实现音视频帧的快速跳转,满足也无需求。
这里说明的设备数量和处理规模是用来简化本发明的说明的,对本发明的应用、修改和变化对本领域的技术人员来说是显而易见的。
尽管本发明的实施方案已公开如上,但其并不仅限于说明书和实施方式中所列运用,它完全可以被适用于各种适合本发明的领域,对于熟悉本领域的人员而言,可容易地实现另外的修改,因此在不背离权利要求及等同范围所限定的一般概念下,本发明并不限于特定的细节和这里示出与描述的图例。
Claims (1)
1.一种NVR多进程共享音视频流***,其特征在于,包括:
共享内存区、音视频帧信息区及音视频帧数据区,所述音视频帧信息区包括多个音视频帧模块,所述音视频帧数据区包括多个音视频帧数据模块,所述音视频帧模块包括帧类型、帧数据的偏移地址及帧数据的长度;把需要共享音视频流的各个业务模块采用不同进程的方式进行隔离开,共享视频区则通过环形内存的方式进行内存管理,同时把音视频帧信息和音视频帧数据分开存放;
所述共享内存区用于实现多进程间音视频数据的共享,所述共享内存区包括写进程标识符、写入音视频帧的数目及读进程的数目;
所述音视频帧信息区用于存放音视频帧信息;
所述音视频帧数据区用于存放音视频帧数据;
NVR多进程共享音视频流的实现方法,包括以下步骤:
S1、所述共享内存区进行写入相关的视音频帧信息和数据;
S2、通过音视频帧信息区与音视频帧数据区分别进行读取进程,存放入不同的音视频帧模块与音视频帧数据模块;
S3、通过音视频帧信息块的帧类型对其中的音频帧进行过滤,进行筛选帧;
S4、通过共享内存区头部的写入帧数目定位到最新一帧音视频帧的信息块和数据块所在的位置,并且通过音视频帧信息块中的偏移地址和长度,读取音视频数据,进行音视频帧的跳转;
步骤S1包括:
S11、通过共享内存区头部中的写进程标识符对当前的写进程进行写权限鉴权;
S12、写进程每写入一个音视频帧,共享内存区头部的写入音视频帧的数目增加1,并通过写入音视频帧数目计算音视频帧信息块所在的位置,把音视频帧信息写入音视频信息块,把音视频数据写入音视频数据区对应的音视频数据块中;
S13、音视频帧信息区和音视频帧数据区写满后,新写入的音视频帧覆盖最早写入的音视频帧的内存,进行音视频帧的循环写入。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011516363.2A CN112702550B (zh) | 2020-12-21 | 2020-12-21 | 一种nvr多进程共享音视频流***及实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011516363.2A CN112702550B (zh) | 2020-12-21 | 2020-12-21 | 一种nvr多进程共享音视频流***及实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112702550A CN112702550A (zh) | 2021-04-23 |
CN112702550B true CN112702550B (zh) | 2023-08-04 |
Family
ID=75507748
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011516363.2A Active CN112702550B (zh) | 2020-12-21 | 2020-12-21 | 一种nvr多进程共享音视频流***及实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112702550B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102243615A (zh) * | 2011-03-21 | 2011-11-16 | 广东志成冠军集团有限公司 | 一种支持音视频帧存储的内存缓冲管理机制 |
CN111694601A (zh) * | 2019-03-15 | 2020-09-22 | 英特尔公司 | 使用细粒度依赖性检查加速同步并基于可用共享存储器空间调度优化的图形***和方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103514053B (zh) * | 2013-09-22 | 2017-01-25 | 中国科学院信息工程研究所 | 一种基于共享内存的进程间通讯方法 |
CN104991746A (zh) * | 2015-07-27 | 2015-10-21 | 深圳市蓝天威视科技有限公司 | 一种存储和读取fat硬盘内录像数据的方法及*** |
CN107040742B (zh) * | 2017-03-10 | 2019-10-18 | 浙江宇视科技有限公司 | 一种异常检测方法及网络硬盘录像机nvr及视频服务器 |
CN107371061B (zh) * | 2017-08-25 | 2021-03-19 | 普联技术有限公司 | 一种视频流播放方法、装置及设备 |
CN108668095A (zh) * | 2018-04-17 | 2018-10-16 | 上海小蚁科技有限公司 | 媒体流共享方法及装置、存储介质、终端 |
CN111061443B (zh) * | 2018-10-17 | 2023-10-10 | 杭州海康威视数字技术股份有限公司 | 菜单图像显示方法、装置、电子设备及机器可读存储介质 |
-
2020
- 2020-12-21 CN CN202011516363.2A patent/CN112702550B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102243615A (zh) * | 2011-03-21 | 2011-11-16 | 广东志成冠军集团有限公司 | 一种支持音视频帧存储的内存缓冲管理机制 |
CN111694601A (zh) * | 2019-03-15 | 2020-09-22 | 英特尔公司 | 使用细粒度依赖性检查加速同步并基于可用共享存储器空间调度优化的图形***和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112702550A (zh) | 2021-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4099973B2 (ja) | 映像データ送信方法及び映像データ受信方法、並びに映像監視システム | |
CN100517306C (zh) | 媒体基础媒体处理器 | |
JP4285512B2 (ja) | 記録装置、記録方法、再生装置、再生方法、記録再生装置、記録再生方法、撮像記録装置及び撮像記録方法 | |
US20060182357A1 (en) | Intelligent, dynamic, long-term digital surveilance media storage system | |
US9472241B2 (en) | Identifying and rerecording only the incomplete units of a program broadcast recording | |
CN102510519A (zh) | 流媒体数据的处理方法、播放方法以及装置 | |
CN103165151A (zh) | 多媒体文件播放方法和装置 | |
JP2000023092A (ja) | 連続映像の記録・再生装置 | |
CN1160952C (zh) | 记录搜索信息并用其搜索所记录数字数据流的方法和装置 | |
CN103780877A (zh) | 基于h264编码的海量视频数据的存储及检索方法 | |
CN101057295A (zh) | 写关于数据流中的图像数据段的信息以及使用该信息的方法和装置 | |
CN101326820B (zh) | 信息处理装置和信息处理方法 | |
CN101895736A (zh) | 媒体流数据处理方法及其装置 | |
CN112702550B (zh) | 一种nvr多进程共享音视频流***及实现方法 | |
US20180189143A1 (en) | Simultaneous compression of multiple stored videos | |
JP4315618B2 (ja) | デジタル放送の放送番組記録装置 | |
CN109874036B (zh) | 一种视频分析方法及装置、设备、存储介质 | |
CN102231847B (zh) | 一种支持流媒体文件直接帧精确定位方法 | |
CN111447490A (zh) | 流媒体文件处理方法及装置 | |
JP2011172128A (ja) | メタ情報付与システム、メタ情報付与装置、及びメタ情報付与方法 | |
US8442126B1 (en) | Synchronizing audio and video content through buffer wrappers | |
KR101541219B1 (ko) | 병렬 분산 처리를 통한 고속 녹화 장치 및 그 방법 | |
CN117119143B (zh) | 基于全息视频的视频侦查***和方法、设备及存储介质 | |
CN102157173A (zh) | 记录设备、成像记录设备、记录方法以及程序 | |
KR20120035406A (ko) | 동영상 파일 재생 방법 및 장치 |
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 |