本发明涉及一种跨平台音视频通讯的本地录制系统及录制方法,属于多媒体录制。
背景技术:
1、随着现在互联网行业的发展,各个行业都在进行互联网转型,在信息化高速发达的今天,各行各业里有越来越多的音视频通讯软件,支撑着各种会议以及各种衍生的业务场景。而在大部分的场景中,都需要有录制的功能,以提供进行回看。
2、目前,市面上主流的音视频通讯软件,其录制功能是通过对各路视频流及音频流进行编辑合并,经过自己的合流算法,按照预定的排版布局,将多路音视频流合并至一路,最终生成录制的视频文件。
3、合流算法的复杂性是该技术普遍遇到的问题,对各路音视频流的操作繁琐且易出错,而且针对不同的平台,都需要做单独的适配,导致技术实现的难度增大。
技术实现思路
1、本发明所要解决的技术问题是,克服现有技术的不足,一种跨平台音视频通讯的本地录制系统及录制方法,只需抓取一路视频流和一路音频流,再将两路流合并成最终的输出流,无需进行复杂的多路音视频流处理,算法处理量小,录制效率高。
2、为了解决上述技术问题,本发明的技术方案是:
3、本发明一方面提供一种跨平台音视频通讯的本地录制系统,它包括:
4、webrtc音视频传输模块,所述webrtc音视频传输模块用于进行视频会议的音视频传输;
5、webapi音视频捕捉模块,所述webapi音视频捕捉模块用于抓取音视频传输过程中的音频流和视频流;
6、合成模块,所述合成模块用于将抓取的音频流和视频流合成为一个输出流。
7、进一步,还包括转换模块,所述转换模块用于将所述输出流转换为用户所需的媒体文件格式。
8、本发明另一方面提供一种跨平台音视频通讯的本地录制系统的录制方法,它包括如下步骤:
9、步骤s1、使用webapi音视频捕捉模块提供的mediadevices接口访问正在参加视频会议的媒体设备;
10、步骤s2、webapi音视频捕捉模块抓取音视频传输过程中的音频流;
11、步骤s3、webapi音视频捕捉模块抓取音视频传输过程中的视频流;
12、步骤s4、合成模块将抓取的音频流和视频流合成为一个输出流;
13、步骤s5、由转换模块将输出流转换为用户所需的媒体文件格式;
14、步骤s6、输出媒体文件,完成本地录制功能。
15、进一步,所述步骤s2中,webapi音视频捕捉模块抓取音视频传输过程中的音频流,具体包括如下步骤:
16、webapi音视频捕捉模块抓取音视频传输过程中用户所需的音频流,并设置音频流参数,得到一个音频流集合;
17、所述用户所需的音频流包括全局音频和指定音频;;
18、所述音频流参数包括声道、长度和采样率。
19、进一步,所述步骤s3中,webapi音视频捕捉模块抓取音视频传输过程中的视频流,具体包括如下步骤:
20、webapi音视频捕捉模块采用动态窗口捕获算法,根据用户的角色和行为来实时返回需要捕获的窗口;
21、当用户的角色或者行为发生变化时,触发捕获逻辑的改变,动态调整捕获参数;
22、所述动态窗口捕获算法的函数表达式为:
23、;
24、其中,x为用户角色或行为参数,a为对应场景下视频基础参数;
25、当用户开启共享后,由于用户行为入参改变,触发捕获逻辑改变,捕获的窗口则由视频窗口变为共享窗口;而当用户结束共享或者被收回主持人权限时又会改变捕获窗口;最终得到的结果集是一个按时间顺序排序的视频流集合,所述视频流集合是通过一个个窗口捕获而来。
26、进一步,所述步骤s4中,合成模块将抓取的音频流和视频流合成为一个输出流,具体包括如下步骤:
27、合成模块将获取到的音频流集合与视频流集合,按照捕获的时间先后顺序来合成为一个输出流,供后续输出媒体文件使用。
28、采用了上述技术方案,本发明直接抓取用户的视窗,所见即所得,获得视频流,再捕获设备音频输出,获得音频流,即一路视频流,一路音频流,只有两路流按照捕获时间顺序合并成最终的输出流,再进行转码生成想要的输出文件,不需要进行复杂的多路音视频流处理。这样能够提升软件兼容性,降低开发门槛,可以轻松编码实现,并且也可以满足现在国产化的要求。
1.一种跨平台音视频通讯的本地录制系统,其特征在于,它包括:
2.根据权利要求1所述的跨平台音视频通讯的本地录制系统,其特征在于:还包括转换模块,所述转换模块用于将所述输出流转换为用户所需的媒体文件格式。
3.一种如权利要求1~2中任一项所述的跨平台音视频通讯的本地录制系统的录制方法,其特征在于,它包括如下步骤:
4.根据权利要求3所述的录制方法,其特征在于:所述步骤s2中,webapi音视频捕捉模块抓取音视频传输过程中的音频流,具体包括如下步骤:
5.根据权利要求3所述的录制方法,其特征在于:所述步骤s3中,webapi音视频捕捉模块抓取音视频传输过程中的视频流,具体包括如下步骤:
6.根据权利要求3所述的录制方法,其特征在于,所述步骤s4中,合成模块将抓取的音频流和视频流合成为一个输出流,具体包括如下步骤: