一种视频结构化信息的叠加方法、用户终端及叠加系统与流程

文档序号:19399529发布日期:2019-12-13 19:01阅读:190来源:国知局
一种视频结构化信息的叠加方法、用户终端及叠加系统与流程

本发明涉及视频处理技术领域,具体而言,涉及一种视频结构化信息的叠加方法、用户终端及叠加系统。



背景技术:

目前,随着视频处理技术的迅速发展,通过视频叠加技术可以满足不同用户对视频中的自定义信息的不同需求,将一些自定义信息叠加到视频中特定视频帧中指定的位置,再将叠加有自定信息的视频呈现给用户,如,用户终端申请订阅某一主题信息,此时需要将该主题信息叠加到视频中,再将叠加有该主题信息的视频发送至相应的用户终端。

当前,相关技术中提供了一种视频结构化信息的叠加方法,该方法主要是:首先,视频源服务器将视频流发送至算法服务器,然后,算法服务器直接将输出的结构化信息叠加到视频中相应的图像上,并经过二次编码将叠加有结构化信息的视频发布到流媒体服务器中,最后,用户终端直接拉取该流媒体服务器中的视频流进行播放。即需要增加一个流媒体服务器,因而,增加了系统软硬件配置成本;另外,算法服务器进行实时视频的处理时,不仅需要生成待叠加的结构化信息,还需要将该待叠加的结构化信息叠加至视频中,需要大量的计算且处理的效率需要实时,至少要保证处理的速度与视频的帧率相同,普通的电脑很难做到,同时还需满足多路视频同时进行,因而要求必须是专门的服务器来并行完成这些任务。

在实现本发明的过程中,发明人发现相关技术中至少存在以下问题:相关技术中的视频信息叠加技术需要由算法服务器生成与视频流相关的结构化信息,同时将该结构化信息叠加至视频流的相应视频帧的特定位置处,由于实时视频处理过程中,算法服务器处理数据量大且需要保证视频显示的实时性,因而,需要保证视频信息叠加速度,进而对视频信息叠加系统的配置要求高。



技术实现要素:

有鉴于此,本发明实施例的目的在于提供一种视频结构化信息的叠加方法、用户终端及叠加系统,以提高结构化信息的叠加速度,从而实现既保证视频流显示的实时性,又降低对叠加系统软硬件配置的要求。

第一方面,本发明实施例提供了一种视频结构化信息的叠加方法,该方法包括:

用户终端接收至少一个视频帧,所述视频帧为视频源服务器同步发送给所述用户终端和算法服务器的;

所述用户终端接收所述算法服务器发送的结构化信息,所述结构化信息为所述算法服务器识别所述视频帧中的监测目标并根据所述监测目标生成的,所述结构化信息包括视频时间戳、所述监测目标对应的自定义信息、以及所述自定义信息的位置坐标;

所述用户终端根据所述视频帧的时间戳、所述视频时间戳和所述位置坐标将所述自定义信息叠加至所述视频帧中。

结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,所述用户终端分别通过不同的线程接收所述视频帧和所述结构化信息。

结合第一方面,本发明实施例提供了第一方面的第二种可能的实施方式,其中,所述用户终端接收至少一个视频帧之后,还包括:对各个所述视频帧进行缓存处理,并逐一对缓存后的所述视频帧进行解码和表面渲染处理,按照表面渲染的先后顺序逐帧输出表面渲染后的所述视频帧;

所述用户终端接收所述算法服务器发送的结构化信息之后,还包括:将接收到的多个所述结构化信息依次存入缓存队列中。

结合第一方面的第二种可能的实施方式,本发明实施例提供了第一方面的第三种可能的实施方式,其中,所述用户终端根据所述视频帧的时间戳、所述视频时间戳和所述位置坐标将所述自定义信息叠加至所述视频帧中,包括:

根据所述视频帧的时间戳和所述视频时间戳从所述缓存队列中选取与所述视频帧对应的所述结构化信息;

从所述结构化信息中提取所述自定义信息和所述位置坐标;

将所述自定义信息叠加至所述视频帧中的所述位置坐标处。

结合第一方面的第三种可能的实施方式,本发明实施例提供了第一方面的第四种可能的实施方式,其中,所述根据所述视频帧的时间戳和所述视频时间戳从所述缓存队列中选取与所述视频帧对应的所述结构化信息之前,还包括:

判断所述缓存队列中是否存在所述结构化信息,若存在,则按照存入所述缓存队列的先后顺序逐一选取一个所述结构化信息,从所述结构化信息中提取所述视频时间戳。

结合第一方面的第四种可能的实施方式,本发明实施例提供了第一方面的第五种可能的实施方式,其中,所述根据所述视频帧的时间戳和所述视频时间戳从所述缓存队列中选取与所述视频帧对应的所述结构化信息,包括:

根据所述视频时间戳和所述视频帧的时间戳确定对所述结构化信息的处理方式;

使用所述处理方式对所述结构化信息进行相应的处理,所述处理方式包括:将所述结构化信息作为与所述视频帧对应的结构化信息、将所述结构化信息返回所述缓存队列中、或者将所述结构化信息从所述缓存队列中清除;

当确定出所述处理方式为将所述结构化信息作为与所述视频帧对应的结构化信息、或者确定出所述处理方式为将所述结构化信息返回所述缓存队列中时,终止选取下一个所述结构化信息的操作,并为所述视频帧的后一帧选取对应的结构化信息。

结合第一方面的第五种可能的实施方式,本发明实施例提供了第一方面的第六种可能的实施方式,其中,所述根据所述视频时间戳和所述视频帧的时间戳确定对所述结构化信息的处理方式,包括:

当所述视频时间戳与所述视频帧的时间戳一致时,确定对所述结构化信息的处理方式为将所述结构化信息作为与所述视频帧对应的结构化信息;

当所述视频时间戳与所述视频帧的时间戳不一致时,判断所述视频时间戳是否大于所述视频帧的时间戳,若是,则确定对所述结构化信息的处理方式为将所述结构化信息返回所述缓存队列中,若否,则确定对所述结构化信息的处理方式为将所述结构化信息从所述缓存队列中清除。

第二方面,本发明实施例还提供了一种用户终端,该用户终端包括:

视频帧接收模块,用于接收至少一个视频帧,所述视频帧为视频源服务器同步发送给所述用户终端和算法服务器的;

结构化信息接收模块,用于接收所述算法服务器发送的结构化信息,所述结构化信息为所述算法服务器识别所述视频帧中的监测目标并根据所述监测目标生成的,所述结构化信息包括视频时间戳、所述监测目标对应的自定义信息、以及所述自定义信息的位置坐标;

信息叠加模块,用于根据所述视频帧的时间戳、所述视频时间戳和所述位置坐标将所述自定义信息叠加至所述视频帧中。

结合第二方面,本发明实施例提供了第二方面的第一种可能的实施方式,其中,所述用户终端分别通过不同的线程接收所述视频帧和所述结构化信息。

结合第二方面,本发明实施例提供了第二方面的第二种可能的实施方式,其中,所述用户终端还包括:

视频帧处理模块,用于对各个所述视频帧进行缓存处理,并逐一对缓存后的所述视频帧进行解码和表面渲染处理,按照表面渲染的先后顺序逐帧输出表面渲染后的所述视频帧;

结构化信息缓存模块,用于将接收到的多个所述结构化信息依次存入缓存队列中。

结合第二方面的第二种可能的实施方式,本发明实施例提供了第二方面的第三种可能的实施方式,其中,所述信息叠加模块包括:

选取单元,用于根据所述视频帧的时间戳和所述视频时间戳从所述缓存队列中选取与所述视频帧对应的所述结构化信息;

提取单元,用于从所述结构化信息中提取所述自定义信息和所述位置坐标;

叠加单元,用于将所述自定义信息叠加至所述视频帧中的所述位置坐标处。

结合第二方面的第三种可能的实施方式,本发明实施例提供了第二方面的第四种可能的实施方式,其中,所述信息叠加模块还包括:

判断单元,用于判断所述缓存队列中是否存在所述结构化信息,若存在,则按照存入所述缓存队列的先后顺序逐一选取一个所述结构化信息,从所述结构化信息中提取所述视频时间戳。

结合第二方面的第四种可能的实施方式,本发明实施例提供了第二方面的第五种可能的实施方式,其中,所述选取单元包括:

处理方式确定子单元,用于根据所述视频时间戳和所述视频帧的时间戳确定对所述结构化信息的处理方式;

结构化信息选取子单元,用于使用所述处理方式对所述结构化信息进行相应的处理,所述处理方式包括:将所述结构化信息作为与所述视频帧对应的结构化信息、将所述结构化信息返回所述缓存队列中、或者将所述结构化信息从所述缓存队列中清除;当确定出所述处理方式为将所述结构化信息作为与所述视频帧对应的结构化信息、或者确定出所述处理方式为将所述结构化信息返回所述缓存队列中时,终止选取下一个所述结构化信息的操作,并为所述视频帧的后一帧选取对应的结构化信息。

结合第二方面的第五种可能的实施方式,本发明实施例提供了第二方面的第六种可能的实施方式,其中,所述处理方式确定子单元,具体用于当所述视频时间戳与所述视频帧的时间戳一致时,确定对所述结构化信息的处理方式为将所述结构化信息作为与所述视频帧对应的结构化信息;当所述视频时间戳与所述视频帧的时间戳不一致时,判断所述视频时间戳是否大于所述视频帧的时间戳,若是,则确定对所述结构化信息的处理方式为将所述结构化信息返回所述缓存队列中,若否,则确定对所述结构化信息的处理方式为将所述结构化信息从所述缓存队列中清除。

第三方面,本发明实施例还提供了一种视频结构化信息的叠加系统,该系统包括:视频源服务器、算法服务器和用户终端,所述视频源服务器分别与所述算法服务器和所述用户终端通信连接,所述用户终端与所述算法服务器通信连接;

所述视频源服务器,用于将至少一个视频帧同步发送给所述用户终端和所述算法服务器的;

所述算法服务器,用于接收所述视频帧,并识别所述视频帧中的监测目标,根据所述监测目标生成所述视频帧对应的结构化信息,将所述结构化信息传输至所述用户终端,所述结构化信息包括视频时间戳、所述监测目标对应的自定义信息、以及所述自定义信息的位置坐标;

所述用户终端用于接收所述视频帧和所述算法服务器发送的结构化信息,并根据所述视频帧的时间戳、所述视频时间戳和所述位置坐标将所述自定义信息叠加至所述视频帧中。

在本发明实施例提供的视频结构化信息的叠加方法、用户终端及叠加系统中,该方法包括:用户终端接收至少一个视频帧,该视频帧为视频源服务器同步发送给用户终端和算法服务器的;同时,该用户终端还接收算法服务器发送的结构化信息,该结构化信息为算法服务器识别视频帧中的监测目标并根据监测目标生成的;最后,用户终端根据视频帧的时间戳、结构化信息中的视频时间戳和自定义信息的位置坐标将自定义信息叠加至视频帧中。在本发明实施例中,首先,视频源服务器以视频帧形式向算法服务器和用户终端同步传输实时视频流,算法服务器仅用于生成各个视频帧对应的结构化信息,然后,用户终端同时接收视频流和各个视频帧对应的结构化信息,并将各个结构化信息叠加至相应的视频帧中,在整个视频结构化信息叠加的过程中,将结构化信息的生成过程和结构化信息的叠加过程分离开来,算法服务器无需进行结构化信息叠加,结构化信息叠加过程由用户终端来执行,且结构化信息叠加过程分摊到多个用户终端上,不同的用户终端结构化信息的叠加数据处理量也大大减少,提高了结构化信息的叠加速度,从而既保证了视频流显示的实时性,又降低了对叠加系统软硬件配置的要求。

为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1示出了本发明实施例所提供的一种视频结构化信息的叠加方法的流程示意图;

图2示出了本发明实施例所提供的优选的视频结构化信息的叠加方法的流程示意图;

图3示出了本发明实施例所提供的一种用户终端的结构示意图;

图4示出了本发明实施例所提供的一种视频结构化信息的叠加系统的结构示意图;

图5示出了本发明实施例所提供的另一种视频结构化信息的叠加系统的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

考虑到相关技术中的视频信息叠加技术需要由算法服务器生成与视频流相关的结构化信息,同时将该结构化信息叠加至视频流的相应视频帧的特定位置处,由于实时视频处理过程中,算法服务器处理数据量大且需要保证视频显示的实时性,因而,需要保证视频信息叠加速度,进而对视频信息叠加系统的配置要求高。基于此,本发明实施例提供了一种视频结构化信息的叠加方法、用户终端和叠加系统,下面通过实施例进行描述。

如图1所示,本发明实施例提供了一种视频结构化信息的叠加方法,该方法包括步骤s102-s106,具体如下:

步骤s102:用户终端接收至少一个视频帧,该视频帧为视频源服务器同步发送给上述用户终端和算法服务器的;

步骤s104:上述用户终端接收上述算法服务器发送的结构化信息,该结构化信息为上述算法服务器识别上述视频帧中的监测目标并根据上述监测目标生成的,该结构化信息包括视频时间戳、监测目标对应的自定义信息、以及上述自定义信息的位置坐标;

步骤s106:上述用户终端根据上述视频帧的时间戳、上述视频时间戳和上述位置坐标将上述自定义信息叠加至上述视频帧中。

其中,上述算法服务器生成各个视频帧对应的结构化信息的具体过程为:算法服务器接收视频源服务器发送的实时视频流后,逐一对各个视频帧进行解码,将解码后的视频帧(yuv数据)传输给算法,算法检测并识别各个解码后的视频帧图像中是否存在监测目标,如果存在,则输出算法结果,即该视频帧对应的结构化信息,其中,监测目标是预先定义的一些目标类型,该监测目标可以是人脸、车辆等,上述视频时间戳为该视频帧的时间戳,上述监测目标对应的自定义信息可以是根据根据监测目标的类型预先设定的,该自定义信息包括:对目标的文本说明、目标的位置信息等等,上述自定义信息的位置坐标可以是监测目标在视频帧图像中的位置坐标,也可以是根据监测目标的类型预先设定的位置坐标。

在本发明提供的实施例中,首先,视频源服务器以视频帧形式向算法服务器和用户终端同步传输实时视频流,算法服务器仅用于生成各个视频帧对应的结构化信息,然后,用户终端同时接收视频流和各个视频帧对应的结构化信息,并将各个结构化信息叠加至相应的视频帧中,在整个视频结构化信息叠加的过程中,将结构化信息的生成过程和结构化信息的叠加过程分离开来,算法服务器无需进行结构化信息叠加,结构化信息叠加过程由用户终端来执行,且结构化信息叠加过程分摊到多个用户终端上,不同的用户终端结构化信息的叠加数据处理量也大大减少,提高了结构化信息的叠加速度,从而既保证了视频流显示的实时性,又降低了对叠加系统软硬件配置的要求。

另外,将算法服务器生成的结构化信息传输到用户终端的过程可以是由算法服务器直接将结构化信息发送至用户终端,还可以是单独设置一个消息服务器,算法服务器将结构化信息发送至消息服务器,再由消息服务器将结构化信息发送至客户端,用户终端将结构化信息中的自定义信息叠加至相应的视频帧中指定的位置处,并实时显示叠加有自定义信息的视频流信息。同一实时视频源,经过算法服务器处理,将每帧输出的结构化信息实时发布到消息服务器上,同时用户终端ocx通过订阅消息服务器上的该结构化信息,并同步叠加到相应的视频帧图像上,从而实现实时视频自定义信息的叠加,结构化信息的叠加过程在于解决视频与叠加信息的同步性、实时性及准确性。

其中,上述算法服务器在处理视频帧时,以帧时间戳作为每帧结构化信息的唯一标识,结构化信息中含有自定义信息在该帧图像中显示的准确位置,不同的视频帧图像中,该位置是存在变化的,然后将结构化信息发布到消息服务器或者直接发送至用户终端;用户终端ocx进行实时流播放时,同时从消息服务器上订阅该结构化信息,然后根据每帧的时间戳同步将各个结构化信息叠加到相应的视频帧图像上,实现实时视频自定义信息叠加。其中,订阅是指从消息服务器上订阅某个主题消息后,消息服务器将发送该主题下的内容给订阅用户终端。

进一步的,为了提高用户终端接收视频帧和结构化信息的速度,以及提高用户终端对结构化信息的叠加速度,基于此,上述用户终端分别通过不同的线程接收上述视频帧和上述结构化信息,具体的,通过第一线程接收视频源服务器发送的各个视频帧,并通过第二线程接收算法服务器发送的各个视频帧对应的结构化信息,且通过第二线程对接收到的结构化信息叠加至相应的视频帧中指定的位置处。

进一步的,考虑到消息服务器生成结构化信息时需要一定的时间,对于用户终端而言,接收到的视频帧和该视频帧对应的结构化信息存在一定的时间差,基于此,上述用户终端接收至少一个视频帧之后,还包括:对各个上述视频帧进行缓存处理,并逐一对缓存后的上述视频帧进行解码和表面渲染处理,按照表面渲染的先后顺序逐帧输出表面渲染后的上述视频帧;

上述用户终端接收上述算法服务器发送的结构化信息之后,还包括:将接收到的多个上述结构化信息依次存入缓存队列中。

具体的,用户终端按照预设缓存时间对接收到的视频帧进行缓存处理,按照缓存的先后顺序逐帧输出缓存后的视频帧,逐一对缓存后的视频帧进行解码处理,并对解码后的视频帧进行表面渲染处理,按照表面渲染的先后顺序逐帧输出表面渲染后的视频帧;对再对输出的表面渲染后的视频帧进行结构化信息的叠加。

在本发明提供的实施例中,对接收到的视频帧进行缓存处理、以及将接收到的结构化信息存入缓存队列中,然后,根据视频帧的时间戳从缓存队列中查找与表面渲染后的视频帧对应的结构化信息,因而,可以解决因算法服务器计算的延迟性导致可能存在不能准确地将结构化信息叠加至相应的视频帧的问题,并可以进一步保证视频流的流畅性和实时性。

具体的,上述用户终端根据上述视频帧的时间戳、上述视频时间戳和上述位置坐标将上述自定义信息叠加至上述视频帧中,包括:

当接收到表面渲染后的视频帧时,根据该视频帧的时间戳和结构化信息中的视频时间戳从上述缓存队列中选取与该视频帧对应的结构化信息;

从上述结构化信息中提取上述自定义信息和上述位置坐标;

将上述自定义信息叠加至上述视频帧中的上述位置坐标处。

进一步的,上述根据上述视频帧的时间戳和上述视频时间戳从上述缓存队列中选取与上述视频帧对应的上述结构化信息之前,还包括:

判断上述缓存队列中是否存在上述结构化信息,若存在,则按照存入上述缓存队列的先后顺序逐一选取一个上述结构化信息,从上述结构化信息中提取上述视频时间戳。另外,若不存在,则直接显示该视频帧。

其中,上述根据上述视频帧的时间戳和上述视频时间戳从上述缓存队列中选取与上述视频帧对应的上述结构化信息,包括:

根据上述视频时间戳和上述视频帧的时间戳确定对上述结构化信息的处理方式;

使用上述处理方式对上述结构化信息进行相应的处理,上述处理方式包括:将上述结构化信息作为与上述视频帧对应的结构化信息、将上述结构化信息返回上述缓存队列中、或者将上述结构化信息从上述缓存队列中清除;

当确定出上述处理方式为将上述结构化信息作为与上述视频帧对应的结构化信息、或者确定出上述处理方式为将上述结构化信息返回上述缓存队列中时,终止选取下一个上述结构化信息的操作,并为上述视频帧的后一帧选取对应的结构化信息。

具体的,当接收到表面渲染后的视频帧时,首先,将该视频帧作为当前待叠加视频帧,提取该当前待叠加视频帧的时间戳,并判断缓存队列中是否存在结构化信息;若不存在,则直接显示该视频帧;若存在,则按照存入缓存队列的先后顺序逐一选取一个结构化信息作为当前操作对象,并提取该当前操作对象的视频时间戳;然后,根据该当前操作对象的视频时间戳与当前待叠加视频帧的时间戳确定对该当前操作对象的处理方式;从未被选取的结构化信息中选取一下结构化信息作为当前操作对象,直到确定出该当前操作对象为该视频帧对应的结构化信息、或者确定出该当前操作对象中的视频时间戳大于当前待叠加视频帧的时间戳。

具体的,上述根据上述视频时间戳和上述视频帧的时间戳确定对上述结构化信息的处理方式,包括:

当上述视频时间戳与上述视频帧的时间戳一致时,确定对上述结构化信息的处理方式为将上述结构化信息作为与上述视频帧对应的结构化信息;

当上述视频时间戳与上述视频帧的时间戳不一致时,判断上述视频时间戳是否大于上述视频帧的时间戳,若是,则确定对上述结构化信息的处理方式为将上述结构化信息返回上述缓存队列中,若否,则确定对上述结构化信息的处理方式为将上述结构化信息从上述缓存队列中清除。

其中,考虑当缓存队列中有多个结构化信息时,根据存入缓存队列的先后顺序依次取出结构化信息,比较结构化信息中的视频时间戳和当前待叠加的视频帧的时间戳之间的大小关系,主要包括以下几种情况:

(1)当结构化信息中的视频时间戳和当前待叠加的视频帧的时间戳相等时,将该结构化信息作为该视频帧对应的结构化信息,终止从缓存队列中选取下一个结构化信息,将该视频帧的后一帧作为下一个待叠加的视频帧;

(2)当结构化信息中的视频时间戳大于当前待叠加的视频帧的时间戳时,将该结构化信息返回上述缓存队列中,终止从缓存队列中选取下一个结构化信息,将该视频帧的后一帧作为下一个待叠加的视频帧;

(3)当结构化信息中的视频时间戳小于当前待叠加的视频帧的时间戳时,将该结构化信息从上述缓存队列中清除,继续从缓存队列中选取下一个结构化信息,比较该结构化信息中的视频时间戳和当前待叠加的视频帧的时间戳之间的大小关系,直到结构化信息中的视频时间戳和当前待叠加的视频帧的时间戳相等、结构化信息中的视频时间戳大于当前待叠加的视频帧的时间戳、或者缓存队列中为空。

在本发明提供的实施例中,通过按照结构化信息存入缓存队列中的先后顺序依次选取一个结构化信息,比较结构化信息中的视频时间戳和当前待叠加的视频帧的时间戳之间的大小关系,根据该大小关系确定对该结构化信息的处理方式,进而实现快速、准确地将结构化信息叠加至相应的视频帧中。

具体的,如图2所示,给出了优选的视频结构化信息的叠加方法的流程示意图,具体包括:

s10:用户终端接收视频源服务器发送的各个视频帧,即通过第一线程从视频源服务器拉取实时视频流;

s11:用户终端按照预设的缓存时间对接收到的视频帧进行缓存处理,如,对视频帧进行2秒缓存,其中,该缓存时间2秒是经过整个流程过程中处理时间消耗确定的;

s20:同时,用户终端接收算法服务器或者消息服务器发送的结构化信息,即通过第二线程从算法服务器或者消息服务器订阅各个视频帧的结构化信息;

s21:并持续将接收到的结构化信息存入缓存队列中;

s12:然后,用户终端还通过第一线程对缓存后的视频帧进行解码和表面渲染处理,即将缓存的各个视频帧依次送入解码模块,逐帧输出解码帧数据;输出一帧yuv数据后,进行内存(后台)表面渲染;

其中,内存(后台)表面渲染是指双缓冲技术,一种视频显示常用技术,即在内存中创建一个与屏幕绘图区域一致的对象,先将图形绘制到内存中的这个对象上,再一次性将这个对象上的图形拷贝到屏幕上,从而大大加快绘图的速度;

s13:用户终端还通过第一线程检测缓存队列中是否存在结构化信息;

s14:当缓存队列中存在结构化信息时,从结构化信息缓存队列queue中逐一选取一个结构化信息,以确定出与各个视频帧yuvpts相同的结构化信息元素;

其中,视频帧解码后通常都是yuv数据格式,pts是指presentationtimestamp,主要用于度量解码后的视频帧何时被显示出来,yuvpts是指此yuv视频帧的时间戳;

s15:判断选取的结构化信息中的视频时间戳与当前待叠加的视频帧的时间戳是否一致;

s16:当结构化信息中的视频时间戳和当前待叠加的视频帧的时间戳一致时,将该结构化信息作为该视频帧对应的结构化信息,并将该结构化信息叠加至当前待叠加的视频帧中,终止从缓存队列中选取下一个结构化信息,将该视频帧的后一帧作为下一个待叠加的视频帧;

s17:当结构化信息中的视频时间戳和当前待叠加的视频帧的时间戳不一致时,判断结构化信息中的视频时间戳是否大于当前待叠加的视频帧的时间戳;

s18:当结构化信息中的视频时间戳大于当前待叠加的视频帧的时间戳时,将该结构化信息返回上述缓存队列中,终止从缓存队列中选取下一个结构化信息,将该视频帧的后一帧作为下一个待叠加的视频帧;

s19:当结构化信息中的视频时间戳小于当前待叠加的视频帧的时间戳时,将该结构化信息从上述缓存队列中清除,执行步骤s14:继续从缓存队列中选取下一个结构化信息,判断该结构化信息中的视频时间戳和当前待叠加的视频帧的时间戳是否一致,直到结构化信息中的视频时间戳和当前待叠加的视频帧的时间戳一致、结构化信息中的视频时间戳大于当前待叠加的视频帧的时间戳、或者缓存队列中为空;

s110:当缓存队列queue中不存在结构化信息或者已将结构化信息叠加至对应的视频帧中时,直接将内存渲染表面flip到前端视窗显示或者将已将结构化信息叠加至对应的视频帧到前端视窗显示,其中,flip是指交换意思,即把内存渲染表面交换到前台表面(代表显卡设备)。

在本发明提供的视频结构化信息的叠加方法中,首先,视频源服务器以视频帧形式向算法服务器和用户终端同步传输实时视频流,算法服务器仅用于生成各个视频帧对应的结构化信息,然后,用户终端同时接收视频流和各个视频帧对应的结构化信息,并将各个结构化信息叠加至相应的视频帧中,在整个视频结构化信息叠加的过程中,将结构化信息的生成过程和结构化信息的叠加过程分离开来,算法服务器无需进行结构化信息叠加,结构化信息叠加过程由用户终端来执行,且结构化信息叠加过程分摊到多个用户终端上,不同的用户终端结构化信息的叠加数据处理量也大大减少,提高了结构化信息的叠加速度,从而既保证了视频流显示的实时性,又降低了对叠加系统软硬件配置的要求;进一步的,对接收到的视频帧进行缓存处理、以及将接收到的结构化信息存入缓存队列中,然后,根据视频帧的时间戳从缓存队列中查找与表面渲染后的视频帧对应的结构化信息,因而,可以解决因算法服务器计算的延迟性导致可能存在不能准确地将结构化信息叠加至相应的视频帧的问题,并可以进一步保证视频流的流畅性和实时性;通过按照结构化信息存入缓存队列中的先后顺序依次选取一个结构化信息,比较结构化信息中的视频时间戳和当前待叠加的视频帧的时间戳之间的大小关系,根据该大小关系确定对该结构化信息的处理方式,进而实现快速、准确地将结构化信息叠加至相应的视频帧中。

本发明实施例还提供一种用户终端,如图3所示,该用户终端包括:

视频帧接收模块202,用于接收至少一个视频帧,该视频帧为视频源服务器同步发送给上述用户终端和算法服务器的;

结构化信息接收模块204,用于接收上述算法服务器发送的结构化信息,该结构化信息为上述算法服务器识别上述视频帧中的监测目标并根据上述监测目标生成的,该结构化信息包括视频时间戳、监测目标对应的自定义信息、以及该自定义信息的位置坐标;

信息叠加模块206,用于根据上述视频帧的时间戳、上述视频时间戳和上述位置坐标将上述自定义信息叠加至上述视频帧中。

在本发明提供的实施例中,首先,视频源服务器以视频帧形式向算法服务器和用户终端同步传输实时视频流,算法服务器仅用于生成各个视频帧对应的结构化信息,然后,用户终端同时接收视频流和各个视频帧对应的结构化信息,并将各个结构化信息叠加至相应的视频帧中,在整个视频结构化信息叠加的过程中,将结构化信息的生成过程和结构化信息的叠加过程分离开来,算法服务器无需进行结构化信息叠加,结构化信息叠加过程由用户终端来执行,且结构化信息叠加过程分摊到多个用户终端上,不同的用户终端结构化信息的叠加数据处理量也大大减少,提高了结构化信息的叠加速度,从而既保证了视频流显示的实时性,又降低了对叠加系统软硬件配置的要求。

进一步的,为了提高用户终端接收视频帧和结构化信息的速度,以及提高用户终端对结构化信息的叠加速度,基于此,上述用户终端分别通过不同的线程接收上述视频帧和上述结构化信息。

进一步的,考虑到消息服务器生成结构化信息时需要一定的时间,对于用户终端而言,接收到的视频帧和该视频帧对应的结构化信息存在一定的时间差,基于此,上述用户终端还包括:

视频帧处理模块,用于对各个上述视频帧进行缓存处理,并逐一对缓存后的上述视频帧进行解码和表面渲染处理,按照表面渲染的先后顺序逐帧输出表面渲染后的上述视频帧;

结构化信息缓存模块,用于将接收到的多个上述结构化信息依次存入缓存队列中。

进一步的,上述信息叠加模块206包括:选取单元,用于根据上述视频帧的时间戳和上述视频时间戳从上述缓存队列中选取与上述视频帧对应的上述结构化信息;

提取单元,用于从上述结构化信息中提取上述自定义信息和上述位置坐标;

叠加单元,用于将上述自定义信息叠加至上述视频帧中的上述位置坐标处。

进一步的,上述信息叠加模块206还包括:判断单元,用于判断上述缓存队列中是否存在上述结构化信息,若存在,则按照存入上述缓存队列的先后顺序逐一选取一个上述结构化信息,从上述结构化信息中提取上述视频时间戳。

进一步的,上述选取单元包括:处理方式确定子单元,用于根据上述视频时间戳和上述视频帧的时间戳确定对上述结构化信息的处理方式;

结构化信息选取子单元,用于使用上述处理方式对上述结构化信息进行相应的处理,上述处理方式包括:将上述结构化信息作为与上述视频帧对应的结构化信息、将上述结构化信息返回上述缓存队列中、或者将上述结构化信息从上述缓存队列中清除;当确定出上述处理方式为将上述结构化信息作为与上述视频帧对应的结构化信息、或者确定出上述处理方式为将上述结构化信息返回上述缓存队列中时,终止选取下一个上述结构化信息的操作,并为上述视频帧的后一帧选取对应的结构化信息。

进一步的,上述处理方式确定子单元,具体用于当上述视频时间戳与上述视频帧的时间戳一致时,确定对上述结构化信息的处理方式为将上述结构化信息作为与上述视频帧对应的结构化信息;当上述视频时间戳与上述视频帧的时间戳不一致时,判断上述视频时间戳是否大于上述视频帧的时间戳,若是,则确定对上述结构化信息的处理方式为将上述结构化信息返回上述缓存队列中,若否,则确定对上述结构化信息的处理方式为将上述结构化信息从上述缓存队列中清除。

在本发明提供的用户终端中,用户终端同时接收视频流和各个视频帧对应的结构化信息,并将各个结构化信息叠加至相应的视频帧中,结构化信息叠加过程由用户终端来执行,且结构化信息叠加过程分摊到多个用户终端上,不同的用户终端结构化信息的叠加数据处理量也大大减少,提高了结构化信息的叠加速度,从而既保证了视频流显示的实时性,又降低了对叠加系统软硬件配置的要求;进一步的,对接收到的视频帧进行缓存处理、以及将接收到的结构化信息存入缓存队列中,然后,根据视频帧的时间戳从缓存队列中查找与表面渲染后的视频帧对应的结构化信息,因而,可以解决因算法服务器计算的延迟性导致可能存在不能准确地将结构化信息叠加至相应的视频帧的问题,并可以进一步保证视频流的流畅性和实时性;通过按照结构化信息存入缓存队列中的先后顺序依次选取一个结构化信息,比较结构化信息中的视频时间戳和当前待叠加的视频帧的时间戳之间的大小关系,根据该大小关系确定对该结构化信息的处理方式,进而实现快速、准确地将结构化信息叠加至相应的视频帧中。

本发明实施例还提供一种视频结构化信息的叠加系统,如图4所示,该系统包括:视频源服务器11、算法服务器22和用户终端33,上述视频源服务器11分别与上述算法服务器22和上述用户终端33通信连接,上述用户终端33与上述算法服务器22通信连接;

上述视频源服务器11,用于将至少一个视频帧同步发送给上述用户终端33和上述算法服务器22的;

上述算法服务器22,用于接收上述视频帧,并识别上述视频帧中的监测目标,根据上述监测目标生成上述视频帧对应的结构化信息,将上述结构化信息传输至上述用户终端33,上述结构化信息包括视频时间戳、上述监测目标对应的自定义信息、以及上述自定义信息的位置坐标;

上述用户终端33用于接收上述视频帧和上述算法服务器22发送的结构化信息,并根据上述视频帧的时间戳、上述视频时间戳和上述位置坐标将上述自定义信息叠加至上述视频帧中。

进一步的,如图5所示,上述叠加系统还可以包括:分别与算法服务器22和用户终端33通信连接的消息服务器44,其中,算法服务器22将结构化信息发送至消息服务器44,再由消息服务器44将结构化信息发送至客户端,用户终端33将结构化信息中的自定义信息叠加至相应的视频帧中指定的位置处,并实时显示叠加有自定义信息的视频流信息。同一实时视频源,经过算法服务器22处理,将每帧输出的结构化信息实时发布到消息服务器44上,同时用户终端33ocx通过订阅消息服务器44上的该结构化信息,并同步叠加到相应的视频帧图像上,从而实现实时视频自定义信息的叠加。

基于上述分析可知,本发明实施例提供的视频结构化信息的叠加系统中,视频源服务器11以视频帧形式向算法服务器22和用户终端33同步传输实时视频流,算法服务器22仅用于生成各个视频帧对应的结构化信息,然后,用户终端33同时接收视频流和各个视频帧对应的结构化信息,并将各个结构化信息叠加至相应的视频帧中,在整个视频结构化信息叠加的过程中,将结构化信息的生成过程和结构化信息的叠加过程分离开来,算法服务器22无需进行结构化信息叠加,结构化信息叠加过程由用户终端33来执行,且结构化信息叠加过程分摊到多个用户终端33上,不同的用户终端33结构化信息的叠加数据处理量也大大减少,提高了结构化信息的叠加速度,从而既保证了视频流显示的实时性,又降低了对叠加系统软硬件配置的要求。

本发明实施例所提供用户终端可以为设备上的特定硬件或者安装于设备上的软件或固件等。本发明实施例所提供的用户终端及叠加系统,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,用户终端及叠加系统实施例部分未提及之处,可参考前述方法实施例中相应内容。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,前述描述的系统、用户终端和单元的具体工作过程,均可以参考上述方法实施例中的对应过程,在此不再赘述。

在本发明所提供的实施例中,应该理解到,所揭露用户终端和方法,可以通过其它的方式实现。以上所描述的用户终端实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,用户终端或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明提供的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释,此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围。都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1