System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及视频录制,尤其涉及一种视频分段录制方法、装置、电子设备和可读存储介质。
技术介绍
1、在录制监控视频的过程中,为了便于后续存储、查找或者回放,一般会将视频按时间进行分段录像并保存。
2、但是由于在视频分段录制过程中,需要先停止录像再重启录像,而重启录像需要消耗一定的时间,这样就会造成分段录制时两段视频不连续,存在丢秒和丢帧的问题。
技术实现思路
1、本申请提供一种视频分段录制方法、装置、电子设备和可读存储介质,用以解决现有技术在进行视频分段录制时,存在丢秒和丢帧的技术问题。
2、根据本申请公开的第一方面,本申请提供了一种视频分段录制方法,包括:
3、执行视频处理任务;其中,所述视频处理任务包括调用生产者线程将摄像头采集的原始视频数据写入数据缓存区中作为写队列的数据缓存队列;调用消费者线程读取数据缓存区中作为读队列的数据缓存队列中的原始视频数据,并将所述原始视频数据输入编码器进行编码,获得编码视频流;以及当两条数据缓存队列的队列长度满足队列交换条件时,将两条数据缓存队列循环进行身份交换;
4、执行视频录制任务;其中,所述视频录制任务包括调用录制器将所述编码视频流分段写入多媒体文件,生成多个视频文件。
5、在一种可行的实施方式中,所述队列交换条件包括作为读队列的数据缓存队列的队列长度为零,且作为写队列的数据缓存队列的队列长度不为零。
6、在一种可行的实施方式中,所述队列交换条件还包括作为写队列的数据缓存队
7、在一种可行的实施方式中,所述方法还包括:
8、若所述消费者线程处于唤醒状态,则当所述读队列的队列长度为零,且所述写队列的队列长度小于预设长度时,控制所述消费者线程进入休眠状态;
9、若所述消费者线程处于休眠状态,则当所述读队列的队列长度不为零时,控制所述消费者线程进入唤醒状态。
10、在一种可行的实施方式中,所述方法还包括:
11、若所述生产者线程处于唤醒状态,则当所述写队列的队列长度大于所述写队列的队列容量时,控制所述生产者线程进入休眠状态;
12、若所述生产者线程处于休眠状态,则当所述写队列的队列长度小于所述写队列的队列容量时,控制所述生产者线程进入唤醒状态。
13、在一种可行的实施方式中,调用录制器将所述编码视频流分段写入多媒体文件,生成多个视频文件,包括:
14、调用录制器将所述编码视频流写入多媒体文件,生成视频文件;
15、在当前视频文件的时长达到预设的分段时长时,对所述录制器进行重启,并在所述录制器重启之后,跳转至调用录制器将所述编码视频流写入多媒体文件的步骤,生成下一视频文件。
16、在一种可行的实施方式中,在执行视频处理任务之前,所述方法还包括:
17、初始化数据缓存区,并在所述数据缓存区中创建两条数据缓存队列;其中,一条数据缓存队列作为写队列,另一条数据缓存队列作为读队列;
18、创建生产者线程和消费者线程;其中,所述生产者线程用于向所述写队列中写入数据,所述消费者线程用于从所述读队列中读取数据。
19、根据本申请公开的第二方面,本申请提供了一种视频分段录制装置,包括:
20、视频处理模块,用于执行视频处理任务;其中,所述视频处理任务包括调用生产者线程将摄像头采集的原始视频数据写入数据缓存区中作为写队列的数据缓存队列;调用消费者线程读取数据缓存区中作为读队列的数据缓存队列中的原始视频数据,并将所述原始视频数据输入编码器进行编码,获得编码视频流;以及当两条数据缓存队列的队列长度满足队列交换条件时,将两条数据缓存队列循环进行身份交换;
21、视频生成模块,用于执行视频录制任务;其中,所述视频录制任务包括调用录制器将所述编码视频流分段写入多媒体文件,生成多个视频文件。
22、根据本申请公开的第三方面,本申请提供了一种电子设备,包括处理器,以及与所述处理器通信连接的存储器;
23、所述存储器存储计算机执行指令;
24、所述处理器执行所述存储器存储的计算机执行指令,以实现第一方面中任一项所述的方法。
25、根据本申请公开的第四方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被执行时,用于实现第一方面中任一项所述的方法。
26、根据本申请公开的第五方面,本申请提供了一种计算机程序产品,包括计算机程序,所述计算机程序被执行时,用于实现第一方面中任一项所述的方法。
27、现有技术相比,本申请具有如下的有益效果:
28、本申请提供的一种视频分段录制方法、装置、电子设备和可读存储介质,通过设置具有两条数据缓存队列的数据缓存区,利用两条数据缓存队列循环交替完成视频数据的写入和读取。由于缓存数据是在编码之前,所以重启录制器、编码器都不会影响数据的连续性。使得视频分段录制过程中,不会出现丢秒和丢帧的问题,保障了视频的完整性。
本文档来自技高网...【技术保护点】
1.一种视频分段录制方法,其特征在于,包括:
2.根据权利要求1任一项所述的方法,其特征在于,所述队列交换条件包括作为读队列的数据缓存队列的队列长度为零,且作为写队列的数据缓存队列的队列长度不为零。
3.根据权利要求2所述的方法,其特征在于,所述队列交换条件还包括作为写队列的数据缓存队列的队列长度大于预设长度。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
5.根据权利要求1-4任一项所述的方法,其特征在于,所述方法还包括:
6.根据权利要求1-4任一项所述的方法,其特征在于,调用录制器将所述编码视频流分段写入多媒体文件,生成多个视频文件,包括:
7.根据权利要求1-4任一项所述的方法,其特征在于,在执行视频处理任务之前,所述方法还包括:
8.一种视频分段录制装置,其特征在于,包括:
9.一种电子设备,其特征在于,包括,处理器,以及与所述处理器通信连接的存储器;
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机
...【技术特征摘要】
1.一种视频分段录制方法,其特征在于,包括:
2.根据权利要求1任一项所述的方法,其特征在于,所述队列交换条件包括作为读队列的数据缓存队列的队列长度为零,且作为写队列的数据缓存队列的队列长度不为零。
3.根据权利要求2所述的方法,其特征在于,所述队列交换条件还包括作为写队列的数据缓存队列的队列长度大于预设长度。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
5.根据权利要求1-4任一项所述的方法,其特征在于,所述方法还包括:
6.根据权利要求1-4任...
【专利技术属性】
技术研发人员:王猛,龚溢鹏,谢璇,
申请(专利权)人:湖南行必达网联科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。