一种基于linux系统的视频数据实时采集方法及系统与流程

文档序号:37466359发布日期:2024-03-28 18:49阅读:17来源:国知局
一种基于linux系统的视频数据实时采集方法及系统与流程

本发明涉及多媒体数据处理,尤其涉及一种基于linux系统的视频数据实时采集方法及系统。


背景技术:

1、本部分旨在为权利要求书中陈述的本发明实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。

2、随着多媒体技术的逐渐成熟,视频、图片等在人们的生活和工作中发挥着越来越大的作用,地图服务是其中重要的一个方面。尤其随着自动驾驶技术从科幻电影走入现实生活,高精度地图具有不可替代的重要作用。高精度地图在应用中也面临一些问题,首先就是地图的更新,道路情况,交通标识等信息都可能随时发生变化,这对地图数据的实时更新有了更高的要求。有些图商采用众包收集数据累解决这一问题,通过用户联网车载记录仪,根据行驶轨迹采集视频数据,生成图片上传或者做一些基本的道路要素提取上传。

3、但是,目前解析已存储的视频文件来提取视频数据帧。车载记录仪在开始录制视频文件时,会获取系统时间来命名视频文件,众包采集将视频名称时间默认为视频第一帧的时间戳,视频文件里的其他帧时间戳都以第一帧的时间戳加上时间偏移来确认。这些技术的缺点在于:因为以视频启档的系统时间作为视频第一帧时间戳,其视频数据帧的实际生成时间,与采集时间有可能出现较大偏差,有些甚至超过1秒,导致采集到的要素位置偏移较大,不适于高精度地图的需求。


技术实现思路

1、本发明的目的在于针对上述技术问题,提供一种基于linux系统的视频数据实时采集方法及系统,以提高视频传输的实时性,满足高精度地图服务的需求。

2、为了达到上述目的,本发明采用的技术方案如下。

3、一种基于linux系统的视频数据实时采集方法,包括:

4、录制视频,获取视频帧输入开始时间戳、视频帧输入结束时间戳和视频帧输入结束系统时间戳;

5、根据所述视频帧输入开始时间戳、视频帧输入结束时间戳和视频帧输入结束系统时间戳,计算出视频帧生成系统时间戳,计算公式如下:

6、ts=tis-(ti2-ti1)

7、其中,ts为视频帧生成系统时间戳,tis为视频帧输入结束系统时间戳,ti2为视频帧输入结束时间戳,ti1为视频帧输入开始时间戳;

8、将所述视频帧生成系统时间戳对应的视频帧与采集时间匹配,得到实时视频数据。

9、在一些实施方式中,所述获取视频帧输入开始时间戳、视频帧输入结束时间戳和视频帧输入结束系统时间戳包括:通过在mediabuffer设置三个参数,分别记录所述视频帧输入开始时间戳、视频帧输入结束时间戳和视频帧输入结束系统时间戳,视频输入接口取出缓存中的视频帧时,将v4l2_buffer中的timestamp的视频帧生成时间赋值给mediabuffer中的vi_start_timestamp,记录为视频帧输入开始时间戳,并重新获取系统启动时间赋值给vi_end_timestamp,记录为视频帧输入结束时间戳,获取系统时间赋值给vi_end_time,记录为视频帧输入结束系统时间戳。

10、在一些实施方式中,所述v4l2_buffer中的timestamp的视频帧生成时间为linux系统驱动层vb2_buffer结构体中的timestamp记录并赋值给v4l2_buffer结构体中的timestamp的视频帧生成时间。

11、在一些实施方式中,所述方法还包括,创建结构化文件,获取mediabuffer中的视频帧输入开始时间戳、视频帧输入结束时间戳和视频帧输入结束系统时间戳,并计算视频帧输入时间差tc,将所述视频帧输入开始时间戳、视频帧输入结束时间戳和视频帧输入结束系统时间戳以及视频帧输入时间差写入结构化文件,其中,所述视频帧输入时间差

12、tc=ti2-ti1.。

13、同时,本发明还基于上述视频数据实时采集方法,提供一种基于linux系统的视频数据实时采集系统,包括:

14、基于linux系统的视频生成端,用于录制视频,记录视频帧输入开始时间戳、视频帧输入结束时间戳和视频帧输入结束系统时间戳,并传输至所述时间校正模块;

15、时间校正模块,用于根据所述视频帧输入开始时间戳、视频帧输入结束时间戳和视频帧输入结束系统时间戳计算出视频帧生成系统时间戳,计算公式如下:

16、ts=tis-(ti2-ti1)

17、其中,ts为视频帧生成系统时间戳,tis为视频帧输入结束系统时间戳,ti2为视频帧输入结束时间戳,ti1为视频帧输入开始时间戳;

18、整合模块,用于将所述视频帧生成系统时间戳对应的视频帧与采集时间匹配,得到实时视频数据。

19、在一些实施方式中,所述基于linux系统的视频生成端的mediabuffer设置三个参数,分别记录所述视频帧输入开始时间戳、视频帧输入结束时间戳和视频帧输入结束系统时间戳,视频输入接口取出缓存中的视频帧时,将v4l2_buffer中的timestamp的视频帧生成时间赋值给mediabuffer中的vi_start_timestamp,记录为视频帧输入开始时间戳,并重新获取系统启动时间赋值给vi_end_timestamp,记录为视频帧输入结束时间戳,获取系统时间赋值给vi_end_time,记录为视频帧输入结束系统时间戳。

20、在一些实施方式中,所述基于linux系统的视频生成端将录制的每一帧视频数据的视频帧输入开始时间戳、视频帧输入结束时间戳和视频帧输入结束系统时间戳以及视频帧输入时间差写入结构化文件,其中,所述视频帧输入时间差

21、tc=ti2-ti1。

22、另外,本发明还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行上述一种基于linux系统的视频数据实时采集方法或一种基于linux系统的视频数据实时采集系统。

23、此外,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述一种基于linux系统的视频数据实时采集方法或一种基于linux系统的视频数据实时采集系统的计算机程序。

24、与现有技术相比,本发明具有以下有益效果:

25、本发明基于linux系统的视频生成端,利用linux系统的vb2(videobuf2),其vb2_buffer结构体中的timestamp记录了视频数据帧时间戳。并记录视频帧输入开始时间戳,视频帧输入结束时间戳,以及视频帧输入结束系统时间戳,并生成视频帧结构化文件。在上层应用venc回调时,通过视频帧结构化文件存储的时间戳计算出视频数据帧生成最接近的系统时间戳,来匹配采集时间戳对应的视频帧,减少时间偏差,每个采集到的视频帧的时间偏差可控制在200毫秒内。



技术特征:

1.一种基于linux系统的视频数据实时采集方法,其特征在于,包括:

2.根据权利要求1所述的一种基于linux系统的视频数据实时采集方法,其特征在于,所述获取视频帧输入开始时间戳、视频帧输入结束时间戳和视频帧输入结束系统时间戳包括:通过在mediabuffer设置三个参数,分别记录所述视频帧输入开始时间戳、视频帧输入结束时间戳和视频帧输入结束系统时间戳,视频输入接口取出缓存中的视频帧时,将v4l2_buffer中的timestamp的视频帧生成时间赋值给mediabuffer中的vi_start_timestamp,记录为视频帧输入开始时间戳,并重新获取系统启动时间赋值给vi_end_timestamp,记录为视频帧输入结束时间戳,获取系统时间赋值给vi_end_time,记录为视频帧输入结束系统时间戳。

3.根据权利要求2所述的一种基于linux系统的视频数据实时采集方法,其特征在于,所述v4l2_buffer中的timestamp的视频帧生成时间为linux系统驱动层vb2_buffer结构体中的timestamp记录并赋值给v4l2_buffer结构体中的timestamp的视频帧生成时间。

4.根据权利要求3所述的一种基于linux系统的视频数据实时采集方法,其特征在于,所述方法还包括,创建结构化文件,获取mediabuffer中的视频帧输入开始时间戳、视频帧输入结束时间戳和视频帧输入结束系统时间戳,并计算视频帧输入时间差tc,将所述视频帧输入开始时间戳、视频帧输入结束时间戳和视频帧输入结束系统时间戳以及视频帧输入时间差写入结构化文件,其中,所述视频帧输入时间差

5.一种基于linux系统的视频数据实时采集系统,采用权利要求1至4中任一项所述的一种基于linux系统的视频数据实时采集方法,其特征在于,包括基于linux系统的视频生成端,用于录制视频,记录视频帧输入开始时间戳、视频帧输入结束时间戳和视频帧输入结束系统时间戳,并传输至所述时间校正模块;

6.根据权利要求5所述的一种基于linux系统的视频数据实时采集系统,其特征在于,所述基于linux系统的视频生成端的mediabuffer设置三个参数,分别记录所述视频帧输入开始时间戳、视频帧输入结束时间戳和视频帧输入结束系统时间戳,视频输入接口取出缓存中的视频帧时,将v4l2_buffer中的timestamp的视频帧生成时间赋值给mediabuffer中的vi_start_timestamp,记录为视频帧输入开始时间戳,并重新获取系统启动时间赋值给vi_end_timestamp,记录为视频帧输入结束时间戳,获取系统时间赋值给vi_end_time,记录为视频帧输入结束系统时间戳。

7.根据权利要求6所述的一种基于linux系统的视频数据实时采集系统,其特征在于,所述基于linux系统的视频生成端将录制的每一帧视频数据的视频帧输入开始时间戳、视频帧输入结束时间戳和视频帧输入结束系统时间戳以及视频帧输入时间差写入结构化文件,其中,所述视频帧输入时间差

8.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4中任一项所述的一种基于linux系统的视频数据实时采集方法或权利要求5至7中任一项所述的一种基于linux系统的视频数据实时采集系统。

9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有执行权利要求1至4中任一项所述的一种基于linux系统的视频数据实时采集方法或权利要求5至7中任一项所述的一种基于linux系统的视频数据实时采集系统的计算机程序。


技术总结
本发明属于涉及多媒体数据处理技术领域,尤其涉及一种基于linux系统的视频数据实时采集方法及系统。本发明基于linux系统的视频生成端,利用linux系统的vb2_buffer结构体中的timestamp记录视频数据帧时间戳,并记录视频帧输入开始时间戳,视频帧输入结束时间戳,以及视频帧输入结束系统时间戳,生成视频帧结构化文件。在上层应用VENC回调时,通过视频帧结构化文件存储的时间戳计算出视频数据帧生成最接近的系统时间戳,来匹配采集时间戳对应的视频帧,减少时间偏差,每个采集到的视频帧的时间偏差可控制在200毫秒内。

技术研发人员:周志文,周杰,纪向晴,李兰
受保护的技术使用者:深圳市麦谷科技有限公司
技术研发日:
技术公布日:2024/3/27
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1