CN111355933B - 一种Gstreamer框架适时检测方法及服务器 - Google Patents
一种Gstreamer框架适时检测方法及服务器 Download PDFInfo
- Publication number
- CN111355933B CN111355933B CN202010295914.0A CN202010295914A CN111355933B CN 111355933 B CN111355933 B CN 111355933B CN 202010295914 A CN202010295914 A CN 202010295914A CN 111355933 B CN111355933 B CN 111355933B
- Authority
- CN
- China
- Prior art keywords
- data
- gstreamer
- state
- pipeline
- video
- 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
- 238000001514 detection method Methods 0.000 title claims abstract description 17
- 238000000034 method Methods 0.000 claims abstract description 26
- 230000004044 response Effects 0.000 claims abstract description 21
- 238000012545 processing Methods 0.000 claims abstract description 20
- 238000004891 communication Methods 0.000 claims abstract description 13
- 230000008859 change Effects 0.000 description 17
- 230000008569 process Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 11
- 238000012544 monitoring process Methods 0.000 description 10
- 230000007704 transition Effects 0.000 description 9
- 230000006870 function Effects 0.000 description 7
- 230000005059 dormancy Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 230000007958 sleep Effects 0.000 description 3
- 239000011800 void material Substances 0.000 description 3
- 238000005457 optimization Methods 0.000 description 2
- 241000282326 Felis catus Species 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012806 monitoring device Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/18—Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N17/00—Diagnosis, testing or measuring for television systems or their details
-
- 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/60—Network 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/63—Control 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/643—Communication protocols
- H04N21/6437—Real-time Transport Protocol [RTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/60—Control of cameras or camera modules
- H04N23/65—Control of camera operation in relation to power supply
- H04N23/651—Control of camera operation in relation to power supply for reducing power consumption by affecting camera operations, e.g. sleep mode, hibernation mode or power off of selective parts of the camera
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- General Health & Medical Sciences (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本申请实施例涉及视频图像消息处理技术领域,尤其涉及一种基于Gstreamer框架适时检测方法及服务器。本申请避免管道总线上出现错误消息或数据流结束消息后就自动释放管道的所有资源,实现视频数据流中断后自动续接的功能,从而避免网络摄像头设备频繁待机、唤醒导致视频流的获取及其后端处理不够稳定的问题。所述服务器包括:通信器,用于与摄像头通信连接;控制器,被配置为执行:响应于接收到Gstreamer管道上出现的错误消息或数据流结束消息,将所述Gstreamer管道的状态设置为初始状态;在所述Gstreamer管道响应完成后,将所述Gstreamer管道的状态设置为播放状态。
Description
技术领域
本申请涉及视频图像消息处理技术领域,特别涉及一种基于Gstreamer框架适时检测方法及服务器。
背景技术
传统的网络摄像头需要二十四小时不间断供电、无休眠的抓取视频数据供后端图像处理、算法识别使用。传统的网络监控摄像头,使用的是POE供电的方式,通过网线的方式,实现RTSP流的24小时不间断数据路获取的方法进行监控。其后续使用的算法进程也是在持续运行的,相当消耗系统资源,且数据量庞大。对于数据的存储和检测都需要耗费大量的时间和精力。
随着检测技术的发展和需求的变化,在实际应用场景中,往往希望出现待检物体后才开始捕捉视频图像,主要是采用自动休眠的监控方式。自动休眠的监控设备,一般不对外提供RTSP流的访问方式,而是通过SDK接口的方式,与客户端之间建立通信,再结合外部传感器(红外传感器、声控传感器)来实现自动休眠。但是自动休眠的网络摄像头设备频繁待机、唤醒会导致视频流的获取及其后端处理不够稳定。
发明内容
本申请提供一种基于Gstreamer框架适时检测方法及服务器,用以在自动休眠或外部中断的情况下,使用RTSP流的访问方式来获取视频数据流,避免网络摄像头设备频繁待机、唤醒导致视频流的获取及其后端处理不够稳定的问题。
第一方面,提供一种服务器,包括:
通信器,用于与摄像头通信连接;
控制器,被配置为执行:
响应于接收到Gstreamer管道上出现的错误消息或数据流结束消息,将所述Gstreamer管道的状态设置为初始状态;
在所述Gstreamer管道响应完成后,将所述Gstreamer管道的状态设置为播放状态。
第二方面,提供一种基于Gstreamer框架适时检测方法,包括:
响应于接收到Gstreamer管道上出现的错误消息或数据流结束消息,将所述Gstreamer管道的状态设置为初始状态;
在所述Gstreamer管道响应完成后,将所述Gstreamer管道的状态设置为播放状态。
在上述实施例中,当出现外部因素或内部自动休眠情况导致视频数据流出现中断的情况时,服务器会接收到Gstreamer管道上出现的错误消息或数据流结束消息,将所述Gstreamer管道的状态设置为初始状态;在所述Gstreamer管道响应完成后,将所述Gstreamer管道的状态设置为播放状态。本申请通过以上方式避免管道总线上出现错误消息或数据流结束消息后就自动释放管道的所有资源,实现视频数据流中断后自动续接的功能,从而避免网络摄像头设备频繁待机、唤醒导致视频流的获取及其后端处理不够稳定的问题。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1A中示例性示出了服务器和摄像头之间操作场景的示意图;
图1B中示例性示出了图1A中服务器100的配置框图;
图2中示例性示出了一种基于Gstreamer框架适时检测方法的流程图;
图3A中示例性示出了Gstreamer管道解析RTSP数据流框图;
图3B中示例性示出了Gstreamer元件从PLAYING到NULL的状态转换示意图;
图3C中示例性示出了Gstreamer元件从NULL到PLAYING的状态转换示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
图1A中示例性示出了服务器和摄像头之间操作场景的示意图。
如图1A所示,服务器100和摄像头200之间可以通过多种通信方式进行数据通信。这里可允许通过局域网(LAN)、无线局域网(WLAN)和其他网络进行通信连接。
摄像头200可以是智能家居的猫眼摄像头,也可以是智慧社区的安防摄像头。摄像头200提供RTSP数据的拉取。
图1B中示例性示出了服务器100的配置框图。如图1B所示,管家服务器100包括控制器110、存储器120、通信器130、供电电源140。
控制器110包括随机存取存储器(RAM)111、只读存储器(ROM)112、处理器113、通信接口以及通信总线。控制器110用于控制管家服务器100的运行和操作,以及内部各部件之间的通信协作、外部和内部的数据处理功能。
存储器120,用于在控制器110的控制下存储驱动和控制管家服务器100的数据。
通信器130在控制器110的控制下,实现摄像头200之间控制信号和数据信号的通信。如:服务器100可经由通信器130接收由摄像头200发送的数据。
供电电源140,用于在控制器110的控制下为管家服务器100各元件提供运行电力支持。形式可以为电池及相关控制电路。
图2示例性示出了一种基于Gstreamer框架适时检测方法的流程图。
结合图2所示的方法来说,基于Gstreamer框架适时检测方法包括以下步骤S21~S29:
步骤S21:获取所述摄像头拍摄的视频流数据;
需要说明的是,摄像头提供RTSP数据的拉取,管家服务器获取到RTSP数据流后需要对其进行解析。
步骤S22:解析所述视频流数据;
在本申请的一些实施例中,采用在Gstreamer框架下对RTSP数据流进行解析。
GStreamer是一个创建流媒体应用程序的框架,它是基于插件的,这些插件能够很方便的接入到任意的管道当中,最大限度的实现代码的复用。
解析所述视频流数据的具体步骤,包括:
步骤一、获取所述视频流数据中编码格式的数据;
步骤二、解析所述编码格式的数据;
步骤三、将解析后的数据进行解码,得到解析后的视频流数据,解析后的视频流数据为RGB或YUV数据。
以h.264编码格式的数据为例,图3A是Gstreamer管道解析RTSP数据流框图。如图3A所示,Gstreamer管道解析所述视频流数据的具体步骤,包括:
1)从一个源获取RTSP数据流;
2)解析RTP数据包,从中获取编码格式的数据,例如h.264格式的数据;
3)在解码之前先对编码格式的数据进行解析;
4)将解析之后的数据送到解码器进行解码;
5)将解码后的的YUV或RGB数据送给appsink模块进行处理;
6)Appsink元件对外提供解码后的数据调用。
步骤S23:将解析后的视频流数据写入共享内存。
写入共享内存的解析后的视频流数据供算法进程调用。
其中,共享内存是进程之间数据通信的一种方式。它允许两个或多个进程访问同一块内存。在本方案中,将解码后的视频裸数据通过Gstreamer的appsink元件写入共享内存,每一次写入一帧图像。每次往共享内存中写入数据的地址相同,即新写入的图像帧数据覆盖上一帧图像数据,每一帧图像数据的大小相同。以1080p分辨率大小的视频数据为例,若解码后的视频裸数据格式为YUV420,那么每次写入的视频帧数据大小为:1080*1920*3/2;若写入的是RGB格式数据,那么每次写入的视频帧数据大小为:1080*1920*3。
在本申请的一些实施例中,将解码后的视频裸数据RGB/YUV写入共享内存是通过appsink这个Gstreamer的元件来实现的。
Appsink元件是Gstreamer框架提供的一个插件,可以实现将Gstreamer管道中的数据向外部提供调用。在Gstreamer管道中通过“new-sample”信号与Appsink元件对象进行绑定来实现其回调函数的调用。
在Appsink元件的回调函数中,实现将解码后的视频裸数据写入共享内存:
//等待获取信号量
if(EOWNERDEAD==pthread_mutex_lock(sharedLock1))
{
pthread_mutex_consistent(sharedLock1);
}
*shm_data1=framenum;
memcpy((unsigned char*)(shm_data1+4),gstData,gstSize);
//数据写完后,释放信号量
pthread_mutex_unlock(sharedLock1);
其中:
(1)shm_data1
//get the share memory address获取共享内存的地址
shm_data1=(unsigned char*)((uint8_t*)shm_addr1+mutex_size);
(2)shm_addr1——共享内存的首地址
//获取共享内存的首地址,并映射到本地内存中
void*shm_addr1=shmat(shm_id1,NULL,0);
//根据shm_id1来分配一片共享内存,并返回其首地址
if(shm_addr1==(void*)(-1))
{
printf("rtsp shmat addr error..\n");
return-1;
}
(3)sharedLock1——进程锁
sharedLock1=(pthread_mutex_t*)shm_addr1;
(3)gstData——指向视频帧数据的指针
(4)gstSize——视频帧数据的大小
(5)framenum——对视频帧的序列号进行记录,用于之后断流之后共享内存中视频帧数据的状态判断,不必一直调用算法处理图像数据,从而实现系统资源优化的目的。
传统的网络监控摄像头利用RTSP流的24小时不间断数据路获取的方法进行监控。其后续使用的算法进程也是在持续运行的。即在步骤S23之后,持续利用人物识别算法从共享内存中读取解码后的RGB或YUV数据,进行算法识别,输出识别结果。该方式相当消耗系统资源,且数据量庞大。对于数据的存储和检测都需要耗费大量的时间和精力。
本申请在自动休眠或外部中断的情况下,依然可以使用RTSP流的访问方式来获取视频数据流,且不需要算法进程一直处于运行计算的状态,从而降低系统资源消耗,提升优化性能。本申请提供具体方法如下:
步骤S24:监听Gstreamer管道的消息。
在本申请的一些实施例中,支持以下几种视频数据流中断的续接处理:一是外部因素导致的中断。其中,包括POE供电的情况下,网线接触不良导致的断流和电源断电的情况。二是内部自动休眠情况下导致的中断。其中,包括自动休眠的种类(红外检测、声控检测)等。
在本申请的一些实施例中,通过设置循环体和标识位,在循环体内不断监听Gstreamer总线上出现的消息。
如果当前视频流出现中断,且该中断造成的的源头是视频源设备导致的,Gstreamer管道中的源元件source在无法连接到视频源设备后,会向Gstreamer管道的总线发出错误消息(GST_MESSAGE_EOS)的。如果当前视频流出现中断,且中断的时间较短,会向Gstreamer管道的总线发出数据流结束消息(GST_MESSAGE_ERROR)。
代码如下:
GstBus*bus=gst_element_get_bus(pipeline);
GstMessage*msg=gst_bus_timed_pop_filtered(bus,GST_CLOCK_TIME_NONE,(GstMessageType)(GST_MESSAGE_ERROR|GST_MESSAGE_EOS));
当出现视频数据流中断的情况时,Gstreamer管道中的source元件发出错误消息(GST_MESSAGE_EOS)或数据流结束消息(GST_MESSAGE_ERROR)到Gstreamer管道的总线上。其中,source元件是指图3A中rtspsrc插件。代码如下:
Gstreamer管道中的各个元件在接收到管道上的错误消息(GST_MESSAGE_EOS)或数据流结束消息(GST_MESSAGE_ERROR)后,会将自身的元件状态进行切换。其最终的目标状态是由正在播放状态(PLAYING)切换到初始(NULL)状态,并释放掉管道中的所有资源(元件、衬垫)。
为了实现断流后自动续接的功能,避免管道总线上出现错误消息(GST_MESSAGE_EOS)或数据流结束消息(GST_MESSAGE_ERROR)后就自动释放管道的所有资源,执行步骤S25-S26.
步骤S25:响应于接收到Gstreamer管道上出现的错误消息或数据流结束消息,将所述Gstreamer管道的状态设置为初始状态;
将Gstreamer管道的状态设置为NULL的代码如下:
gst_element_set_state(pipeline,GST_STATE_NULL);
本申请先强制将Gstreamer管道的状态设置为NULL的原因是:管道总线上出现错误消息(GST_MESSAGE_EOS)或数据流结束消息(GST_MESSAGE_ERROR)会导致各个元件或衬垫进行状态转换的响应,在切换的过程中,管道中的数据会出现阻塞,且各个元件的切换状态并不能保证完全的同步和一致。
由于本申请的目的是将视频流再次切换到PLAYING状态,因此,再进行目标状态“PLAYING”的设置之前,需要先进行状态的“清零”操作,即先设置状态为“NULL”,再从同一起点开始向目标状态进行转换。
需要注意的是,将管道状态设置为“NULL”之后,管道中动态添加的衬垫会被移除,但是各个元件还存在与管道中,资源并没有被释放。
在本申请的一些实施例中,Gstreamer的元件Element从正确运行的PLAYING状态转换到初始的NULL状态的过程如图3B所示,图3B是Gstreamer元件从PLAYING到NULL的状态转换示意图。
其中,1、GST_STATE_CHANGE_PLAYING_TO_PAUSED:状态从PLAYING变为PAUSED
大多数元件会忽略这个状态的转换;
接收器(sinks)将取消任何GstClock调用的等待阻塞;
如果一个sink当前没有持有一个buffer进行播放的话,就将返回GST_STATE_CHANGE_ASYNC,并在接收到一个新buffer或者GST_EVENT_EOS时完成状态转换;
所有队列中的GST_MESSAGE_EOS消息都将被移除,因为当状态从PAUSED回到PLAYING时,这些队列中的消息将被重新发送,这个EOS消息是保存在GstBin容器的队列当中;
直播源(live sources)停止产生数据并返回GST_STATE_CHANGE_NO_PREROLL。
2、GST_STATE_CHANGE_PAUSED_TO_READY:状态从PAUSED变为READY
sinks释放所有预填充的等待阻塞;
元件释放所有对设备的等待阻塞;
元件的Chain和get_range函数均将返回GST_FLOW_FLUSHING;
元件的所有衬垫将被停用以便流变为不可用状态并停止流的相关线程;
接收(sink)衬垫将移除所有之前协商好的格式(formats);
元件将移除所有的不定衬垫(sometimes pad)。
3、GST_STATE_CHANGE_READY_TO_NULL:状态从READ变为NULL元件关闭其包含的所有设备;
元件重置其所有内部状态。
需要补充说明的是,在Gstreamer中GstElement的状态定义如下:
其中,
GST_STATE_VOID_PENDING:没有等待状态,这只是作为一个枚举的起始;
GST_STATE_NULL:NULL或初始化状态;
GST_STATE_READY:准备好状态;
GST_STATE_PAUSED:暂停状态;
GST_STATE_PLAYING:播放状态。
步骤S26:在所述Gstreamer管道响应完成后,将所述Gstreamer管道的状态设置为播放状态。
其中,在Gstreamer管道的状态设置为初始状态之后,需要给一定的时间,等待管道响应完成。
将Gstreamer管道的状态设置为PLAYING,代码如下:
gst_element_set_state(pipeline,GST_STATE_PLAYING);
在本申请的一些实施例中,Gstreamer的元件Element从初始的NULL状态转换到正确运行的PLAYING状态的过程如图3C所示,图3C是Gstreamer元件从NULL到PLAYING的状态转换示意图。
其中,1、GST_STATE_CHANGE_NULL_TO_READY:状态从NULL变为READY;
元件必须检测其所需资源是否可用;
元件打开设备。
2、GST_STATE_CHANGE_READY_TO_PAUSED:状态从READY变为PAUSED
为了在PAUSED状态下能够接受数据,元件将激活其相应衬垫(pad),并启动流相关的线程;
sink衬垫(pad)在收到第一个buffer或者GST_EVENT_EOS之后才能完成状态的转变,当在PAUSED状态时,sink衬垫(pad)也会阻塞数据流;
管道(pipeline)将会重置running_time为0;
直播源(live sources)将会返回GST_STATE_CHANGE_NO_PREROLL而且不会产生数据。
3、GST_STATE_CHANGE_PAUSED_TO_PLAYING:状态从PAUSED变为PLAYING
大多数元件会忽略这个状态的转换;
接收器(sinks)可以在PLAYING状态下发送GST_MESSAGE_EOS消息,如果不在PLAYING状态则不允许发送此消息;
直播源(live sources)开始产生数据并返回GST_STATE_CHANGE_SUCCESS。
步骤S27:读取共享内存中的视频帧数据;
视频数据流中断后,共享内存中的帧数据一直保持在最后一次由步骤S23写入的数据。如果视频数据流未中断或自动续接,新写入的帧数据覆盖上一帧数据,导致帧序号发生变化。
步骤S28:响应于当前读取视频帧数据的帧序号与上一次读取视频帧数据的帧序号相同,重复执行步骤S27、读取共享内存中的视频帧数据的步骤。
当前读取视频帧数据的帧序号与上一次读取视频帧数据的帧序号相同,说明未有新的视频帧数据写入共享内存中,对当前视频帧数据不做处理,即无需对当前视频帧数据调用算法接口进行数据处理。重新读取共享内存中的一帧视频帧数据,继续判断视频帧数据的帧序号与上一次读取视频帧数据的帧序号是否相同。
步骤S29:响应于当前读取视频帧数据的帧序号与上一次读取视频帧数据的帧序号不同,调用算法接口进行数据处理,输出数据处理结果。
当前读取视频帧数据的帧序号与上一次读取视频帧数据的帧序号不相同,说明有新的视频帧数据写入共享内存中,视频数据流未中断或自动续接,需要进一步调用算法接口进行数据处理,并将数据处理结果输出。
与传统的网络监控摄像头,使用的是POE供电的方式,通过网线的方式,实现RTSP流的24小时不间断数据路获取的方法进行监控的方式相比,本申请实施例适应网络摄像头自动待机的场景应用,从而可以实现节能提效,节约系统资源。后台也不必一直运行算法检测,只有视频流重新恢复后才继续运行算法检测。
与通过SDK接口的方式客户端之间建立通信,再结合外部传感器(红外传感器、声控传感器)来实现自动休眠的监控设备相比,在自动休眠或外部中断的情况下,依然可以使用RTSP流的访问方式来获取视频数据流,避免网络摄像头设备频繁待机、唤醒导致视频流的获取及其后端处理不够稳定,且不需要算法进程一直处于运行计算的状态,从而降低系统资源消耗,提升优化性能。
在上述实施例中,当出现外部因素或内部自动休眠情况导致视频数据流出现中断的情况时,服务器会接收到Gstreamer管道上出现的错误消息或数据流消息,将所述Gstreamer管道的状态设置为初始状态;在所述Gstreamer管道响应完成后,将所述Gstreamer管道的状态设置为播放状态。通过以上方式避免管道总线上出现错误消息或数据流消息后就自动释放管道的所有资源,实现视频数据流中断后自动续接的功能,从而避免网络摄像头设备频繁待机、唤醒导致视频流的获取及其后端处理不够稳定的问题。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包括这些改动和变型在内。
Claims (4)
1.一种服务器,其特征在于,包括:
通信器,用于与摄像头通信连接;
控制器,被配置为执行:
获取所述摄像头拍摄的视频流数据;
解析所述视频流数据;
将解析后的视频流数据写入共享内存;
响应于接收到Gstreamer管道上出现的错误消息或数据流结束消息,将所述Gstreamer管道的状态设置为初始状态;
在所述Gstreamer管道响应完成后,将所述Gstreamer管道的状态设置为播放状态;
读取共享内存中的视频帧数据;
响应于当前读取视频帧数据的帧序号与上一次读取视频帧数据的帧序号不同,调用算法接口进行数据处理,输出数据处理结果;
响应于当前读取视频帧数据的帧序号与上一次读取视频帧数据的帧序号相同,重复执行所述读取共享内存中的视频帧数据的步骤。
2.根据权利要求1所述的服务器,其特征在于,所述控制器,被配置为采用以下方式执行解析所述视频流数据:
获取所述视频流数据中编码格式的数据;
解析所述编码格式的数据;
将解析后的数据进行解码,得到解析后的视频流数据。
3.一种基于Gstreamer框架适时检测方法,其特征在于,包括:
获取摄像头拍摄的视频流数据;
解析所述视频流数据;
将解析后的视频流数据写入共享内存;
响应于接收到Gstreamer管道上出现的错误消息或数据流结束消息,将所述Gstreamer管道的状态设置为初始状态;
在所述Gstreamer管道响应完成后,将所述Gstreamer管道的状态设置为播放状态;
读取共享内存中的视频帧数据;
响应于当前读取视频帧数据的帧序号与上一次读取视频帧数据的帧序号不同,调用算法接口进行数据处理,输出数据处理结果;
响应于当前读取视频帧数据的帧序号与上一次读取视频帧数据的帧序号相同,重复执行所述读取共享内存中的视频帧数据的步骤。
4.根据权利要求3所述的方法,其特征在于,所述解析所述视频流数据,具体包括:
获取所述视频流数据中编码格式的数据;
解析所述编码格式的数据;
将解析后的数据进行解码,得到解析后的视频流数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010295914.0A CN111355933B (zh) | 2020-04-15 | 2020-04-15 | 一种Gstreamer框架适时检测方法及服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010295914.0A CN111355933B (zh) | 2020-04-15 | 2020-04-15 | 一种Gstreamer框架适时检测方法及服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111355933A CN111355933A (zh) | 2020-06-30 |
CN111355933B true CN111355933B (zh) | 2023-01-20 |
Family
ID=71194964
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010295914.0A Active CN111355933B (zh) | 2020-04-15 | 2020-04-15 | 一种Gstreamer框架适时检测方法及服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111355933B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108012085A (zh) * | 2017-12-19 | 2018-05-08 | 腾讯科技(上海)有限公司 | 一种多媒体信息处理方法、服务器及存储介质 |
CN108668095A (zh) * | 2018-04-17 | 2018-10-16 | 上海小蚁科技有限公司 | 媒体流共享方法及装置、存储介质、终端 |
CN110493626A (zh) * | 2019-09-10 | 2019-11-22 | 海信集团有限公司 | 视频数据处理方法及装置 |
CN110650347A (zh) * | 2019-10-24 | 2020-01-03 | 腾讯云计算(北京)有限责任公司 | 多媒体数据的处理方法及装置 |
-
2020
- 2020-04-15 CN CN202010295914.0A patent/CN111355933B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108012085A (zh) * | 2017-12-19 | 2018-05-08 | 腾讯科技(上海)有限公司 | 一种多媒体信息处理方法、服务器及存储介质 |
CN108668095A (zh) * | 2018-04-17 | 2018-10-16 | 上海小蚁科技有限公司 | 媒体流共享方法及装置、存储介质、终端 |
CN110493626A (zh) * | 2019-09-10 | 2019-11-22 | 海信集团有限公司 | 视频数据处理方法及装置 |
CN110650347A (zh) * | 2019-10-24 | 2020-01-03 | 腾讯云计算(北京)有限责任公司 | 多媒体数据的处理方法及装置 |
Non-Patent Citations (3)
Title |
---|
Anil Erdem Ozyalcin.Restarting GStreamer Pipeline in Python on EOS.《https://stackoverflow.com/questions/40965143/restarting-gstreamer-pipeline-in-python-on-eos》.2016, * |
Restarting GStreamer Pipeline in Python on EOS;Anil Erdem Ozyalcin;《https://stackoverflow.com/questions/40965143/restarting-gstreamer-pipeline-in-python-on-eos》;20161209;网页全文 * |
基于Linux的开源智能终端软件栈研究;罗喧等;《电信科学》;20100315(第03期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111355933A (zh) | 2020-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112235597B (zh) | 流媒体直播音视频同步保护方法、装置、计算机设备 | |
CN111917988B (zh) | 一种云手机的远程摄像头应用方法、系统及介质 | |
CN101778265B (zh) | 基于异常事件检测和双流编码的视频监控方法 | |
CN113221706B (zh) | 基于多进程的多路视频流的ai分析方法及系统 | |
US20190268601A1 (en) | Efficient streaming video for static video content | |
CN107484010B (zh) | 一种视频资源解码方法及装置 | |
CN101500128B (zh) | 在网络摄像装置终端显示图像上加载附加信息的方法及装置 | |
CN110198475B (zh) | 视频处理方法、装置、设备、服务器与可读存储介质 | |
CN113709518B (zh) | 一种基于rtsp协议的视频实时传输模式设计方法 | |
CN111093082A (zh) | 一种流媒体直播的方法及系统 | |
CN112104840B (zh) | 视频采集方法及移动基带工作站 | |
CN111355933B (zh) | 一种Gstreamer框架适时检测方法及服务器 | |
CN113747191A (zh) | 基于无人机的视频直播方法、系统、设备及存储介质 | |
CN116489307B (zh) | 网络监控系统、网络监控方法、装置及相关设备 | |
CN112543374A (zh) | 一种转码控制方法、装置及电子设备 | |
CN112203097A (zh) | 一种自适应视频解码方法、装置,终端设备及存储介质 | |
CN110730362A (zh) | 一种低流量视频通讯传输系统及方法 | |
CN116709037A (zh) | 一种基于5g摄像头的风雨天气的监控关键数据传递方法 | |
CN108012085B (zh) | 一种多媒体信息处理方法、服务器及存储介质 | |
US20240292008A1 (en) | Monitoring video compression method, monitoring system, computer device and medium | |
CN110392267A (zh) | 一种低成本矿山生产现场自动化集中监控方法 | |
CN116450390A (zh) | 看门狗检测方法及电子设备 | |
CN116450386A (zh) | 看门狗检测方法、设备及存储介质 | |
CN110248038B (zh) | 一种基于wifi的图像传输方法及系统 | |
CN110099257A (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 |