多人视频直播业务的实现方法

xiaoxiao2021-2-23  118

多人视频直播业务的实现方法
【技术领域】
[0001]本发明涉及网络视频直播技术领域,特别是指一种多人视频直播业务的实现方法。
【背景技术】
[0002]传统的直播业务通常只有一个视频直播者,即主播,其他用户与主播直接有一些简单的文字互动。随着技术的进步和直播市场需求的发展,多人视频直播业务,即多人主播直播的业务越来越多。
[0003]基于互联网的多人视频直播业务,需要多个主播分别实时上传各自内容,由服务器混流后提供给观看者实时和同时观看多个主播的内容。比如新闻直播中主持人与记者在两地做直播;游戏直播中的多视角直播;美女直播中的多主播同时直播;视频辩论赛中的多视角直播等等。
[0004]音视频同步是流媒体技术中的一个难点,目前音频数据由于数据量小,传输延时小,其同步基本上在服务器端进行实时混音即可实现,而视频同步则由于数据量大,传输延时相对较大,其同步很难在服务器直接实现。
[0005]在多人视频直播业务的实现过程中,大多数做法是假设多个视频直播参与者(SP多个主播)的网络是良好的,传输延时较小,默认多个主播视频流是同步的,服务器只将各个主播的直播视频数据实时混流发送出去。
[0006]在网络良好的情况下,服务器按照上面的方式混流处理各个主播的直播视频数据也能达到同步。但在网络故障、拥塞、负载大的情况下,可能会出现一主播的直播视频数据不能及时传输到服务器,则该主播的直播视频就不能够与其他主播的直播视频同步,即产生该主播的视频画面先发送,但是观众后看到的现象。

【发明内容】

[0007]有鉴于此,本发明的主要目的在于提供一种多人视频直播业务的实现方法,实现所观看的各个直播参与者的直播的视频的同步。
[0008]本发明提供的一种多人视频直播业务的实现方法,包括步骤:
[0009]A、每个直播客户端将对应的直播参与者的直播视频流分段打包,并在其中至少一数据包中添加对应的该段直播视频流的时间戳;
[0010]B、直播混流服务器接收到各直播客户端的直播视频流数据包,将各直播客户端的直播视频流根据所述时间戳进行对齐后混流合并,形成一整体的多人直播视频流供直播。[0011 ]由上,当直播混流服务器在进行合并混流时,根据时间戳进行对齐混流,确保所播放视频中的各个直播的视频同步,避免不同直播参与者的视频先后次序混乱的不同步情况,使得直播观看者看到同步的多人视频直播。
[0012]可选的,所述直播客户端通过直播上传服务器将所述直播视频流传输至所述直播混流服务器。可选的,还包括确定与所述直播客户端最近的直播上传服务器作为所选择的直播上传服务器的步骤。
[0013]由上,确定直播上传服务器的方式采用了就近原则(同城,同运营商)的策略,以减少网络问题导致的数据上传不流畅问题。
[0014]可选的,步骤A之前还包括:各个直播客户端向互联网内的时间服务器进行时间同步。
[0015]由上,通过该步骤实现了各个直播客户端时间的同步,保证打时间戳的准确性。
[0016]可选的,步骤A所述时间戳在每个直播视频流数据包内均设置;步骤B所述的根据所述时间戳进行对齐后混流合并包括:将相同时间戳的各个数据包内的视频流数据进行混流合并。
[0017]由上,可以灵活选择打时间戳的策略,可以如上在各个数据包内设置时间戳。
[0018]可选的,步骤A所述时间戳在固定时刻的直播视频流数据包内设置;步骤B所述的根据所述时间戳进行对齐后混流合并包括:将相同时间戳的数据包内的视频流数据进行混流合并,将位于两时间戳之间的数据包对应次序的进行混流合并。
[0019]由上,可以灵活选择打时间戳的策略,可以如上间隔在固定时刻是,对相应数据包内设置时间戳。
[0020]可选的,步骤A所述时间戳在包含特殊帧的直播视频流数据包内设置;步骤B所述的根据所述时间戳进行对齐后混流合并包括:根据直播视频流的特殊帧时刻计算与其他直播视频流的特殊帧时刻的对齐时刻,并据此对齐进行混流合并。
[0021]由上,可以灵活选择打时间戳的策略,采用如上方式,是基于到当直播的视频流的内容如果变化不大的情况下(例如多人直播业务中,存在一直播参与者是进行讲课或读书类的直播视频,该直播参与者和背景构成的画面可能长时间基本不变),当出现不同步时,对用户观看多人直播视频的影响不大,且也不易引起用户注意,因此可以不加入时间戳,即不对同步有严格要求;而当直播的视频流内容发生变化时,容易引起用户的注意,此时对用户观看多人直播视频的影响较大,因此要加入时间戳,确保此时的直播视频流的同步。
[0022]可选的,步骤B还包括:所述混流合并时再次加入时间戳。可选的,所述再次加入的时间戳对应原时间戳,或新时间戳。
[0023]由上,以便于直播观看者的客户端接收到各所述直播视频数据包后依时间戳顺序还原。
[0024]可选的,步骤B后还包括:将所述多人直播视频流分发到CDN网络供直播观看客户端接收播放。
【附图说明】
[0025]图1为多人视频直播业务的系统原理示意图;
[0026]图2为多人视频直播业务的实现方法的流程图;
[0027]图3为直播混流服务器进行混流的示意图;
[0028]图4为基于特殊帧的时间戳时进行混流的示意图。
【具体实施方式】
[0029]如图1示出了多人视频直播业务的系统,包括各个直播参与者、多个直播上传服务器、直播混流服务器、⑶N(内容分发)网络、各个直播观看者。其中直播参与者即对其直播的视频数据流进行上传,直播上传服务器就近原则接收对应的直播参与者上传的直播视频数据流,直播混流服务器按照本发明对应的方法将各个直播视频流进行混流,并分发到CDN网络,由各个直播观看者进行直播观看。
[0030]本发明在进行多人视频直播业务中,对多个直播参与者(即主播)分别上传的视频数据流加入时间戳,由直播混流服务器在进行合并混流时,根据时间戳进行对齐混流,确保所播放视频中的各个直播的视频同步,避免不同直播参与者的视频先后次序混乱的不同步情况,使得直播观看者看到同步的多人视频直播。
[0031]下面,参见图1所述系统以及图2示出的流程图,对本发明多人视频直播业务的实现方法进行详细描述,包括以下步骤:
[0032]步骤10:直播参与者通过其直播客户端发起直播请求,该直播请求通过网络传输到直播业务服务器。该请求信息中包括其直播客户端账户信息、IP地址、位置信息(可选)。
[0033]其中,本例中直播业务服务器即直播混流服务器,两者一体设置。不难理解,根据功能的不同,也可以将业务服务器独立设置,仅用于控制各种业务的建立过程,后面步骤将统一描述为直播混流服务器。
[0034]步骤20:直播混流服务器(即上述直播业务服务器)收到后,根据直播客户端所述请求信息中的IP地址或位置信息,确定出与该直播客户端最近的直播上传服务器,并将该直播上传服务器的IP地址通过响应信息回传给所述直播客户端。该响应信息内还可包括一时间校准指令。
[0035]其中,本例中,确定直播上传服务器的方式采用了就近原则(同城,同运营商)的策略,以减少网络问题导致的数据上传不流畅问题。另外,还可以进一步结合其他的策略来选择直播上传服务器,例如根据各个直播上传服务器当前负载情况,如已经接入直播上传客户端的数量,再如各个直播上传服务器接入的数据拥塞情况等,来作为增加的条件选择所要使用的直播上传服务器。
[0036]步骤30:直播客户端收到所述响应信息后,根据响应信息中的时间校准指令向互联网内的时间服 务器(例如地址为t ime.windows.com的互联网时间服务器)进行时间同步,并解析出该响应信息中的直播上传服务器的IP地址。
[0037]步骤40:直播客户端通过客户端设备上的摄像头、麦克风实时采集视频流,并实时将该视频流根据传输协议依次分段打包向所确定的直播上传服务器进行上传。其中,直播客户端对每个视频流数据包均加入该段视频流生成时的时间戳。
[0038]该例中是以每个数据包为例进行说明,也可以在固定时刻的帧或视频流数据包加入时间戳。该固定时刻如每分钟的第10秒。
[0039]另外,还可以采用下述策略加入时间戳:当判断存在特殊帧时,例如该帧相对于前一帧的变化超过特定比例(该判断方式例如判断两帧图像对应的灰度值的差值是否超过特定值等方式,具体算法非本发明关注重点,不再赘述),则认为视频中图像发送较大变化,此时加入时间戳。对于未采用每个数据包都加入时间戳的方式,则可以在数据包的包头加入表示是否有时间戳的一字节。采用该特殊帧策略,是考虑到当直播的视频流的内容如果变化不大的情况下(例如多人直播业务中,存在一直播参与者是进行讲课或读书类的直播视频,该直播参与者和背景构成的画面可能长时间基本不变),当出现不同步时,对用户观看多人直播视频的影响不大,且也不易引起用户注意,因此可以不加入时间戳,即不对同步有严格要求;而当直播的视频流内容发生变化时,容易引起用户的注意,此时对用户观看多人直播视频的影响较大,因此要加入时间戳,确保此时的直播视频流的同步。
[0040]步骤50:直播上传服务器接收到所述直播视频流的数据包后,将所述直播视频流的数据包向直播混流服务器上传。其中,直播上传服务器可以采用数据透明传输的方式传输所述数据包,即不修改所述数据包直接封装上传。
[0041 ]步骤60:直播混流服务器接收到由直播上传服务器传输的、来自各个直播参与者客户端的各个直播视频流数据包后,解包,并其将各个直播视频流根据各自的时间戳进行对齐,然后进行混流合并形成一个整体的多人直播视频流。举例说明如下:
[0042]例如,第一个直播参与者客户端在进行直播视频流上传时打了时间戳为m时刻,第二个直播参与者客户端在进行直播视频流上传时打了时间戳为m+100时刻,第三个直播参与者客户端在进行直播视频流上传时打了时间戳为m+200时刻。
[0043]当直播流服务器进行混流合并时,会将这三个直播视频流的相同的时间戳对齐,即:在混流合并时间戳为m到m+100这段期间的视频流时,仅包括第一个直播参与者客户端上传的该段时间的直播视频流;在混流合并时间戳为m+100到m+200这段期间的视频流时,会将第一、二直播参与者客户端上传的该段时间的直播视频流对齐时间戳混合;在混流合并时间戳为m+200到m+300这段期间的视频流时,会将第一、二、三直播参与者客户端上传的该段时间的直播视频流对齐时间戳混合。如此,各个直播参与者所上传的直播视频流在混流合并时,则不会产生如【背景技术】提到的不同步的问题了。
[0044]如上步骤40时间戳的设定,当每个直播视频流数据包都有时间戳时,对应的混流合并时,会将相同时间戳的数据包内的视频流数据进行混流合并。当采用了固定时刻加时间戳时,将相同时间戳的数据包内的视频流数据进行混流合并,将位于两时间戳之间的数据包,对应次序的进行混流合并。当采用了特殊帧的时间戳时,由于各个直播视频流的特殊帧并不一定同时发生,则要根据在先的直播视频流的特殊帧时刻进行计时(直播流服务器时间与互联网时间服务器时间同步)到达所述另一直播视频流的特殊帧时刻时,即时间戳对齐时,进行混流,具体可参见图4示出的示意图。
[0045]其中,在直播混流服务器侧各个混流后形成的视频流数据包,该直播混流服务器可以再次加入时间戳,该时间戳可以采用对应的原时间戳,或者由服务器重新打上时间戳,以便于直播观看者的客户端接收到各所述直播视频数据包后依时间戳顺序还原。
[0046]步骤70:直播混流服务器将混流合并后所形成的整体的多人直播视频流分发到⑶N网络中。
[0047]步骤80:直播观看者通过其客户端根据自己的需求从⑶N网络中接收所述多人直播视频流进行播放观看。
[0048]不难理解,直播流服务器还也可以同时将各个直播参与者的直播视频流分别发送CDN网络,以便于直播观看者可以根据自己的选择,观看其中一个直播参与者的直播视频流。
[0049]另外需要说明的是,虽然本发明以视频数据为例进行说明,不难理解,本发明所述的视频数据包含其中的音频内容。并且,本发明也同样可以应用于音频的同步。
[0050]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【主权项】
1.一种多人视频直播业务的实现方法,其特征在于,包括步骤: A、每个直播客户端将对应的直播参与者的直播视频流分段打包,并在其中至少一数据包中添加对应的该段直播视频流的时间戳; B、直播混流服务器接收到各直播客户端的直播视频流数据包,将各直播客户端的直播视频流根据所述时间戳进行对齐后混流合并,形成一整体的多人直播视频流供直播。2.根据权利要求1所述的方法,其特征在于,所述直播客户端通过直播上传服务器将所述直播视频流传输至所述直播混流服务器。3.根据权利要求2所述的方法,其特征在于,还包括确定与所述直播客户端最近的直播上传服务器作为所选择的直播上传服务器的步骤。4.根据权利要求1所述的方法,其特征在于,步骤A之前还包括:各个直播客户端向互联网内的时间服务器进行时间同步。5.根据权利要求1所述的方法,其特征在于,步骤A所述时间戳在每个直播视频流数据包内均设置; 步骤B所述的根据所述时间戳进行对齐后混流合并包括:将相同时间戳的各个数据包内的视频流数据进行混流合并。6.根据权利要求1所述的方法,其特征在于,步骤A所述时间戳在固定时刻的直播视频流数据包内设置; 步骤B所述的根据所述时间戳进行对齐后混流合并包括:将相同时间戳的数据包内的视频流数据进行混流合并,将位于两时间戳之间的数据包对应次序的进行混流合并。7.根据权利要求1所述的方法,其特征在于,步骤A所述时间戳在包含特殊帧的直播视频流数据包内设置; 步骤B所述的根据所述时间戳进行对齐后混流合并包括:根据直播视频流的特殊帧时刻计算与其他直播视频流的特殊帧时刻的对齐时刻,并据此对齐进行混流合并。8.根据权利要求1所述的方法,其特征在于,步骤B还包括:所述混流合并时再次加入时间戳,所述再次加入的时间戳对应原时间戳,或新时间戳。9.根据权利要求1所述的方法,其特征在于,步骤B后还包括:将所述多人直播视频流分发到CDN网络供直播观看客户端接收播放。
【专利摘要】本发明提供了一种多人视频直播业务的实现方法,包括步骤:每个直播客户端将对应的直播参与者的直播视频流分段打包,并在其中至少一数据包中添加对应的该段直播视频流的时间戳;直播混流服务器接收到各直播客户端的直播视频流数据包,将各直播客户端的直播视频流根据所述时间戳进行对齐后混流合并,形成一整体的多人直播视频流供直播。使用本发明,实现所播放视频中的各个直播的内容的同步。
【IPC分类】H04N21/8547, H04N21/647, H04N21/6437, H04N21/242, H04N21/2187
【公开号】CN105491393
【申请号】CN201510874771
【发明人】殷海晨, 汪铁丰, 张澍勇
【申请人】北京暴风科技股份有限公司
【公开日】2016年4月13日
【申请日】2015年12月2日

最新回复(0)