一种音视频与钢琴动作同步直播方法及系统
技术领域
本发明涉及到自动演奏乐器领域,尤其涉及一种音视频与钢琴动作同步直播方法及系统。
背景技术
随着现场直播网络技术的发展,用户通过网络可进行在线观看直播的音乐会。目前一般是在音乐会现场采集视音频信息,并将音视频信息传输给其他用户,使其他用户可在别处播放该采集的音视频信息,以达到直播的目的。
目前安装有自动演奏系统的钢琴能够实现根据指令自动弹奏本地钢琴,而不需要人演奏,是通过自动演奏系统来驱动本地钢琴琴键进行自动演奏。自动演奏系统储存有预先录制好的数字数据,这些数据是用来控制钢琴琴键及踏板弹下和复位的运动,包括弹下的速度和其它的一些信息。为了让这个系统演奏的更加丰富多彩,会播放音视频录音,使音视频和钢琴同步演奏。
但是通过互联网的用户仅通过音视频信息观看演出很难有具有身临其境的感觉,因此如何使通过互联网观看直播的用户处的钢琴与音乐会现场的钢琴进行同步演奏,同时保证在钢琴自动演奏时钢琴动作与音视频信息的同步,以提升用户的体验感成为本领域技术人员亟需解决的问题。
发明内容
有鉴于此,本发明的目的在于提供一种音视频与钢琴动作同步直播方法及系统,使通过互联网观看直播的用户处的钢琴与音乐会现场的钢琴进行同步演奏,同时保证在钢琴自动演奏时钢琴动作与音视频信息的同步,以提升用户的体验感。
本发明提供一种音视频与钢琴动作同步直播方法,所述方法包括以下步骤:
步骤10:推送端的钢琴采集钢琴动作,并将采集到的信息以midi消息的形式发送给推送端的移动终端;
步骤20:推送端的移动终端采集推送端的钢琴演奏时的音视频信息;
步骤30:推送端的移动终端将接收到的midi消息和音视频信息进行编码形成流媒体数据后推送给直播服务器;
步骤40:直播服务器将流媒体数据转发给接收端的移动终端,接收端的移动终端将流媒体数据解码为音视频信息和midi消息;
步骤50:接收端的移动终端播放解码后的音视频信息,并将解码后的midi消息发送给接收端的钢琴;
步骤60:接收端的钢琴接收到midi消息,对接收端的钢琴进行控制演奏乐曲。
优选地,所述步骤S10具体为推送端的钢琴采集钢琴动作的同时采集钢琴动作对应的时间戳,并将采集到的信息以midi消息的形式发送给推送端的移动终端。
优选地,所述步骤S20中推送端的移动终端采集推送端的钢琴演奏时的音视频信息,所述音视频信息具体为包含时间戳的音频流和视频流。
优选地,所述步骤S40具体为:直播服务器将流媒体数据转发给接收端的移动终端,接收端的移动终端将流媒体数据解码为包含时间戳的音频流、视频流和midi消息。
优选地,所述步骤S50具体为:
步骤S51:接收端的移动终端获取音频流、视频流和midi消息的时间戳;
步骤S52:计算音频流、视频流和midi消息的时间差,根据时间差设置缓冲区时长;
步骤S53:根据缓冲区时长确定适当的音频流和视频流的播放时间,以及将解码后的midi消息发送给接收端的钢琴的时间;
步骤S54:接收端的移动终端播放解码后的音视频流,并将解码后的midi消息发送给接收端的钢琴。
本发明的又一个方面,还提供一种音视频与钢琴动作同步直播系统,包括:推送端钢琴直播模块、推送端移动终端直播模块、接收端钢琴直播模块、接收端移动终端直播模块及直播服务器,其中推送端移动终端直播模块上设置有推送端音视频采集模块、推送端数据处理模块和推送端移动终端数据收发模块,推送端钢琴直播模块上设置有推送端钢琴动作采集模块和推送端钢琴数据收发模块,接收端移动终端直播模块上设置有接收端数据处理模块、接收端音视频播放模块和接收端移动终端数据收发模块,接收端钢琴直播模块上设置有接收端钢琴控制指令执行模块和接收端钢琴数据收发模块,其中:
所述推送端钢琴动作采集模块,用于采集钢琴动作,并将采集到的信息以midi消息的形式发送给推送端钢琴数据收发模块;
所述推送端钢琴数据收发模块,用于将midi消息发送给推送端移动终端数据收发模块;
所述推送端移动终端数据收发模块,用于将接收到midi消息发送给推送端数据处理模块,以及将流媒体数据发送给直播服务器;
所述推送端音视频采集模块,用于采集钢琴演奏时的音视频信息,并发送给推送端数据处理模块;
所述推送端数据处理模块,用于将接收到的midi消息和音视频信息编码形成流媒体数据后发送给推送端移动终端数据收发模块;
所述直播服务器,用于接收推送端推送的流媒体数据,并转发给接收端;
所述接收端移动终端数据收发模块,用于接收直播服务器转发的流媒体数据,并发送给接收端数据处理模块,以及将解码后的midi消息发送给接收端钢琴数据收发模块;
所述接收端数据处理模块,用于将流媒体数据解码为音视频信息和midi消息,并将解码后的音视频信息发送给接收端音视频播放模块,解码后的midi消息发送给接收端移动终端数据收发模块;
所述接收端音视频播放模块,用于播放解码后的音视频信息;
所述接收端钢琴数据收发模块,用于将接收的解码后的midi消息发送给接收端钢琴控制指令执行模块;
所述接收端钢琴控制指令执行模块,用于接收到解码后的midi消息,对接收端的钢琴进行控制演奏乐曲。
优选地,所述推送端钢琴动作采集模块中采集钢琴动作的同时采集钢琴动作对应的时间戳,并将采集到的信息以midi消息的形式发送给推送端钢琴数据收发模块。
优选地,所述推送端钢琴数据收发模块中采集推送端的钢琴演奏时的音视频信息,所述音视频信息具体为包含时间戳的音频流和视频流。
优选地,所述接收端数据处理模块包括接收端数据解码模块,接收端数据计算模块,其中:
所述接收端数据解码模块,用于将流媒体数据解码为包含时间戳的音频流、视频流和midi消息,并将解码后的音视频信息发送给接收端音视频播放模块,解码后的midi消息发送给接收端移动终端数据收发模块;
所述接收端数据计算模块,用于计算音频流、视频流和midi消息的时间差,根据时间差设置缓冲区时长;根据缓冲区时长确定适当的音频流和视频流的播放时间,以及将解码后的midi消息发送给接收端钢琴数据收发模块的时间。
优选地,同一台钢琴上可设置有推送端钢琴直播模块和接收端钢琴直播模块,同一台移动终端上可设置有推送端移动终端直播模块和接收端移动终端直播模块。
本发明提供的音视频与钢琴动作同步直播方法及系统,使通过互联网观看直播的用户处的钢琴与音乐会现场的钢琴进行同步演奏,同时保证在钢琴自动演奏时钢琴动作与音视频信息的同步,以提升用户的体验感。
附图说明
图1为第一种实施方式提供的音视频与钢琴动作同步直播方法的流程图;
图2为第二种实施方式提供的音视频与钢琴动作同步直播方法的流程图;
图3为本发明提供的一种音视频与钢琴动作同步直播系统的结构示意图;
具体实施方式
为了使本技术领域的人员更好地理解本发明的技术方案,下面结合附图对本发明作进一步的详细说明。
参见图1,图1为第一种实施方式提供的音视频与钢琴动作同步直播方法的流程图。
本发明提供一种音视频与钢琴动作同步直播方法,所述方法包括以下步骤:
步骤10:推送端的钢琴采集钢琴动作,并将采集到的信息以midi消息的形式发送给推送端的移动终端;
步骤20:推送端的移动终端采集推送端的钢琴演奏时的音视频信息;
步骤30:推送端的移动终端将接收到的midi消息和音视频信息进行编码形成流媒体数据后推送给直播服务器;
步骤40:直播服务器将流媒体数据转发给接收端的移动终端,接收端的移动终端将流媒体数据解码为音视频信息和midi消息;
步骤50:接收端的移动终端播放解码后的音视频信息,并将解码后的midi消息发送给接收端的钢琴;
步骤60:接收端的钢琴接收到midi消息,对接收端的钢琴进行控制演奏乐曲。
推送端的钢琴采集钢琴动作,并将采集到的信息以midi消息的形式发送给推送端的移动终端。与此同时推送端的移动终端采集推送端的钢琴演奏时的音视频信息。推送端的移动终端将接收到的midi消息和音视频信息进行编码形成流媒体数据后推送给直播服务器。直播服务器将流媒体数据转发给需要观看直播的接收端的移动终端,接收端的移动终端将流媒体数据解码为音视频信息和midi消息。接收端的移动终端播放解码后的音视频信息,并将解码后的midi消息发送给接收端的钢琴。接收端的钢琴接收到midi消息,按照midi消息对接收端的钢琴进行控制演奏乐曲。达到音视频信息和钢琴动作的同步,以实现同步演奏的目的。
使通过互联网观看直播的用户处的钢琴与音乐会现场的钢琴进行同步演奏,同时保证在钢琴自动演奏时钢琴动作与音视频信息的同步,以提升用户的体验感。
推送端的钢琴与推送端的移动终端之间的连接通道可以为有线或者无线方式连接,其中,无线方式可以为wifi,蓝牙等,移动终端可以为手机、pad等。推送端的移动终端上安装有应用程序客户端,用户通过应用程序客户端发送直播同步的指令。推送端的钢琴接收到直播同步的指令后,采集钢琴动作后发送给推送端的移动终端;与此同时,推送端的移动终端采集送端的钢琴演奏时的音视频信息,推送端的移动终端将接收到的midi消息和音视频信息进行编码形成流媒体数据后推送给直播服务器。
接收端的钢琴与接收端的移动终端之间的连接通道可以为有线或者无线方式连接,其中,无线方式可以为wifi,蓝牙等,移动终端可以为手机、pad等。接收端的移动终端上安装有应用程序客户端,用户通过应用程序客户端发送直播同步的请求给直播服务器。直播服务器将流媒体数据转发给发送直播同步的请求的接收端的移动终端,接收端的移动终端将流媒体数据解码为音视频信息和midi消息。接收端的移动终端通过应用程序客户端播放解码后的音视频信息,并将解码后的midi消息发送给接收端的钢琴。接收端的钢琴接收到midi消息,按照midi消息对接收端的钢琴进行控制演奏乐曲。通过应用程序客户端,推送端发送直播指令即开通网络直播,接收端发送直播同步的请求进入观看直播状态。
参见图2,图2为第二种实施方式提供的音视频与钢琴动作同步直播方法的流程图。
为了进一步提高音视频信息和钢琴动作的同步性,本发明还提供一种音视频与钢琴动作同步直播方法,所述方法包括以下步骤:
步骤10:推送端的钢琴采集钢琴动作的同时采集钢琴动作对应的时间戳,并将采集到的信息以midi消息的形式发送给推送端的移动终端;
步骤20:推送端的移动终端采集推送端的钢琴演奏时的音视频信息,所述音视频信息具体为包含时间戳的音频流和视频流;
步骤30:推送端的移动终端将接收到的midi消息和音视频信息进行编码形成流媒体数据后推送给直播服务器;
步骤40:直播服务器将流媒体数据转发给接收端的移动终端,接收端的移动终端将流媒体数据解码为包含时间戳的音频流、视频流和midi消息;
步骤S51:接收端的移动终端获取音频流、视频流和midi消息的时间戳;
步骤S52:计算音频流、视频流和midi消息的时间差,根据时间差设置缓冲区时长;
步骤S53:根据缓冲区时长确定适当的音频流和视频流的播放时间,以及将解码后的midi消息发送给接收端的钢琴的时间;
步骤S54:接收端的移动终端播放解码后的音视频流,并将解码后的midi消息发送给接收端的钢琴;
步骤60:接收端的钢琴接收到midi消息,对接收端的钢琴进行控制演奏乐曲。
推送端的钢琴采集钢琴动作的同时采集钢琴动作对应的时间戳,并将采集到的信息以midi消息的形式发送给推送端的移动终端。与此同时推送端的移动终端采集推送端的钢琴演奏时的音视频信息,所述音视频信息具体为包含时间戳的音频流和视频流。推送端的移动终端将接收到的midi消息和音视频信息进行编码形成流媒体数据后推送给直播服务器。直播服务器将流媒体数据转发给接收端的移动终端,接收端的移动终端将流媒体数据解码为包含时间戳的音频流、视频流和midi消息。接收端的移动终端获取音频流、视频流和midi消息的时间戳。接收端的移动终端计算音频流、视频流和midi消息的时间差,根据时间差设置缓冲区时长。根据缓冲区时长确定适当的音频流和视频流的播放时间,以及将解码后的midi消息发送给接收端的钢琴的时间。接收端的移动终端播放解码后的音视频流,并将解码后的midi消息发送给接收端的钢琴。接收端的钢琴接收到midi消息,按照midi消息对接收端的钢琴进行控制演奏乐曲。考虑到音频流、视频流、midi消息的时间差,进行缓冲后播放保证音视频信息播放和钢琴动作的演奏的同步性。
优选地,音频流、视频流、midi消息的时间差也考虑到midi消息发送到接收端钢琴,接收端钢琴按照midi消息对接收端钢琴进行控制演奏之间的时间差。
参见图3,图3为本发明提供的一种音视频与钢琴动作同步直播系统的结构示意图。
本发明的又一个方面,还提供一种音视频与钢琴动作同步直播系统,包括:推送端钢琴直播模块100、推送端移动终端直播模块200、接收端钢琴直播模块300、接收端移动终端直播模块400及直播服务器500,其中推送端移动终端直播模块200上设置有推送端音视频采集模块210、推送端数据处理模块230和推送端移动终端数据收发模块220,推送端钢琴直播模块100上设置有推送端钢琴动作采集模块110和推送端钢琴数据收发模块120,接收端移动终端直播模块400上设置有接收端数据处理模块430、接收端音视频播放模块440和接收端移动终端数据收发模块420,接收端钢琴直播模块上设置有接收端钢琴控制指令执行模块330和接收端钢琴数据收发模块320,其中:
所述推送端钢琴动作采集模块110,用于采集钢琴动作,并将采集到的信息以midi消息的形式发送给推送端钢琴数据收发模块120;
所述推送端钢琴数据收发模块120,用于将midi消息发送给推送端移动终端数据收发模块220;
所述推送端移动终端数据收发模块220,用于将接收到midi消息发送给推送端数据处理模块230,以及将流媒体数据发送给直播服务器500;
所述推送端音视频采集模块210,用于采集钢琴演奏时的音视频信息,并发送给推送端数据处理模块230;
所述推送端数据处理模块230,用于将接收到的midi消息和音视频信息编码形成流媒体数据后发送给推送端移动终端数据收发模块220;
所述直播服务器500,用于接收推送端移动终端数据收发模块220推送的流媒体数据,并转发给接收端移动终端数据收发模块420;
所述接收端移动终端数据收发模块420,用于接收直播服务器500转发的流媒体数据,并发送给接收端数据处理模块430,以及将解码后的midi消息发送给接收端钢琴数据收发模块320;
所述接收端数据处理模块430,用于将流媒体数据解码为音视频信息和midi消息,并将解码后的音视频信息发送给接收端音视频播放模块440,解码后的midi消息发送给接收端移动终端数据收发模块420;
所述接收端音视频播放模块440,用于播放解码后的音视频信息;
所述接收端钢琴数据收发模块320,用于将接收的解码后的midi消息发送给接收端钢琴控制指令执行模块330;
所述接收端钢琴控制指令执行模块330,用于接收到解码后的midi消息,对接收端的钢琴进行控制演奏乐曲。
推送端钢琴动作采集模块110采集钢琴动作,并将采集到的信息以midi消息的形式发送给推送端钢琴数据收发模块120。推送端钢琴数据收发模块120将midi消息发送给推送端移动终端数据收发模块220,推送端移动终端数据收发模块220将接收到midi消息发送给推送端数据处理模块230。与此同时推送端音视频采集模块210,用于采集钢琴演奏时的音视频信息,也发送给推送端数据处理模块230。推送端数据处理模块230将接收到的midi消息和音视频信息编码形成流媒体数据后发送给推送端移动终端数据收发模块220,推送端移动终端数据收发模块220将流媒体数据发送给直播服务器500。直播服务器500,接收推送端移动终端数据收发模块220推送的流媒体数据,并转发给接收端移动终端数据收发模块420。接收端移动终端数据收发模块420,接收直播服务器500转发的流媒体数据,并发送给接收端数据处理模块430。接收端数据处理模块430,将流媒体数据解码为音视频信息和midi消息,并将解码后的音视频信息发送给接收端音视频播放模块440,解码后的midi消息发送给接收端移动终端数据收发模块420。接收端移动终端数据收发模块420将解码后的midi消息发送给接收端钢琴数据收发模块320接收端钢琴数据收发模块320,将接收的解码后的midi消息发送给接收端钢琴控制指令执行模块330。接收端钢琴控制指令执行模块330,接收到解码后的midi消息,对接收端的钢琴进行控制演奏乐曲。达到音视频信息和钢琴动作的同步,以实现同步演奏的目的。
使通过互联网观看直播的用户处的钢琴与音乐会现场的钢琴进行同步演奏,同时保证在钢琴自动演奏时钢琴动作与音视频信息的同步,以提升用户的体验感。
推送端钢琴数据收发模块120与推送端移动终端数据收发模块220之间的连接通道可以为有线或者无线方式连接,其中,无线方式可以为wifi,蓝牙等,移动终端可以为手机、pad等。推送端移动终端直播模块200可以为应用程序客户端,用户通过应用程序客户端发送直播同步的指令。推送端钢琴直播模块100接收到直播同步的指令后,采集钢琴动作后发送给推送端的推送端移动终端直播模块200;与此同时,推送端移动终端直播模块200采集送端的钢琴演奏时的音视频信息,推送端移动终端直播模块200将接收到的midi消息和音视频信息进行编码形成流媒体数据后推送给直播服务器500。
接收端钢琴数据收发模块320与接收端移动终端数据收发模块420之间的连接通道可以为有线或者无线方式连接,其中,无线方式可以为wifi,蓝牙等,移动终端可以为手机、pad等。接收端移动终端直播模块400可以为应用程序客户端,用户通过应用程序客户端发送直播同步的请求给直播服务器500。直播服务器500将流媒体数据转发给发送直播同步的请求的接收端移动终端直播模块400,接收端移动终端直播模块400将流媒体数据解码为音视频信息和midi消息。通过应用程序客户端播放解码后的音视频信息,并将解码后的midi消息发送给接收端钢琴直播模块300。接收端钢琴直播模块300接收到midi消息,按照midi消息对接收端的钢琴进行控制演奏乐曲。通过应用程序客户端,推送端发送直播指令即开通网络直播,接收端发送直播同步的请求进入观看直播状态。
为了进一步提高音视频信息和钢琴动作的同步性,在更进一步的方案中,所述推送端钢琴动作采集模块110中采集钢琴动作的同时采集钢琴动作对应的时间戳,并将采集到的信息以midi消息的形式发送给推送端钢琴数据收发模块。所述推送端钢琴数据收发模块120中采集推送端的钢琴演奏时的音视频信息,所述音视频信息具体为包含时间戳的音频流和视频流。所述接收端数据处理模块430包括接收端数据解码模块431,接收端数据计算模块432,其中:
所述接收端数据解码模块431,用于将流媒体数据解码为包含时间戳的音频流、视频流和midi消息,并将解码后的音视频信息发送给接收端音视频播放模块440,解码后的midi消息发送给接收端移动终端数据收发模块420;
所述接收端数据计算模块432,用于计算音频流、视频流和midi消息的时间差,根据时间差设置缓冲区时长;根据缓冲区时长确定适当的音频流和视频流的播放时间,以及将解码后的midi消息发送给接收端钢琴数据收发模块320的时间。
直播服务器将流媒体数据转发给接收端的移动终端,接收端的移动终端将流媒体数据解码为包含时间戳的音频流、视频流和midi消息。接收端的移动终端获取音频流、视频流和midi消息的时间戳。接收端的移动终端计算音频流、视频流和midi消息的时间差,根据时间差设置缓冲区时长。根据缓冲区时长确定适当的音频流和视频流的播放时间,以及将解码后的midi消息发送给接收端的钢琴的时间。接收端的移动终端播放解码后的音视频流,并将解码后的midi消息发送给接收端的钢琴。接收端的钢琴接收到midi消息,按照midi消息对接收端的钢琴进行控制演奏乐曲。考虑到音频流、视频流、midi消息的时间差,进行缓冲后播放保证音视频信息播放和钢琴动作的演奏的同步性。
推送端钢琴动作采集模块110采集钢琴动作的同时采集钢琴动作对应的时间戳,并将采集到的信息以midi消息的形式发送给推送端钢琴数据收发模块120。推送端钢琴数据收发模块120将midi消息发送给推送端移动终端数据收发模块220,推送端移动终端数据收发模块220将接收到midi消息发送给推送端数据处理模块230。与此同时推送端音视频采集模块210,用于采集钢琴演奏时的音视频信息,也发送给推送端数据处理模块230的,所述音视频信息具体为包含时间戳的音频流和视频流。推送端数据处理模块230将接收到的midi消息和音视频信息编码形成流媒体数据后发送给推送端移动终端数据收发模块220,推送端移动终端数据收发模块220将流媒体数据发送给直播服务器500。直播服务器500,接收推送端移动终端数据收发模块220推送的流媒体数据,并转发给接收端移动终端数据收发模块420。接收端移动终端数据收发模块420,接收直播服务器500转发的流媒体数据,并发送给接收端数据处理模块430的接收端数据解码模块431。接收端数据解码模块431将流媒体数据解码为包含时间戳的音频流、视频流和midi消息,并将解码后的音视频信息发送给接收端音视频播放模块440,解码后的midi消息发送给接收端移动终端数据收发模块420。接收端数据计算模块432,计算音频流、视频流和midi消息的时间差,根据时间差设置缓冲区时长;根据缓冲区时长确定适当的音频流和视频流的播放时间,以及将解码后的midi消息通过接收端移动终端数据收发模块420发送给接收端钢琴数据收发模块320的时间。接收端移动终端数据收发模块420将解码后的midi消息发送给接收端钢琴数据收发模块320接收端钢琴数据收发模块320,将接收的解码后的midi消息发送给接收端钢琴控制指令执行模块330。接收端钢琴控制指令执行模块330,接收到解码后的midi消息,对接收端的钢琴进行控制演奏乐曲。达到音视频信息和钢琴动作的同步,以实现同步演奏的目的。
在更进一步的方案中,音频流、视频流、midi消息的时间差也考虑到midi消息发送到接收端钢琴数据收发模块32,接收端钢琴控制指令执行模块330琴按照midi消息对接收端钢琴进行控制演奏之间的时间差。
优选地,同一台钢琴上可设置有推送端钢琴直播模块100和接收端钢琴直播模块300,同一台移动终端上可设置有推送端移动终端直播模块200和接收端移动终端直播模块400。
以上对本发明所提供的及一种音视频与钢琴动作同步直播方法及系统进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。