码流数据的录制方法、电子设备及存储介质与流程

文档序号:32610027发布日期:2022-12-20 19:30阅读:36来源:国知局
码流数据的录制方法、电子设备及存储介质与流程

1.本发明涉及数据录制技术领域,具体涉及码流数据的录制方法、电子设备及存储介质。


背景技术:

2.随着网上课堂和远程会议等多人视讯活动的流行,多人会议中终端本地录像的需求越来越普遍。对于常见的在线会议,常存在多人会议时会议场景切换频繁等因素,不加处理地录像将导致终端录制的视频存在唇音不同步等异常问题,使得观看录像的体验很差。


技术实现要素:

3.有鉴于此,本发明实施例提供了一种码流数据的录制方法、电子设备及存储介质,以解决录制的视频存在唇音不同步的问题。
4.根据第一方面,本发明实施例提供了一种码流数据的录制方法,包括:
5.获取当前会议场景对应的视频同步时间间隔,所述视频同步时间间隔是基于所述当前会议场景中目标录制文件的视频帧率确定的;
6.获取所述当前会议场景下的待录制码流,所述待录制码流包括所述待录制视频码流以及待录制音频码流;
7.对所述待录制音频码流的帧头信息进行解析确定音频码流的帧时长,以确定音频同步时间间隔;
8.在同一录制开始时间戳下,基于所述视频同步时间间隔对所述待录制视频码流进行录制以及基于所述音频同步时间间隔对所述待录制音频码流进行录制,以确定所述目标录制文件。
9.本发明实施例提供的码流数据的录制方法,分别利用目标录制文件的视频帧率以及待录制音频码流的帧时长,对音视频的录制时长进行了灵活的同步控制,使得同一时间间隔内录制的音视频数据与实际会议是对应的,同时,由于视频同步时间间隔以及音频同步时间间隔均是在当前会议场景下确定的,不同会议场景对应的音视频时间间隔不同,使得该方法能够自动适应会议场景的频繁切换,进而实现了所录制的码流数据的唇音同步。
10.在一些实施方式中,所述基于所述视频同步时间间隔对所述待录制视频码流进行录制,包括:
11.从所述录制开始时间戳开始,获取所述视频同步时间间隔内的待录制视频帧;
12.利用所述待录制视频帧的时间戳,确定所述视频同步时间间隔内的视频帧数;
13.基于所述视频同步时间间隔内的视频帧数,确定所述视频同步时间间隔内的录制视频帧,所述录制视频帧的数量为1。
14.本发明实施例提供的码流数据的录制方法,视频同步时间间隔用于表示最终所生成的目标录制文件的一帧录制视频帧的时长,利用该视频同步时间间隔对所获取到的视频同步时间间隔内的待录制视频帧进行处理,使得在视频同步时间间隔内仅存在一帧录制视
频帧,从而能够适应视频数据的波动,以解决由于丢帧或每帧数据的延时等原因所导致的唇音不同步的问题。
15.在一些实施方式中,所述基于所述视频同步时间间隔内的视频帧数,确定所述视频同步时间间隔内的录制视频帧,包括:
16.当所述视频帧数等于1时,将所述待录制视频帧确定为所述录制视频帧;
17.当所述视频帧数大于时,将所述待录制视频帧中时间戳最早的视频帧确定为所述录制视频帧;
18.当所述视频帧数小于1时,基于上一个视频同步时间间隔的历史录制视频帧,确定当前的视频同步时间间隔内的录制视频帧。
19.本发明实施例提供的码流数据的录制方法,由于当前视频同步时间间隔对应录制的起始时间是上一个视频同步时间间隔的结束时间,也就是说整体上时间是连续无间断的,因此,在视频同步时间间隔内待录制视频帧的数量较多时,取时间戳最早的视频帧为录制视频帧,能够保证所录制的视频的连续性。
20.在一些实施方式中,所述基于上一个视频同步时间间隔的历史录制视频帧,确定所述视频同步时间间隔内的录制视频帧,包括:
21.当所述历史录制视频帧存在时,将所述历史录制视频帧确定为所述录制视频帧;
22.当所述历史录制视频帧不存在时,将预设图片确定为录制视频帧。
23.本发明实施例提供的码流数据的录制方法,在历史录制视频帧不存在时,用预设图片进行补齐,以保证每个视频同步时间间隔内均存在有录制视频帧。
24.在一些实施方式中,所述基于所述音频同步时间间隔对所述待录制音频码流进行录制,包括:
25.从所述录制开始时间戳开始,获取所述音频同步时间间隔内的待录制音频帧;
26.利用所述待录制音频帧的时间戳,确定所述音频同步时间间隔内所有所述待录制音频帧的实际时长;
27.基于所有所述待录制音频帧的实际时长与所述音频同步时间间隔的大小关系,确定所述音频同步时间间隔内的录制音频帧,所述录制音频帧的时长与所述音频同步时间间隔相等。
28.本发明实施例提供的码流数据的录制方法,由于帧时长表示的是音频帧的时长,利用所有待录制音频帧的实际时长与音频同步时间间隔的大小关系对待录制音频帧进行处理,得到音频同步时间间隔内的录制音频帧,以避免音频帧延时或丢帧所导致的唇音不同步问题。
29.在一些实施方式中,所述基于所有所述待录制音频帧的实际时长与所述音频同步时间间隔的大小关系,确定所述音频同步时间间隔内的录制音频帧,包括:
30.当所述实际时长与所述音频同步时间间隔相等时,将所述待录制音频帧确定为音频同步时间间隔内的录制音频帧;
31.当所述实际时长大于所述音频同步时间间隔时,对所述待录制音频帧进行处理以对齐所述音频同步时间间隔得到所述录制音频帧;
32.当所述实际时长小于所述音频同步时间间隔时,对所述待录制音频帧进行处理以补足所述音频同步时间间隔得到所述录制音频帧,或者,丢弃所述待录制音频帧并将静音
帧确定为所述录制音频帧。
33.本发明实施例提供的码流数据的录制方法,在实际时长与音频同步时间间隔不一致时,对待录制音频帧进行处理保证处理后的待录制音频帧的时长与音频同步时间间隔一致。
34.在一些实施方式中,所述在同一录制开始时间戳下,基于所述视频同步时间间隔对所述待录制视频码流进行录制以及基于所述音频同步时间间隔对所述待录制音频码流进行录制,以确定所述目标录制文件,包括:
35.创建临时文件;
36.将所述待录制视频码流以及所述待录制音频码流分别写入所述临时文件;
37.当录制结束后,逐帧读取所述临时文件中的待录制视频码流以及所述临时文件中的待录制音频码流;
38.在所述同一录制开始时间戳下,基于所述视频同步时间间隔对读取的待录制视频码流进行录制以及基于所述音频同步时间间隔对读取的待录制音频码流进行录制,以确定所述目标录制文件。
39.本发明实施例提供的码流数据的录制方法,先将码流数据写入到临时文件中,待录制结束后再进行同步转码,能够在会议过程中减少数据的处理量,保证会议的实时性。
40.在一些实施方式中,所述对所述待录制音频码流的帧头信息进行解析确定音频码流的帧时长,以确定音频同步时间间隔,包括:
41.当所述当前会议场景存在至少两路音频时,对各路所述待录制音频码流的帧头信息进行解析,确定各路所述音频码流的帧时长;
42.将各路所述音频码流的帧时长的公倍数确定为所述音频同步时间间隔。
43.本发明实施例提供的码流数据的录制方法,利用各路音频码流的帧时长的公倍数确定音频同步时间间隔,能够保证该音频时间间隔能够满足所有音频通路的需求,进一步保证了唇音同步。
44.根据第二方面,本发明实施例提供了一种码流数据的录制装置,其特征在于,包括:
45.第一获取模块,用于获取当前会议场景对应的视频同步时间间隔,所述视频同步时间间隔是基于所述当前会议场景中目标录制文件的视频帧率确定的;
46.第二获取模块,用于获取所述当前会议场景下的待录制码流,所述待录制码流包括所述待录制视频码流以及待录制音频码流;
47.解析模块,用于对所述待录制音频码流的帧头信息进行解析确定音频码流的帧时长,以确定音频同步时间间隔;
48.录制模块,用于在同一录制开始时间戳下,基于所述视频同步时间间隔对所述待录制视频码流进行录制以及基于所述音频同步时间间隔对所述待录制音频码流进行录制,以确定所述目标录制文件。
49.根据第三方面,本发明实施例提供了一种电子设备,包括:存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行第一方面或者第一方面的任意一种实施方式中所述的码流数据的录制方法。
50.根据第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行第一方面或者第一方面的任意一种实施方式中所述的码流数据的录制方法。
51.需要说明的是,本发明实施例提供的码流数据的录制装置、电子设备及计算机可读存储介质的相应有益效果,请参见上文码流数据的录制方法的对应有益效果的描述,在此不再赘述。
附图说明
52.为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
53.图1是根据本发明实施例的码流数据的录制方法的流程图;
54.图2是根据本发明实施例的码流数据的录制方法的流程图;
55.图3是根据本发明实施例的码流数据的录制方法的流程图;
56.图4是根据本发明实施例的视频同步转码的流程示意图;
57.图5是根据本发明实施例的音频同步转码的流程示意图;
58.图6是根据本发明实施例的码流数据的录制装置的结构框图;
59.图7是本发明实施例提供的电子设备的硬件结构示意图。
具体实施方式
60.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
61.本发明实施例提供的码流数据的录制方法,分别视频同步时间间隔以及音频同步时间间隔对待录制码流中的待录制视频码流以及待录制音频码流进行录制,即,对音视频分别采用各自对应的同步策略进行录制,避免由于会议场景切换所导致的唇音不同步的问题。
62.进一步地,在开始录制之前,还需要确定待录制码流的数据源以及录制时间,数据源用于表示待录制码流的来源。用电子设备本地录制码流时,待录制码流包括两种,即本地采集的和从远端接收的。对于本地采集的数据,其录制时间与采集时间一致;对于从远端接收的数据,其录制时间与播放时间一致。在录制码流数据的同时记录其录制时间和当前会议场景信息,同时保证所有码流都在同一入口逐帧录制,录制的数据就完成了按时间排序。当前会议场景信息包括当前会议模式、总音频路数、总视频路数、视频显示通道位置信息等。
63.在开始录制时,即用户点击开始录制后,录制的第一帧数据的时间戳为起始时间,这一帧数据可能是音频也可能是视频,这个时间戳是所有码流的起始时间。
64.在录制过程中,基于视频同步时间间隔对待录制视频进行录制,得到每个视频同
步时间间隔对应的录制视频帧;基于音频同步时间间隔对待录制音频进行录制,得到每个音频同步时间间隔对应的录制音频帧。对于录制视频帧以及录制音频帧,可以在录制过程中直接录制生成目标录制文件,或者先将其写入临时文件中,等录制结束后再同步转码得到目标录制文件。
65.根据本发明实施例,提供了一种码流数据的录制方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
66.在本实施例中提供了一种码流数据的录制方法,可用于电子设备,如移动终端、会议设备等,图1是根据本发明实施例的码流数据的录制方法的流程图,如图1所示,该流程包括如下步骤:
67.s11,获取当前会议场景对应的视频同步时间间隔。
68.其中,所述视频同步时间间隔是基于当前会议场景中目标录制文件的视频帧率确定的。
69.目标录制文件的帧率是录制之前确定的,对于电子设备而言,可以支持用户选择最终目标录制文件的帧率的,例如,30fps、60fps等等。或者,也可以是不支持用户选择,而是电子设备自身属性确定的,帧率为一个固定值。在此对其并不做任何限定,具体根据实际需求进行设置。
70.视频帧率,即每秒钟有多少帧画面;对视频帧率取倒数的含义为:一帧画面的持续时间。基于此,确定视频同步时间间隔为目标录制文件的帧时长。即,在后续的录制过程中,每隔视频同步时间间隔存在一个录制视频帧,实现对待录制视频码流的逐帧录制且录制视频帧的时长与视频帧率对应。例如,目标录制文件的视频帧率为30(s-1
),视频同步时间间隔dt1=1000/30(ms)。
71.由于视频同步时间间隔是与当前会议场景对应的,在发生会议场景切换时,需要重新确定视频同步时间间隔。
72.s12,获取当前会议场景下的待录制码流。
73.其中,所述待录制码流包括待录制视频码流以及待录制音频码流。
74.对于电子设备而言,其所获取到的待录制码流分为待录制视频码流与待录制音频码流。如上文所述,待录制码流的来源分为两种:本地采集的以及从远端接收的。对于电子设备来说,支持哪些会议场景以及每一路码流的入口,都是事先设计好的,录制时需要利用这些信息。例如,电子设备的入口a用于接收本地采集的待录制码流,入口b用于接收从远端接收的待录制码流。电子设备在获取到的待录制码流,获取到待录制码流的入口,即可确定待录制码流的来源,相应地,确定出对于该待录制码流的录制时间。
75.例如,在视频会议场景中,包括3个参会方,本地为参会方1,其余参会方分别为参会方2以及参会方3。其中,参会方1对应于电子设备的入口1,参会方2对应于电子设备的入口2,参会方3对应于电子设备的入口3。在会议过程中,对于本地而言,在对会议内容进行录制时,不仅需要录制本地采集的码流数据,还需要录制其他参会方的码流数据。如上文所述,本地利用获取待录制码流的入口确定待录制码流的来源,相应地,确定对待录制码流的录制时间。若入口1获取到待录制码流,则对于该待录制码流的录制时间为该待录制码流的
采集时间;若入口2获取到待录制码流,则对于该待录制码流的录制时间为该待录制码流在本地的播放时间。
76.s13,对待录制音频码流的帧头信息进行解析确定音频码流的帧时长,以确定音频同步时间间隔。
77.对于待录制码流而言,其帧头信息里都是包含格式信息的,音频码流的每帧时长属于格式信息。基于此,对获取到的待录制音频码流的帧头信息进行解析,即可确定出音频码流的帧时长。电子设备在确定出音频码流的帧时长之后,基于当前会议场景中待录制音频码流的路数确定音频同步时间间隔,从而实现对待录制音频码流进行逐帧录制。当仅存在一路待录制音频码流时,将待录制音频码流的帧时长确定为音频同步时间间隔。
78.在一些实施方式中,上述s13包括:
79.(1)当当前会议场景存在至少两路音频时,对各路待录制音频码流的帧头信息进行解析,确定各路音频码流的帧时长。
80.(2)将各路音频码流的帧时长的公倍数确定为音频同步时间间隔。
81.对于待录制音频数据而言,音频同步时间间隔应为音频码流的帧时长的整数倍。有多路音频时,音频同步时间间隔应取各路音频码流时长的公倍数,然后建立每一路音频的处理通道,并统一混音格式。利用各路音频码流的帧时长的公倍数确定音频同步时间间隔,能够保证该音频时间间隔能够满足所有音频通路的需求,进一步保证了唇音同步。
82.s14,在同一录制开始时间戳下,基于视频同步时间间隔对待录制视频码流进行录制以及基于音频同步时间间隔对待录制音频码流进行录制,以确定目标录制文件。
83.在经过上述的准备处理之后,确定出视频同步时间间隔以及音频同步时间间隔。后续即可启动对待录制码流的录制,即,在同一录制开始时间戳下,分别利用视频同步时间间隔对待录制视频码流进行录制,利用音频同步时间间隔对待录制音频码流进行录制。
84.如上文所述,录制开始时间戳为待录制码流的第一个码流帧的时间戳,该第一个码流帧可能是音频码流帧,也可能是视频码流帧。在同一录制开始时间戳下分别进行音视频的录制,以保证起始时间是相同的。
85.在对待录制视频码流进行录制时,保证在视频同步时间间隔内仅存在一帧录制视频帧;在对待录制音频码流进行录制时,保证在音频同步时间间隔内的录制音频帧的时长与音频同步时间间隔一致。即,针对待录制视频码流以及待录制音频码流分别采用不同的同步策略,但是其起始时间是相同的。
86.本实施例提供的码流数据的录制方法,分别利用目标录制文件的视频帧率以及待录制音频码流的帧时长,对音视频的录制时长进行了灵活的同步控制,使得同一时间间隔内录制的音视频数据与实际会议是对应的,同时,由于视频同步时间间隔以及音频同步时间间隔均是在当前会议场景下确定的,不同会议场景对应的音视频时间间隔不同,使得该方法能够自动适应会议场景的频繁切换,进而实现了所录制的码流数据的唇音同步。
87.在本实施例中提供了一种码流数据的录制方法,可用于电子设备,如移动终端、会议设备等,图2是根据本发明实施例的码流数据的录制方法的流程图,如图2所示,该流程包括如下步骤:
88.s21,获取当前会议场景对应的视频同步时间间隔。
89.其中,所述视频同步时间间隔是基于当前会议场景中目标录制文件的视频帧率确
定的。
90.详细请参见图1所示实施例的s11,在此不再赘述。
91.s22,获取当前会议场景下的待录制码流。
92.其中,所述待录制码流包括待录制视频码流以及待录制音频码流。
93.详细请参见图1所示实施例的s12,在此不再赘述。
94.s23,对待录制音频码流的帧头信息进行解析确定音频码流的帧时长,以确定音频同步时间间隔。
95.详细请参见图1所示实施例的s13,在此不再赘述。
96.s24,在同一录制开始时间戳下,基于视频同步时间间隔对待录制视频码流进行录制以及基于音频同步时间间隔对待录制音频码流进行录制,以确定目标录制文件。
97.如上文所述,针对待录制视频码流以及待录制音频码流分别采用对应的同步策略。对于待录制视频码流的录制而言,对于每一路待录制视频码流,从录制开始时间戳算起,逐帧处理[t,t+dt1)时间段内的待录制视频码流;当录制时间戳超过t+dt1时,进入下一个同步时间段[t+dt1,t+2dt1)。在[t,t+dt1)时间段内需要有一帧录制视频帧。其中,dt1为视频同步时间间隔,此处的t为当前同步时间段的起始时间。具体地,上述s24中的基于视频同步时间间隔对待录制视频码流进行录制包括:
[0098]
s241,从录制开始时间戳开始,获取视频同步时间间隔内的待录制视频帧。
[0099]
当前视频同步处理的时间段为[t,t+dt1)时间段,录制开始时间戳为待录制视频码流中第一帧待录制视频帧的时间戳。
[0100]
在对待录制视频码流进行录制时,电子设备获取[t,t+dt1)时间段的待录制视频帧,该时间段的时长即为视频同步时间间隔。
[0101]
s242,利用待录制视频帧的时间戳,确定视频同步时间间隔内的视频帧数。
[0102]
[t,t+dt1)时间段的待录制视频帧均具有相应的时间戳,利用[t,t+dt1)时间段内每一帧待录制视频帧的时间戳,确定[t,t+dt1)时间段内的实际获取到的待录制视频帧的帧数。
[0103]
如上文所述,依据视频同步时间间隔的定义,即在视频同步时间间隔内仅存在一帧录制视频帧。此处确定出的实际帧数为在视频同步时间间隔内,实际获取到的待录制视频帧的数量。
[0104]
s243,基于视频同步时间间隔内的视频帧数,确定视频同步时间间隔内的录制视频帧。
[0105]
其中,录制视频帧的数量为1。依据视频同步时间间隔内对录制视频帧的需求,对实际获取到的待录制视频帧进行处理,以保证在视频同步时间间隔内仅存在一帧录制视频帧。具体地,若实际帧数为1,那么将该待录制视频帧确定为视频同步时间间隔内的录制视频帧。
[0106]
在一些实施方式中,上述s243包括:
[0107]
(1)当视频帧数等于1时,将待录制视频帧确定为录制视频帧。
[0108]
(2)当视频帧数大于时,将待录制视频帧中时间戳最早的视频帧确定为录制视频帧。
[0109]
(3)当视频帧数小于1时,基于上一个视频同步时间间隔的历史录制视频帧,确定
当前的视频同步时间间隔内的录制视频帧。
[0110]
在视频同步时间间隔内实际获取到的待录制视频帧的视频帧数大于1时,依据所获取到的待录制视频帧的时间戳,查询到时间戳最早的待录制视频帧,将其确定为视频同步时间间隔内的录制视频帧。
[0111]
在视频帧数小于1时,结合上一个视频同步时间间隔的历史录制视频帧,进行当前视频录制处理的视频同步时间间隔内的录制视频帧。例如,当前视频录制处理的时间段为[t,t+dt1),相应地,上一个视频同步录制处理的时间段为[t-dt1,t)。依据上文描述,每一个视频同步时间间隔内均对应有录制视频帧,基于此,结合上一个视频同步时间间隔的历史录制视频帧确定当前的视频同步时间间隔内的录制时间帧。
[0112]
由于当前的视频同步时间间隔对应录制的起始时间是上一个视频同步时间间隔的结束时间,也就是说整体上时间是连续无间断的,因此,在视频同步时间间隔内待录制视频帧的数量较多时,取时间戳最早的视频帧为录制视频帧,能够保证所录制的视频的连续性。
[0113]
在一些实施方式中,上述s243的步骤(3)包括:
[0114]
2.1)当历史录制视频帧存在时,将历史录制视频帧确定为录制视频帧。
[0115]
2.2)当历史录制视频帧不存在时,将预设图片确定为录制视频帧。
[0116]
历史录制视频帧是否存在,表示历史录制视频帧是否是从历史待录制视频帧中确定的。具体地,若[t,t+dt1)时间段内没有待录制视频帧,但是[t-dt1,t)时间段内有历史录制视频帧,那么仍然该历史录制视频帧作为[t,t+dt1)时间段内录制视频帧;若[t,t+dt1)时间段内没有待录制视频帧,但是[t-dt1,t)时间段内也没有历史录制视频帧,那么这一路码流是缺失的,可以使用自定义的预设图片代替,即,将预设图片确定为录制视频帧。
[0117]
进一步地,在确定了[t,t+dt1)时间段内的录制视频帧之后,若需要对多路视频进行合成,则进行画面合成。
[0118]
在历史录制视频帧不存在时,用预设图片进行补齐,以保证每个视频同步时间间隔内均存在有录制视频帧。
[0119]
如上文所述,视频同步时间间隔是与当前会议场景相关的。基于此,当会议场景更换,或者视频码流有增减路数,则取当前会议场景的最后一个时间段[t,t+dt1)的结束时间t+dt1为新会议场景的起始录制时间,重新确定视频同步时间间隔,继续对新会议场景的待录制视频码流进行录制直到新会议场景的录制结束。
[0120]
对于每一路待录制音频帧,从录制开始时间戳算起,逐帧处理[t,t+dt2)时间段内的待录制音频数据,当录制时间戳超过t+dt2时,进入下一个同步时间段[t+dt2,t+2*dt2)。在[t,t+dt2)时间段内需要有足帧的音频录制帧,即,每个时间段内所有音频录制帧的时长为音频同步时间间隔。其中,dt2为音频同步时间间隔,此处的t为当前同步时间段的起始时间。上述s23中的基于音频同步时间间隔对待录制音频码流进行录制,包括:
[0121]
s244,从录制开始时间戳开始,获取音频同步时间间隔内的待录制音频帧。
[0122]
当前音频同步处理的时间段为[t,t+dt2)时间段,该时间段内的录制开始时间戳为该时间段内所获取到的第一帧待录制音频帧的时间戳。
[0123]
在对待录制音频码流进行录制时,电子设备获取[t,t+dt2)时间段的待录制音频帧,该时间段的时长即为音频同步时间间隔。
[0124]
s245,利用待录制音频帧的时间戳,确定音频同步时间间隔内所有待录制音频帧的实际时长。
[0125]
对于实际时长的确定,可以在[t,t+dt2)时间段内所获取到的待录制音频帧具有相应的时间戳,利用该时间段内的最后一帧待录制音频帧与第一帧待录制音频帧的时间戳的差值即可确定出音频同步时间间隔内所有待录制音频帧的实际时长。
[0126]
也可以是由于每帧待录制音频帧的时长是已知的固定格式信息,利用时间戳确定在[t,t+dt2)时间段内的待录制音频帧的数量,再利用数量与每帧时长的乘积即可得到音频同步时间间隔内所有待录制音频帧的实际时长。
[0127]
s246,基于所有待录制音频帧的实际时长与音频同步时间间隔的大小关系,确定音频同步时间间隔内的录制音频帧。
[0128]
其中,录制音频帧的时长与音频同步时间间隔相等。如上文所述,在[t,t+dt2)时间段内,对录制音频帧的需求为:所有录制音频帧的时长为音频同步时间间隔。基于此,就需要利用上述s246中确定出的实际时长与音频同步时间间隔的大小关系,对该时间段内所获取到的待录制音频帧进行处理,使得处理后得到的录制音频帧的时长与音频同步时间间隔一致。
[0129]
在一些实施方式中,上述s246包括:
[0130]
(1)当实际时长与音频同步时间间隔相等时,将待录制音频帧确定为音频同步时间间隔内的录制音频帧。
[0131]
(2)当实际时长大于音频同步时间间隔时,对待录制音频帧进行处理以对齐音频同步时间间隔得到录制音频帧。
[0132]
(3)当实际时长小于音频同步时间间隔时,对待录制音频帧进行处理以补足音频同步时间间隔得到录制音频帧,或者,丢弃待录制音频帧并将静音帧确定为录制音频帧。
[0133]
具体地,当实际时长与音频同步时间间隔相等时,表示所获取到的待录制音频帧正好足帧,将保留所有的待录制音频帧,将其确定为音频同步时间间隔内的录制音频帧。
[0134]
当实际时长大于音频同步时间间隔时,表示超帧,需要对待录制音频帧进行主动丢帧或音频加速算法对齐音频同步时间间隔得到音频录制文件。其中,对待录制音频帧的处理方式并不限于上文所述的主动丢帧或音频加速算法,还可以采用其他方式。对待录制音频帧的处理可以是并不是对全部的待录制音频帧处理,而是对待录制音频帧中的部分音频帧进行处理等,具体根据实际需求进行设置。
[0135]
当实际时长小于音频同步时间间隔时,表示缺帧,需要对待录制音频帧进行音频丢帧补偿算法补足时长得到音频录制文件。或者,设置时间间隔阈值,若音频同步时间间隔大于时间间隔阈值时,表示音频同步时间间隔过大,在这种情况下,当实际时长小于音频同步时间间隔时,采用音频丢帧补偿方法的效果不佳,因此,直接使用静音帧代替,即,将获取到的待录制音频帧丢弃,并将静音帧确定为录制音频帧。
[0136]
在实际时长与音频同步时间间隔不一致时,对待录制音频帧进行处理保证处理后的待录制音频帧的时长与音频同步时间间隔一致。
[0137]
进一步地,在确定了[t,t+dt2)时间段内的录制音频帧之后,如果需要对多路音频进行合成,则进行多路的录制音频帧进行混音处理。
[0138]
如上文所述,音频同步时间间隔是与当前会议场景相同的。基于此,当会议场景发
生切换,或者音频码流有增减路数时,取当前会议场景的最后一个时间段[t,t+dt2)的结束时间t+dt2为新会议场景的起始录制时间,重新确定音频同步时间间隔,对新会议场景的待录制音频码流进行录制直到新会议场景的录制结束。
[0139]
结束录制时,最后一帧不管是音频还是视频,都直接结束,将音视频同步录制的最后一个时间段的数据处理完即可。
[0140]
本实施例提供的码流数据的录制方法,视频同步时间间隔用于表示最终所生成的目标录制文件的一帧录制视频帧的时长,利用该视频同步时间间隔对所获取到的视频同步时间间隔内的待录制视频帧进行处理,使得在视频同步时间间隔内仅存在一帧录制视频帧,从而能够适应视频数据的波动,以解决由于丢帧或每帧数据的延时等原因所导致的唇音不同步的问题。由于帧时长表示的是音频帧的时长,利用所有待录制音频帧的实际时长与音频同步时间间隔的大小关系对待录制音频帧进行处理,得到音频同步时间间隔内的录制音频帧,以避免音频帧延时或丢帧所导致的唇音不同步问题。
[0141]
在本实施例中提供了一种码流数据的录制方法,可用于电子设备,如移动终端、会议设备等,图3是根据本发明实施例的码流数据的录制方法的流程图,如图3所示,该流程包括如下步骤:
[0142]
s31,获取当前会议场景对应的视频同步时间间隔。
[0143]
其中,所述视频同步时间间隔是基于当前会议场景中目标录制文件的视频帧率确定的。
[0144]
详细请参见图1所示实施例的s11,在此不再赘述。
[0145]
s32,获取当前会议场景下的待录制码流。
[0146]
其中,所述待录制码流包括待录制视频码流以及待录制音频码流。
[0147]
详细请参见图1所示实施例的s12,在此不再赘述。
[0148]
s33,对待录制音频码流的帧头信息进行解析确定音频码流的帧时长,以确定音频同步时间间隔。
[0149]
详细请参见图1所示实施例的s13,在此不再赘述。
[0150]
s34,在同一录制开始时间戳下,基于视频同步时间间隔对待录制视频码流进行录制以及基于音频同步时间间隔对待录制音频码流进行录制,以确定目标录制文件。
[0151]
在对码流数据进行录制时,可以在录制时直接生成目标录制文件;也可以是先将待录制码流写入临时文件,在录制结束后再同步转码生成目标录制文件。在本实施例中,以写入临时文件为例,上述s34包括:
[0152]
s341,创建临时文件。
[0153]
开始录制时,创建临时文件并将目标录制文件的音视频格式等信息作为文件头写入临时文件中。
[0154]
s342,将待录制视频码流以及待录制音频码流分别写入临时文件。
[0155]
对于本地采集的待录制码流,记录取得采集数据时的时间戳为录制时间戳,在发送前将其保存到临时文件。对于远端获取到的待录制码流,由于解码和播放的延时是稳定的,可以获得其统计平均值,直接用接收数据时的时间戳加上延时得到其录制时间戳,在接收到码流数据时就可以直接将其保存到临时文件。对写临时文件的接口加锁,一次只写入一帧码流数据,并在帧头中记录当前会议场景、合成画面风格等信息。
[0156]
s343,当录制结束后,逐帧读取临时文件中的待录制视频码流以及临时文件中的待录制音频码流。
[0157]
s344,在同一录制开始时间戳下,基于视频同步时间间隔对读取的待录制视频码流进行录制以及基于音频同步时间间隔对读取的待录制音频码流进行录制,以确定目标录制文件。
[0158]
结束录像时关闭临时文件并读取临时文件中的待录制视频码流以及临时文件中的待录制音频码流进行同步录制,也可以将其称之为同步转码。其中,在进行同步转码时,对临时文件中的待录制视频码流是基于视频同步时间间隔进行的,对临时文件中的待录制音频码流是基于音频同步时间间隔进行的。在对临时文件进行转码之后,得到目标录制文件。需要说明的是,上述s344的具体处理方式与图2所示实施例的s24类似,在此不再赘述。
[0159]
在一些实施方式中,如图4所示,上述步骤中的逐帧读取临时文件中的录制视频帧进行同步转码,包括:
[0160]
(1)获取所述当前会议场景中视频码流的通道数。
[0161]
(2)逐帧读取所述待录制视频码流,并基于视频同步时间间隔对读取到的待录制视频码流进行解码,得到视频同步时间间隔内的录制视频帧,以确定每个视频码流的通道用于合成的录制视频帧。
[0162]
(3)对确定出的用于合成的录制视频帧进行画面合成。
[0163]
(4)将画面合成的结果编码后写入目标录制文件的视频通道。
[0164]
开始转码后,首先读取临时文件的头信息,按要求约定格式创建目标录制文件。根据目标视频帧率计算出视频同步时间间隔,而根据电子设备所支持的音频格式,取所有格式的单帧时长的最小公倍数为音频的同步时间间隔。从临时文件中读取第一帧码流数据,确定录像起始时间。对于视频,开启解码、画面合成、编码线程,逐帧读取临时文件中的待录制视频码流,进行同步转码,最终将画面合成的结果编码后写入目标录制文件的视频通道。
[0165]
在一些实施方式中,如图5所示,上述步骤中的逐帧读取所述待录制音频码流进行同步转码得到录制音频帧,确定所述目标录制文件,包括:
[0166]
(1)获取当前会议场景中音频码流的通道数。
[0167]
(2)逐帧读取待录制音频码流,并基于音频同步时间间隔对读取到的待录制音频码流进行解码,得到音频同步时间间隔内各音频码流的通道内的录制音频帧。
[0168]
(3)对各音频码流的通道内的录制音频帧进行混音。
[0169]
(4)将混音的结果编码后写入目标录制文件的音频通道。
[0170]
对于音频,开启解码、混音、编码线程,逐帧读取临时文件中的待录制音频码流,进行同步转码,将混音的结果编码后写入目标录制文件的音频通道。
[0171]
其中,关于基于视频同步时间间隔对待录制视频码流进行录制,以及基于音频同步时间间隔对待录制音频码流进行录制的具体处理过程,请参见上文图2所示实施例的s24,在此不再赘述。
[0172]
读完临时文件最后一帧数据后,通知音视频处理线程同步结束转码,处理完最后一个同步时间间隔内的数据后,关闭目标录制文件。
[0173]
本实施例提供的码流数据的录制方法,先将码流数据写入到临时文件中,待录制结束后再进行同步转码,能够在会议过程中减少数据的处理量,保证会议的实时性。
[0174]
作为本发明实施例的一个具体应用实例,应用于视频会议中,且直接对获取到的待录制码流进行录制,在会议结束时生成目标录制文件。在录制之前,需要先确定录制时间戳、录制开始时间戳、视频同步时间间隔以及音频同步时间间隔等等。再基于视频同步时间间隔对待录制视频码流进行录制,得到对应于视频同步时间间隔的录制视频帧,写入目标录制文件中;基于音频同步时间间隔对待录制音频码流进行录制,得到对应于音频同步时间间隔的录制音频帧,写入目标录制文件中。最终在会议结束时,生成目标录制文件。
[0175]
作为本发明实施例的另一个具体应用实例,应用于视频会议中,且将获取到的待录制码流先写入临时文件中,待会议结束后再同步转码生成目标录制文件。在录制之前,需要先确定录制时间戳、录制开始时间戳、视频同步时间间隔以及音频同步时间间隔等等。在会议开始之后,将获取到的待录制码流写入临时文件中。在会议结束之后,基于视频同步时间间隔以及音频同步时间间隔分别对临时文件中的待录制视频码流以及待录制音频码流进行同步转码,得到目标录制文件。
[0176]
本实施例提供的码流数据的录制方法,即使多人会议时会议场景切换频繁、网络不稳定,所得到的目标录制文件也能保证唇音同步。不管是在会议中直接录制生成目标录制文件,还是先生成临时文件等会议结束后再转码,均可简单且有效地实现唇音同步。
[0177]
在本实施例中还提供了一种码流数据的录制装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
[0178]
本实施例提供一种码流数据的录制装置,如图6所示,包括:
[0179]
第一获取模块41,用于获取当前会议场景对应的视频同步时间间隔,所述视频同步时间间隔是基于所述当前会议场景中目标录制文件的视频帧率确定的;
[0180]
第二获取模块42,用于获取所述当前会议场景下的待录制码流,所述待录制码流包括所述待录制视频码流以及待录制音频码流;
[0181]
解析模块43,用于对所述待录制音频码流的帧头信息进行解析确定音频码流的帧时长,以确定音频同步时间间隔;
[0182]
录制模块44,用于在同一录制开始时间戳下,基于所述视频同步时间间隔对所述待录制视频码流进行录制以及基于所述音频同步时间间隔对所述待录制音频码流进行录制,以确定所述目标录制文件。
[0183]
在一些实施方式中,录制模块44包括:
[0184]
第一获取单元,用于从所述录制开始时间戳开始,获取所述视频同步时间间隔内的待录制视频帧;
[0185]
第一确定单元,用于利用所述待录制视频帧的时间戳,确定所述视频同步时间间隔内的视频帧数;
[0186]
第二确定单元,用于基于所述视频同步时间间隔内的视频帧数,确定所述视频同步时间间隔内的录制视频帧,所述录制视频帧的数量为1。
[0187]
在一些实施方式中,第二确定单元包括:
[0188]
第一确定子单元,用于当所述视频帧数等于1时,将所述待录制视频帧确定为所述录制视频帧;
[0189]
第二确定子单元,用于当所述视频帧数大于或等于1时,将所述待录制视频帧中时间戳最早的视频帧确定为所述录制视频帧;
[0190]
第三确定子单元,用于当所述视频帧数小于1时,基于上一个视频同步时间间隔的历史录制视频帧,确定所述视频同步时间间隔内的录制视频帧。
[0191]
在一些实施方式中,第三确定子单元包括:
[0192]
第四确定子单元,用于当所述历史录制视频帧存在时,将所述历史录制视频帧确定为所述录制视频帧;
[0193]
第五确定子单元,用于当所述历史录制视频帧不存在时,将预设图片确定为录制视频帧。
[0194]
在一些实施方式中,录制模块44包括:
[0195]
第二获取单元,用于从所述录制开始时间戳开始,获取所述音频同步时间间隔内的待录制音频帧;
[0196]
第三确定单元,用于利用所述待录制音频帧的时间戳,确定所述音频同步时间间隔内所有所述待录制音频帧的实际时长;
[0197]
第四确定单元,用于基于所有所述待录制音频帧的实际时长与所述音频同步时间间隔的大小关系,确定所述音频同步时间间隔内的录制音频帧,所述录制音频帧的时长与所述音频同步时间间隔相等。
[0198]
在一些实施方式中,第四确定单元包括:
[0199]
第六确定子单元,用于当所述实际时长与所述音频同步时间间隔相等时,将所述待录制音频帧确定为音频同步时间间隔内的录制音频帧;
[0200]
第七确定子单元,用于当所述实际时长大于所述音频同步时间间隔时,对所述待录制音频帧进行处理以对齐所述音频同步时间间隔得到所述录制音频帧;
[0201]
第八确定子单元,用于当所述实际时长小于所述音频同步时间间隔时,对所述待录制音频帧进行处理以补足所述音频同步时间间隔得到所述录制音频帧,或者,丢弃所述待录制音频帧并将静音帧确定为所述录制音频帧。
[0202]
在一些实施方式中,录制模块44还包括:
[0203]
创建单元,用于创建临时文件;
[0204]
写入单元,用于将所述待录制视频码流以及所述待录制音频码流分别写入所述临时文件;
[0205]
读取单元,用于当录制结束后,逐帧读取所述临时文件中的待录制视频码流以及所述临时文件中的待录制音频码流;
[0206]
转码单元,用于在所述同一录制开始时间戳下,基于所述视频同步时间间隔对读取的待录制视频码流进行录制以及基于所述音频同步时间间隔对读取的待录制音频码流进行录制,以确定所述目标录制文件。
[0207]
在一些实施方式中,解析模块43包括:
[0208]
解析单元,用于当所述当前会议场景存在至少两路音频时,对各路所述待录制音频码流的帧头信息进行解析,确定各路所述音频码流的帧时长;
[0209]
第五确定单元,用于将各路所述音频码流的帧时长的公倍数确定为所述音频同步时间间隔。
[0210]
本实施例中的码流数据的录制装置是以功能单元的形式来呈现,这里的单元是指asic电路,执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
[0211]
上述各个模块的更进一步的功能描述与上述对应实施例相同,在此不再赘述。
[0212]
本发明实施例还提供一种电子设备,具有上述图6所示的码流数据的录制装置。
[0213]
请参阅图7,图7是本发明可选实施例提供的一种电子设备的结构示意图,如图7所示,该电子设备可以包括:至少一个处理器51,例如cpu(central processing unit,中央处理器),至少一个通信接口53,存储器54,至少一个通信总线52。其中,通信总线52用于实现这些组件之间的连接通信。其中,通信接口53可以包括显示屏(display)、键盘(keyboard),可选通信接口53还可以包括标准的有线接口、无线接口。存储器54可以是高速ram存储器(random access memory,易挥发性随机存取存储器),也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器54可选的还可以是至少一个位于远离前述处理器51的存储装置。其中处理器51可以结合图6所描述的装置,存储器54中存储应用程序,且处理器51调用存储器54中存储的程序代码,以用于执行上述任一方法步骤。
[0214]
其中,通信总线52可以是外设部件互连标准(peripheral component interconnect,简称pci)总线或扩展工业标准结构(extended industry standard architecture,简称eisa)总线等。通信总线52可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0215]
其中,存储器54可以包括易失性存储器(英文:volatile memory),例如随机存取存储器(英文:random-access memory,缩写:ram);存储器也可以包括非易失性存储器(英文:non-volatile memory),例如快闪存储器(英文:flash memory),硬盘(英文:hard disk drive,缩写:hdd)或固态硬盘(英文:solid-state drive,缩写:ssd);存储器54还可以包括上述种类的存储器的组合。
[0216]
其中,处理器51可以是中央处理器(英文:central processing unit,缩写:cpu),网络处理器(英文:network processor,缩写:np)或者cpu和np的组合。
[0217]
其中,处理器51还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(英文:application-specific integrated circuit,缩写:asic),可编程逻辑器件(英文:programmable logic device,缩写:pld)或其组合。上述pld可以是复杂可编程逻辑器件(英文:complex programmable logic device,缩写:cpld),现场可编程逻辑门阵列(英文:field-programmable gate array,缩写:fpga),通用阵列逻辑(英文:generic array logic,缩写:gal)或其任意组合。
[0218]
可选地,存储器54还用于存储程序指令。处理器51可以调用程序指令,实现如本技术任一实施例中所示的码流数据的录制方法。
[0219]
本发明实施例还提供了一种非暂态计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令可执行上述任意方法实施例中的码流数据的录制方法。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,rom)、随机存储记忆体(random access memory,ram)、快闪存储器(flash memory)、硬盘(hard disk drive,缩写:hdd)或固态硬盘(solid-state drive,ssd)等;所述存储介质还可以包括上述种类的存储器的组合。
[0220]
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1