本发明涉及音视频领域,尤其涉及一种在线实时合唱的方法及系统。
背景技术:
多人在线合唱一般指两个以上的歌唱者在同一个平台上,按照各自负责的歌曲部分演唱同一首歌,以达到合作演唱的效果。目前的多人在线合唱的实现方式一般是异步的,以两个用户a、b为例:用户a根据系统指定的演唱部分a,提前演唱歌曲,并将演唱过程通过音视频录制后上传云端,用户b在演唱时根据系统指定的演唱部分b演唱,在演唱过程中播放之前在云端的用户a演唱的内容,通过这种异步的方式达到用户a和用户b合唱的目的。
但是,以上异步的在线合唱方式无法满足用户在合唱过程中实时互动的需求,趣味性较低。
技术实现要素:
本发明所要解决的技术问题是:提供一种在线实时合唱的方法及系统,实现多用户在线实时合唱,用户在合唱过程中能够实时互动。
为了解决上述技术问题,本发明采用的一种技术方案为:
一种在线实时合唱的方法,包括步骤:
s1、在线实时合唱对应的多个终端之间建立连接;
s2、所述多个终端选择合唱的歌曲,并同步播放所述合唱的歌曲;
s3、所述多个终端根据所述同步播放的合唱的歌曲实时同步演唱,各终端采集对应演唱的音频和视频,将所述音频和视频实时同步至其它终端并播放显示。
为了解决上述技术问题,本发明采用的另一种技术方案为:
一种在线实时合唱的系统,包括多个终端,所述终端包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
s1、与在线实时合唱对应的其它终端建立连接;
s2、选择合唱的歌曲,并与在线实时合唱对应的其它终端同步播放所述合唱的歌曲;
s3、根据所述同步播放的合唱的歌曲与在线实时合唱对应的其它终端实时同步演唱,采集对应演唱的音频和视频,将所述音频和视频实时同步至其它终端并播放显示。
本发明的有益效果在于:在线实时合唱对应的多个终端建立连接,并同步播放要合唱的歌曲,根据所述同步播放的合唱的歌曲实时同步演唱,演唱的音视频实时同步至其它终端,实现多人在线同时视频合唱,在演唱过程中,用户可以基于音频、视频进行实时互动,提高了异地合唱的趣味性,增强了用户体验。
附图说明
图1为本发明实施例的一种在线实时合唱的方法的流程图;
图2为本发明实施例的一种在线实时合唱的系统的结构示意图;
标号说明:
1、一种在线实时合唱的系统;2、终端;3、存储器;4、处理器。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
本发明最关键的构思在于:在线实时合唱对应的多个终端建立连接,并同步播放要合唱的歌曲,根据所述同步播放的合唱的歌曲实时同步演唱,演唱的音视频实时同步至其它终端。
请参照图1,一种在线实时合唱的方法,包括步骤:
s1、在线实时合唱对应的多个终端之间建立连接;
s2、所述多个终端选择合唱的歌曲,并同步播放所述合唱的歌曲;
s3、所述多个终端根据所述同步播放的合唱的歌曲实时同步演唱,各终端采集对应演唱的音频和视频,将所述音频和视频实时同步至其它终端并播放显示。
由上述描述可知,本发明的有益效果在于:在线实时合唱对应的多个终端建立连接,并同步播放要合唱的歌曲,根据所述同步播放的合唱的歌曲实时同步演唱,演唱的音视频实时同步至其它终端,实现多人在线同时视频合唱,在演唱过程中,用户可以基于音频、视频进行实时互动,提高了异地合唱的趣味性,增强了用户体验。
进一步的,所述步骤s1包括:
s11、所述在线实时合唱对应的多个终端分别将各自的设备信息上传至云端服务器,使得云端服务器根据所述设备信息匹配所述在线实时合唱对应的多个终端;
s12、所述在线实时合唱对应的多个终端接收云端服务器发送的匹配结果以及除自身之外的其它终端的设备信息;
s13、所述在线实时合唱对应的多个终端根据所述匹配结果以及其它终端的设备信息与其它终端建立连接。
由上述描述可知,基于云端服务器实现在线实时合唱对应的多个终端之间的匹配并建立连接,方便快捷,效率高。
进一步的,所述步骤s2包括:
s21、所述多个终端中的任意一个选择合唱的歌曲,并将所述歌曲的唯一标识发送至其它终端;
s22、所述多个终端根据所述唯一标识获取所述合唱歌曲对应的视频流并播放;
s23、所述多个终端根据音视频同步信息同步所述合唱的歌曲的播放进度。
由上述描述可知,通过歌曲的唯一标识,其它终端能够快速获知合唱的歌曲,并基于音视频同步信息实现合唱歌曲的播放进度的快速同步。
进一步的,所述步骤s23包括:
第一播放终端计算其与其它各终端的通信延时,所述第一播放终端为最先播放合唱歌曲视频的终端;
第一播放终端播放所述合唱歌曲视频,并获取当前播放歌曲视频流的时间戳;
第一播放终端将当前播放歌曲视频流的时间戳及与其它各终端的通信延时信息发送给对应的其它各终端;
其它各终端根据通信延时信息和当前播放歌曲视频流的时间戳生成第一播放时间戳,并从第一播放时间戳开始播放合唱歌曲视频。
由上述描述可知,后播放合唱歌曲的其它各终端通过其与最先播放合唱歌曲的终端的通信延时时间以及当前播放歌曲视频流的时间戳生成第一播放时间戳,基于第一播放时间戳播放合唱歌曲视频,能够实现多个终端之间快速准确地同步。
进一步,预设各终端对所述合唱歌曲的同步频率,根据同步频率重复步骤s23,使各终端不断同步所述合唱歌曲的播放进度。
由上述描述可知,通过上述操作,可不断同步各终端对合唱歌曲的播放进度,这样即使某个终端出现卡顿后,还可以快速实现与其它终端的同步。
进一步的,所述步骤s3中所述各终端采集对应演唱的音频和视频,将所述音频和视频实时同步至其它终端并播放显示包括:
所述各终端分别采集对应演唱的声音和画面,对所述声音和画面分别进行编码、封装,形成音频信号和视频信号,将所述音频信号和视频信号分别独立地实时同步至其它终端并播放显示。
由上述描述可知,通过对采集的演唱的声音和画面分别进行编码、封装,并进行独立传输,保证了音频、视频各自的传输速率,特别是确保合唱中比较重要的音频数据的及时传输、解码和播放。
请参照图2,一种在线实时合唱的系统,包括多个终端,所述终端包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
s1、与在线实时合唱对应的其它终端建立连接;
s2、选择合唱的歌曲,并与在线实时合唱对应的其它终端同步播放所述合唱的歌曲;
s3、根据所述同步播放的合唱的歌曲与在线实时合唱对应的其它终端实时同步演唱,采集对应演唱的音频和视频,将所述音频和视频实时同步至其它终端并播放显示。
由上述描述可知,本发明的有益效果在于:在线实时合唱对应的多个终端建立连接,并同步播放要合唱的歌曲,根据所述同步播放的合唱的歌曲实时同步演唱,演唱的音视频实时同步至其它终端,实现多人在线同时视频合唱,在演唱过程中,用户可以基于音频、视频进行实时互动,提高了异地合唱的趣味性,增强了用户体验。
进一步的,所述步骤s1包括:
s11、将各自的设备信息上传至云端服务器,使得云端服务器根据所述设备信息匹配所述在线实时合唱对应的多个终端;
s12、接收云端服务器发送的匹配结果以及除自身之外的其它终端的设备信息;
s13、根据所述匹配结果以及其它终端的设备信息与其它终端建立连接。
由上述描述可知,基于云端服务器实现在线实时合唱对应的多个终端之间的匹配并建立连接,方便快捷,效率高。
进一步的,所述步骤s2包括:
s21、选择合唱的歌曲,并将所述歌曲的唯一标识发送至其它终端,使得其它终端根据所述唯一标识获取所述合唱歌曲对应的视频流并播放;
s22、根据所述唯一标识获取所述合唱歌曲对应的视频流并播放;
s23、根据音视频同步信息与其它终端同步所述合唱的歌曲的播放进度。
由上述描述可知,通过歌曲的唯一标识,其它终端能够快速获知合唱的歌曲,并基于音视频同步信息实现合唱歌曲的播放进度的快速同步。
进一步的,所述步骤s23包括:
最先播放合唱歌曲视频的终端的处理器执行所述计算机程序时实现以下步骤:
播放所述合唱歌曲视频,并获取当前播放歌曲视频流的时间戳;
将当前播放歌曲视频流的时间戳及与其它各终端的通信延时信息发送给对应的其它各终端,以使得其它各终端根据通信延时信息和当前播放歌曲视频流的时间戳生成第一播放时间戳,并从第一播放时间戳开始播放合唱歌曲视频。
由上述描述可知,后播放合唱歌曲的其它各终端通过其与最先播放合唱歌曲的终端的通信延时时间以及当前播放歌曲视频流的时间戳生成第一播放时间戳,基于第一播放时间戳播放合唱歌曲视频,能够实现多个终端之间快速准确地同步。
进一步,预设各终端对所述合唱歌曲的同步频率,根据同步频率重复步骤s23,使各终端不断同步所述合唱歌曲的播放进度。
由上述描述可知,通过上述操作,可不断同步各终端对合唱歌曲的播放进度,这样即使某个终端出现卡顿后,还可以快速实现与其他终端的同步。
进一步的,所述步骤s3中所述采集对应演唱的音频和视频,将所述音频和视频实时同步至其它终端并播放显示包括:
分别采集对应演唱的声音和画面,对所述声音和画面分别进行编码、封装,形成音频信号和视频信号,将所述音频信号和视频信号分别独立地实时同步至其它终端并播放显示。
由上述描述可知,通过对采集的演唱的声音和画面分别进行编码、封装,并进行独立传输,保证了音频、视频各自的传输速率,特别是确保合唱中比较重要的音频数据的及时传输、解码和播放。
实施例一
请参照图1,一种在线实时合唱的方法,包括步骤:
s1、在线实时合唱对应的多个终端之间建立连接;
具体的,包括如下步骤:
s11、所述在线实时合唱对应的多个终端分别将各自的设备信息上传至云端服务器,使得云端服务器根据所述设备信息匹配所述在线实时合唱对应的多个终端;
s12、所述在线实时合唱对应的多个终端接收云端服务器发送的匹配结果以及除自身之外的其它终端的设备信息;
s13、所述在线实时合唱对应的多个终端根据所述匹配结果以及其它终端的设备信息与其它终端建立连接;
在一些应用场景中,终端可直接连接网络,其中一个终端获得其它终端的设备信息,例如设备ip等信息,即可与其它终端建立连接,在其他一些应用场景中,若终端设置在局域网中,无法直接联网,则终端还可以通过局域网的网关连接到云端,由云端将各终端建立连接;
s2、所述多个终端选择合唱的歌曲,并同步播放所述合唱的歌曲;
具体的,包括如下步骤:
s21、所述多个终端中的任意一个选择合唱的歌曲,并将所述歌曲的唯一标识发送至其它终端;
s22、所述多个终端根据所述唯一标识获取所述合唱歌曲对应的视频流并播放;
s23、所述多个终端根据音视频同步信息同步所述合唱的歌曲的播放进度;
其中,所述步骤s23包括:
第一播放终端计算其与其它各终端的通信延时,所述第一播放终端为最先播放合唱歌曲视频的终端;
第一播放终端播放所述合唱歌曲视频,并获取当前播放歌曲视频流的时间戳;
第一播放终端将当前播放歌曲视频流的时间戳及与其它各终端的通信延时信息发送给对应的其它各终端;
其它各终端根据通信延时信息和当前播放歌曲视频流的时间戳生成第一播放时间戳,并从第一播放时间戳开始播放合唱歌曲视频;
进一步,预设各终端对所述合唱歌曲的同步频率,根据同步频率重复步骤s23,使各终端不断同步所述合唱歌曲的播放进度。
s3、所述多个终端根据所述同步播放的合唱的歌曲实时同步演唱,各终端采集对应演唱的音频和视频,将所述音频和视频实时同步至其它终端并播放显示。
实施例二
本实施例与实施例一的不同在于:步骤s3中所述各终端采集对应演唱的音频和视频,将所述音频和视频实时同步至其它终端并播放显示包括:
所述各终端分别采集对应演唱的声音和画面,对所述声音和画面分别进行编码、封装,形成音频信号和视频信号,将所述音频信号和视频信号分别独立地实时同步至其它终端并进行播放显示。
实施例三
请参照图2,一种在线实时合唱的系统1,包括多个终端2,所述终端包括存储器3、处理器4以及存储在所述存储器3上并可在所述处理器4上运行的计算机程序,所述处理器4执行所述计算机程序时实现以下步骤:
s1、与在线实时合唱对应的其它终端建立连接;
具体的,包括如下步骤:
s11、将各自的设备信息上传至云端服务器,使得云端服务器根据所述设备信息匹配所述在线实时合唱对应的多个终端;
s12、接收云端服务器发送的匹配结果以及除自身之外的其它终端的设备信息;
s13、根据所述匹配结果以及其它终端的设备信息与其它终端建立连接;
s2、选择合唱的歌曲,并与在线实时合唱对应的其它终端同步播放所述合唱的歌曲;
具体的,包括如下步骤:
s21、选择合唱的歌曲,并将所述歌曲的唯一标识发送至其它终端,使得其它终端根据所述唯一标识获取所述合唱歌曲对应的视频流并播放,其中,可以是由所述多个终端中的任意一个来选择合唱的歌曲;
s22、根据所述唯一标识获取所述合唱歌曲对应的视频流并播放;
s23、根据音视频同步信息与其它终端同步所述合唱的歌曲的播放进度;
所述步骤s23包括:
最先播放合唱歌曲视频的终端的处理器执行所述计算机程序时实现以下步骤:
计算其与其它各终端的通信延时;
播放所述合唱歌曲视频,并获取当前播放歌曲视频流的时间戳;
将当前播放歌曲视频流的时间戳及与其它各终端的通信延时信息发送给对应的其它各终端,以使得其它各终端根据通信延时信息和当前播放歌曲视频流的时间戳生成第一播放时间戳,并从第一播放时间戳开始播放合唱歌曲视频;
进一步,预设各终端对所述合唱歌曲的同步频率,根据同步频率重复步骤s23,使各终端不断同步所述合唱歌曲的播放进度。
s3、根据所述同步播放的合唱的歌曲与在线实时合唱对应的其它终端实时同步演唱,采集对应演唱的音频和视频,将所述音频和视频实时同步至其它终端并播放显示。
实施例四
本实施例与实施例三的不同在于:所述步骤s3中采集对应演唱的音频和视频,将所述音频和视频实时同步至其它终端并播放显示包括:
分别采集对应演唱的声音和画面,对所述声音和画面分别进行编码、封装,形成音频信号和视频信号,将所述音频信号和视频信号分别独立地实时同步至其它终端并播放显示。
实施例五
将上述在线实时合唱的方法应用于实际的场景中,可应用于多个数字视听场所之间的不同包厢进行合唱,还可以是同个数字视听场所的不同包厢之间的合唱,所述终端可以为数字视听终端,具体可以为加载有点歌软件的机顶盒,本实施例的应用场景是两个终端设备a和b进行在线实时合唱,包括如下步骤:
1、终端建立连接
终端设备a、b将各自的设备信息,比如通信ip、端口等上传至云端服务器;
云端服务器通过一定的匹配机制,完成终端设备a和b的匹配,并通知对应设备匹配结果及对方的设备信息,具体的,将匹配结果为可以匹配以及终端设备a的设备信息发送至终端设备b,将匹配结果为可以匹配以及终端设备b的设备信息发送至终端设备a,其中,所述匹配机制可以由云服务器根据实际的业务需求进行配置,比如基于设备对应的用户信息,异性优先匹配,同城优先匹配;
终端设备a和终端设备b基于获取到的匹配结果和对方的设备信息完成通信连接,其中,终端设备a和终端设备b建立连接的机制可以根据实际应用交互的不同有所差异,包含但不限于以上的机制;
如果是对于三个或者三个以上的终端设备进行在线实时合唱,采用的也是上述的连接建立流程;
2、选择歌曲,同步播放,同步演唱
终端设备a、b之间建立连接后,终端设备a和终端设备b任意一方主动选择将要合唱的歌曲,并通知对方歌曲信息,可以将所选择的合唱的歌曲的唯一标识发送至与之建立连接的对方终端设备;
终端设备a和终端设备b基于歌曲唯一标识向各自的视频服务器获取视频流并开始播放,其中,如果终端设备a和终端设备b播放的视频流存在在同一个视频服务器的同一个歌曲文件中,则终端设备a、b直接播放同一个网络视频流即可;
第一播放终端(假设为终端设备a)计算其与终端设备b的通信延时,所述第一播放终端为最早开始播放歌曲视频的终端;
终端设备a播放所述合唱歌曲视频,并获取当前播放歌曲视频流的时间戳;
终端设备将当前播放歌曲视频流的时间戳及与终端设备b的通信延时信息发送给终端设备b;
终端设备b根据通信延时信息和当前播放歌曲视频流的时间戳生成第一播放时间戳,并从第一播放时间戳开始播放合唱歌曲视频;
进一步,预设各终端对所述合唱歌曲的同步频率,根据同步频率重复步骤s23,使各终端不断同步所述合唱歌曲的播放进度,具体的,例如,可设置同步频率为1分钟一次,则每隔1分钟,重复一次上述第一播放终端与其他终端的播放视频同步操作,通过该操作,可不断同步各终端对合唱歌曲的播放进度,这样即使某个终端出现卡顿后,还可以快速实现与其他终端的同步。
基于同步播放的歌曲视频,用户可以通过终端设备a和b实现异地实时同步演唱;
3、音视频传输,实时合唱
演唱过程中,进行演唱的对应的终端设备通过录音模块采集用户的演唱声音,对所述演唱声音进行编码、封装成音频信号,并传输给云端流媒体服务器,由流媒体服务器通知对方设备点播、编码对应的音频信号,即在业务效果上,用户听到了对方的演唱声音;
同理,对于用户的演唱画面,终端设备通过摄像头采集、编码、封装并传输至云端流媒体服务器,由流媒体服务器通知对方设备点播、编码对应的视频信号,即在业务效果上,用户看到了对方的演唱画面;
上述音频信号和视频信号是分别独立地实时同步至其它终端,并在其他终端上播放显示;
在演唱过程中,用户通过声音、视频能够进行实时互动。
综上所述,本发明提供的一种在线实时合唱的方法及系统,在线实时合唱对应的多个终端建立连接,并同步播放要合唱的歌曲,根据所述同步播放的合唱的歌曲实时同步演唱,演唱的音视频实时同步至其它终端,实现多人在线同时视频合唱,通过异地音视频同步及时,保证了合唱的多方设备的音视频播放同步,在演唱过程中,用户可以基于音频、视频进行实时互动,提高了异地合唱的趣味性,增强了用户体验,并且演唱过程中的音频信号和视频信号独立传输,保证了音频、视频各自的传输速率,特别是确保合唱中比较重要的音频数据的及时传输、解码和播放。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。