一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种循环录制视频的方法和系统与流程

2022-06-11 06:46:59 来源:中国专利 TAG:


1.本发明实施例涉及视频处理技术领域,尤其涉及一种循环录制视频的方法和系统。


背景技术:

2.目前基于android系统的行车记录仪广泛被大众接受,行车记录仪能够有效防止碰瓷,记录行车生活和事故定责。而开发出一款行车记录仪所需的时间成本也很高。
3.由于android系统的原因,目前市面上基于android系统的行车记录仪录制视频大部分用到的是camera2的mediarecorder类,对mediarecorder设置oninfolistener监听,设置循环时长setmaxduration(time),当自定义的录制长度达到时,会调用该接口。传统的实现循环录制的方法,需要在oninfolistener的oninfo方法中释放camera等资源,重新初始化,再次开始录制。因为中途需要重置camera资源,还有保存视频操作,导致这种实现循环录制的方法,连续录制的两段视频之间会存在漏秒掉帧的情况。


技术实现要素:

4.本发明针对现有技术中存在的技术问题,提供一种循环录制视频的方法和系统,以解决现有技术中连续录制的两段视频之间会存在漏秒掉帧的问题。
5.为解决上述技术问题,第一方面,本发明实施例提供一种循环录制视频的方法,包括:
6.开启音频数据流录制和/或视频数据流录制后,基于音视频编码混合器获取对应的音频数据流和/或视频流数据,以进行混合编码;
7.基于第一线程每间隔预设循环录制时长关闭音视频编码混合器,并保存音视频编码混合器混合编码后的视频数据;
8.基于第二线程每间隔预设循环录制时长开启音视频编码混合器,并获取至少当前时刻后的音频数据流和/或视频流数据,以进行混合编码。
9.作为优选的,开启音频数据流录制和/或视频数据流录制前,还包括:
10.在建造者模式下,设定数字视频录制机dvr参数,所述dvr参数包括视频分辨率、预设循环录制时长、是否录音、文件存储工厂、图片格式、dvr拦截器、视频格式、帧率、录音格式、采样率和i帧间隔。
11.作为优选的,还包括:
12.开启拍照,确定每帧视频流的长度和宽度,从所述视频流数据中获取一帧视频流,并保存。
13.作为优选的,并保存音视频编码混合器混合编码后的视频数据,具体包括:
14.在每次录制/拍照前,调用工厂模式下的工厂方法件视频数据保存至文件存储工厂,并基于预设规则确定文件名。
15.作为优选的,还包括:
16.采用拦截器模式,每次录制/拍照前调用所述dvr拦截器以确定是否拦截此次录制/拍照:
17.若判断不拦截,则确定文件存放地址,开始录制/拍照;
18.若判断拦截,则监听录制/拍照状态,并进行录制/拍照拦截。
19.作为优选的,还包括:
20.配置水印迭代器,以在编码时获取视频流数据的每一帧,以作为水印对象,在所述水印迭代器中循环读取水印对象,直至水印添加列表中的视频帧全部添加水印。
21.第二方面,本发明实施例提供一种循环录制视频的系统,包括:
22.音视频编码混合器,开启音频数据流录制和/或视频数据流录制后,基于音视频编码混合器获取对应的音频数据流和/或视频流数据,以进行混合编码;
23.线程调度池,基于第一线程每间隔预设循环录制时长关闭音视频编码混合器,并保存音视频编码混合器混合编码后的视频数据;
24.基于第二线程每间隔预设循环录制时长开启音视频编码混合器,并获取至少当前时刻后的音频数据流和/或视频流数据,以进行混合编码。
25.第三方面,本发明实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如本发明第一方面实施例所述循环录制视频的方法的步骤。
26.第四方面,本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如本发明第一方面实施例所述循环录制视频的方法的步骤。
27.本发明的有益效果是:启动两个线程调度,一个负责开始录制,一个负责关闭录制,根据开发人员配置的循环时间和缺省时间,实现循环录制视频的功能,并能做到不漏帧,录制的两段视频之间不存在漏秒,甚至第二段视频头的数据能重复第一段视频的结尾数据,并且重复的时间长短可以设置。
附图说明
28.图1为本发明实施例提供的一种循环录制视频的方法流程图;
29.图2为本发明实施例提供的sdk初始化流程图;
30.图3为本发明实施例提供的循环录制流程图;
31.图4为本发明实施例提供的紧急录制流程图;
32.图5为本发明实施例提供的拍照流程图;
33.图6为本发明实施例提供的回调、工厂、拦截器流程图;
34.图7为本发明实施例提供的添加水印流程图;
35.图8为本发明实施例提供的一种电子设备的实体结构示意图。
具体实施方式
36.为使本发明实施例提供的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术
人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
37.传统的实现循环录制的方法,需要在oninfolistener的oninfo方法中释放camera等资源,重新初始化,再次开始录制。因为中途需要重置camera资源,还有保存视频操作,导致这种实现循环录制的方法,连续录制的两段视频之间会存在漏秒掉帧的情况。
38.因此,本发明实施例提供一种循环录制视频的方法和系统,启动两个线程调度,一个负责开始录制,一个负责关闭录制,根据开发人员配置的循环时间和缺省时间,实现循环录制视频的功能,并能做到不漏帧。以下将通过多个实施例进行展开说明和介绍。
39.图1为本发明实施例提供一种循环录制视频的方法,包括:
40.配置dvr相关参数,在builder以后对dvr进行设置,当设置完预览的surfaceview后,可以获取到摄像头数据。然后开发者可以在合理的情况下调用dvr的拍照、循环录制、紧急录制等操作。
41.本实施例中,如图2中所示,首先需要在建造者模式下,设定数字视频录制机dvr参数,所述dvr参数包括视频分辨率、预设循环录制时长、是否录音、文件存储工厂、图片格式、dvr拦截器、视频格式、帧率、录音格式、采样率和i帧间隔。
42.本发明实施例提供的建造者(builder)模式,能快速配置camera和mediacodec、mediamuxer的相关参数,提供一个视频、图片文件保存的文件存储工厂(factory),提供录制视频和拍照之前的dvr拦截器(interceptor),开发者可以实现该factory和interceptor来定义文件保存的位置,和开始录制/拍照之前的检查(例如内存检查等等)。
43.开启音频数据流录制和/或视频数据流录制后,基于音视频编码混合器获取对应的音频数据流和/或视频流数据,以进行混合编码;本实施例中通过miedacodec、mediamuxer实现视频的编码和保存。基于第一线程每间隔预设循环录制时长关闭音视频编码混合器,并保存音视频编码混合器混合编码后的视频数据;
44.基于第二线程每间隔预设循环录制时长开启音视频编码混合器,并获取至少当前时刻后的音频数据流和/或视频流数据,以进行混合编码。
45.具体的,本实施例中,如图3中所示,采用线程调度池,启动两个线程调度,其中,第一线程负责开始录制,第二线程负责关闭录制,根据开发人员配置的预设循环录制时长和缺省时间,实现循环录制视频的功能,并能做到不漏帧,其中,相邻的后一段视频头的数据能重复前一段视频的结尾数据,并且重复的时间长短可以设置。camera视频流数据分发,本发明实施例用一个调度类来不断获取视频流数据,由这个调度类根据状态来分发数据。由于有这个调度类数据分发总线,所以循环录制,紧急录制、拍照,互相不干扰。
46.在上述实施例的基础上,还可以进行紧急录制,具体流程如图4中所示,收到开始紧急录制的指令后,确定预设的录制时间,启动线程调度池,启动一个线程打开音视频编码混合器,获取audiorecord的音频流数据和camera分发的视频流数据,进行编码,当满足预设的录制时间后,结束线程,保存视频。
47.拍照流程如图5中所示,开启拍照,确定每帧视频流的长度和宽度,从所述视频流数据中获取一帧视频流,并保存。
48.采用工厂模式,由开发人员实现本发明提供的文件存储工厂,每次录制/拍照前会调用该工厂的方法获取保存的位置和文件名。
49.在上述实施例的基础上,如图6中所示,还包括:
50.采用拦截器模式,每次录制/拍照前调用所述dvr拦截器以确定是否拦截此次录制/拍照:
51.若判断不拦截,则确定文件存放地址,开始录制/拍照;
52.若判断拦截,则监听录制/拍照状态,并进行录制/拍照拦截。其中录制状态包括:录制/拍照拦截、录制/拍照开启、正在录制、录制/拍照错误、录制/拍照完成,能自由设置camera状态监听、录制状态监听、拍照状态监听,程序会返回对应的状态给开发者,在监听时返回一系列状态码,用来发送录制/拍照的一系列状态(例如:开始录制、拦截录制、录制失败、录制成功等状态)。
53.在上述实施例的基础上,如图7中所示,还包括:
54.配置水印迭代器,以在编码时获取视频流数据的每一帧,以作为水印对象,在所述水印迭代器中循环读取水印对象,直至水印添加列表中的视频帧全部添加水印。
55.本发明实施例还提供一种循环录制视频的系统,包括:
56.音视频编码混合器,开启音频数据流录制和/或视频数据流录制后,基于音视频编码混合器获取对应的音频数据流和/或视频流数据,以进行混合编码;
57.线程调度池,基于第一线程每间隔预设循环录制时长关闭音视频编码混合器,并保存音视频编码混合器混合编码后的视频数据;
58.基于第二线程每间隔预设循环录制时长开启音视频编码混合器,并获取至少当前时刻后的音频数据流和/或视频流数据,以进行混合编码。
59.基于相同的构思,本发明实施例还提供了一种电子设备的实体结构示意图,如图8所示,该电子设备可以包括:处理器(processor)810、通信接口(communications interface)820、存储器(memory)830和通信总线840,其中,处理器810,通信接口820,存储器830通过通信总线840完成相互间的通信。处理器810可以调用存储器830中的逻辑指令,以执行如上述各实施例所述循环录制视频的方法的步骤。例如包括:
60.开启音频数据流录制和/或视频数据流录制后,基于音视频编码混合器获取对应的音频数据流和/或视频流数据,以进行混合编码;
61.基于第一线程每间隔预设循环录制时长关闭音视频编码混合器,并保存音视频编码混合器混合编码后的视频数据;
62.基于第二线程每间隔预设循环录制时长开启音视频编码混合器,并获取至少当前时刻后的音频数据流和/或视频流数据,以进行混合编码。
63.基于相同的构思,本发明实施例还提供一种非暂态计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序包含至少一段代码,该至少一段代码可由主控设备执行,以控制主控设备用以实现如上述各实施例所述循环录制视频的方法的步骤。例如包括:
64.开启音频数据流录制和/或视频数据流录制后,基于音视频编码混合器获取对应的音频数据流和/或视频流数据,以进行混合编码;
65.基于第一线程每间隔预设循环录制时长关闭音视频编码混合器,并保存音视频编码混合器混合编码后的视频数据;
66.基于第二线程每间隔预设循环录制时长开启音视频编码混合器,并获取至少当前时刻后的音频数据流和/或视频流数据,以进行混合编码。
67.需要说明的是,在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其它实施例的相关描述。
68.本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
69.本发明是参照根据本发明实施例提供的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式计算机或者其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
70.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
71.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
72.尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
73.显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包括这些改动和变型在内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献