一种视频直播的数据传输方法及传输装置与流程

文档序号:12278645阅读:451来源:国知局
一种视频直播的数据传输方法及传输装置与流程

本发明涉及通信技术领域,特别是涉及一种视频直播的数据传输方法及传输装置。



背景技术:

互联网视频直播技术,能够实现将主播的直播表演传输至该主播的观众。具体实现时,采用麦克风采集主播的音频数据,采用摄像头采集主播的图像数据,将音频数据和视频数据通过视频直播服务器传输至观众端进行显示。

但是,仅仅观看一个主播的直播表演比较单调。两个主播向观众进行直播互动即成为新的视频直播热点。主播A端将主播A的音频数据和图像数据传输至视频直播服务器,并向视频直播服务器请求主播B的音频数据和图像数据。主播B端将主播B的音频数据和图像数据传输至视频直播服务器,并向视频直播服务器请求主播A的音频数据和图像数据。视频直播服务器将主播A的音频数据和图像数据传输至主播B端,并将主播B的音频数据和图像数据传输至主播A端。主播A端按照时间顺序,将主播A的图像数据与主播B的图像数据拼接成一个图像数据,并将主播A的音频数据与主播B的音频数据进行混音,合成主播A与主播B互动的互动视频数据显示给主播A。主播B端也按照上述方法得到主播A与主播B互动的互动视频数据显示给主播B。主播A端将得到的互动视频数据传输给视频直播服务器,视频直播服务器将主播A端发送的互动视频数据传输给主播A的观众。主播B端将得到的互动视频数据传输给视频直播服务器,视频直播服务器将主播B端发送的互动视频数据传输给主播B的观众。

但是,现有互联网直播的视频数据的传输协议通常是采用基于TCP(Transmission Control Protocol,传输控制协议)的RTMP协议(Real Time Messaging Protocol,实时消息传输协议),RTMP协议在网络状态差时,并不会丢弃数据包,而是对数据包进行缓存,待网络状态恢复后,再发送缓存的数据包。通过RTMP协议传输的音频数据和图像数据会有时延差,导致主播A端合成的互动视频中,以及主播B端合成的互动视频中,主播A和主播B之间的互动性差。



技术实现要素:

本发明解决的技术问题在于提供一种视频直播的数据传输方法及传输装置,从而能够减小音频数据和图像数据传输的时延差。

为此,本发明解决技术问题的技术方案是:

一种视频直播的数据传输方法,所述方法包括:

第一客户端与第二客户端建立UDP连接;

所述第一客户端采集第一主播的音频数据和图像数据;

所述第一客户端将所述第一主播的音频数据和图像数据通过所述UDP连接采用Web RTC协议发送至所述第二客户端。

可选的,所述第一客户端与第二客户端建立UDP连接包括:

所述第一客户端进行NAT穿透,获得所述第一客户端的公网IP地址;

所述第一客户端向直播服务器发送公共房间创建信令,接收所述直播服务器返回的所述第二客户端的公网IP地址,所述第二客户端的公网IP地址是所述第二客户端进行NAT穿透获得的;

所述第一客户端根据所述第一客户端的公网IP地址,以及所述第二客户端的公网IP地址,利用STUN协议建立所述第一客户端与第二客户端的UDP连接。

可选的,所述方法还包括:

所述第一客户端通过所述UDP连接接收所述第二客户端发送的第二主播的音频数据和图像数据。

可选的,所述方法还包括:

所述第一客户端将所述第一主播的图像数据和所述第二主播的图像数据进行拼接,并且将所述第一主播的音频数据和所述第二主播的音频数据进行混合,获得第一客户端的互动视频数据;

所述第一客户端向所述第一主播显示所述互动视频数据。

可选的,所述方法还包括:

所述第一客户端将所述第一客户端的互动视频数据发送至直播服务器,以使得所述直播服务器将所述第一客户端的互动视频数据发送至所述第一主播的观众的客户端显示给观众。

一种视频主播的数据传输装置,所述装置包括:

建立单元,用于与第二客户端建立UDP连接;

采集单元,用于采集第一主播的音频数据和图像数据;

第一发送单元,用于将所述第一主播的音频数据和图像数据通过所述UDP连接采用Web RTC协议发送至所述第二客户端。

可选的,所述建立单元包括:

穿透子单元,用于进行NAT穿透,获得所述第一客户端的公网IP地址;

发送子单元,用于向直播服务器发送公共房间创建信令,接收所述直播服务器返回的所述第二客户端的公网IP地址,所述第二客户端的公网IP地址是所述第二客户端进行NAT穿透获得的;

建立子单元,用于根据所述第一客户端的公网IP地址,以及所述第二客户端的公网IP地址,利用STUN协议建立所述第一客户端与第二客户端的UDP连接。

可选的,所述装置还包括:

接收单元,用于通过所述UDP连接接收所述第二客户端发送的第二主播的音频数据和图像数据。

可选的,所述装置还包括:

合并单元,用于将所述第一主播的图像数据和所述第二主播的图像数据进行拼接,并且将所述第一主播的音频数据和所述第二主播的音频数据进行混合,获得第一客户端的互动视频数据;

显示单元,用于向所述第一主播显示所述互动视频数据。

可选的,所述装置还包括:

第二发送单元,用于将所述第一客户端的互动视频数据发送至直播服务器,以使得所述服务器直播将所述第一客户端的互动视频数据发送至所述第一主播的观众的客户端显示给观众。

通过上述技术方案可知,本发明有如下有益效果:

本发明实施例提供了一种视频直播的数据传输方法及传输装置,第一客户端与第二客户端建立UDP连接;采集第一主播的音频数据和图像数据;将所述第一主播的音频数据和图像数据通过所述UDP连接采用Web RTC协议发送至所述第二客户端。第一客户端通过UDP连接采用Web RTC协议将第一终端的音频数据和图像数据发送到第二客户端,UDP连接面向非连接,传输速度快,减小音频数据和图像数据传输的时延差,提高两个主播之间的互动性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的视频直播的数据传输方法流程图;

图2为本发明实施例提供的视频直播的数据传输方法应用场景结构图;

图3为本发明实施例提供的视频直播的数据传输装置结构示意图。

具体实施方式

为了给出减小音频数据和图像数据传输的时延差的实现方案,本发明实施例提供了一种视频直播的数据传输方法及传输装置,以下结合说明书附图对本发明的优选实施例进行说明。

图1为本发明实施例提供的视频直播的数据传输方法流程图,包括:

101:第一客户端与第二客户端建立UDP(User Datagram Protocol,用户数据报协议)连接。

102:所述第一客户端采集第一主播的音频数据和图像数据。

两个主播,第一主播和第二主播,进行互动直播的场景下,第一主播所处的客户端为第一客户端,第二主播所处的客户端为第二客户端。第一客户端的摄像头采集第一主播直播的图像数据,第一客户端的麦克风采集第一主播直播的音频数据。第二客户端的摄像头采集第二主播的图像数据,第二客户端的麦克风采集第二主播直播的音频数据。

现有技术中,第一客户端和第二客户端没有建立直接的通信连接,第一客户端将第一主播的图像数据和音频数据采用基于TCP协议的RTMP协议发给直播服务器,直播服务器再将该第一主播的图像数据和音频数据转发给第二客户端,显示给第二主播。同理,第二客户端也会将第二主播的图像数据和音频数据采用基于TCP协议的RTMP协议发给直播服务器,直播服务器再将该第二主播的图像数据和音频数据转发给第一客户端,显示给第一主播。而基于TCP协议的RTMP协议面向连接,建立连接速度慢,在网络差时,对图像数据和音频数据的传输速度慢,延时差很大,无法满足第一主播和第二主播的互动需求。

本发明实施例中,第一客户端和第二客户端建立UDP连接,UDP连接面向非连接,不会缓存数据,数据传输速度快,延时差小,能够满足第一主播和第二主播的互动需求。

在一个例子中,所述第一客户端与第二客户端建立UDP连接,包括:

所述第一客户端进行NAT(Network Address Translation,网络地址转换)穿透,获得所述第一客户端的公网IP(Internet Protocol,网络互连协议)地址;

所述第一客户端向直播服务器发送公共房间创建信令,接收所述直播服务器返回的所述第二客户端的公网IP地址,所述第二客户端的公网IP地址是所述第二客户端进行NAT穿透获得的;

所述第一客户端根据所述第一客户端的公网IP地址,以及所述第二客户端的公网IP地址,利用STUN(Simple Traversal of UDP over NATs,NAT的UDP简单穿越)协议建立所述第一客户端与第二客户端的UDP连接。

现有网络中,多个客户端共用一个公网IP地址,每个客户端有一个私网IP地址。第一客户端的第一主播想与第二客户端的第二主播进行互动直播时,第一客户端通过socket链接向第二客户端发送连麦请求,该连麦请求携带有第一客户端的房间号。第二客户端的第二主播接收到该连麦请求,若同意与第一主播进行互动直播,则第二客户端向第一客户端返回同意连麦。

第一客户端进行NAT穿透,可以获得第一客户端的公网IP地址,建立该第一客户端与第一客户端的NAT路由之间的UDP连接。第二客户端也进行NAT穿透,可以获得第二客户端的公网IP地址,建立第二客户端与第二客户端的NAT路由之间的UDP连接。

第一客户端和第二客户端都进行NAT穿透后,第一客户端向直播服务器发送公共房间创建信令,携带有第一客户端的公网IP地址和房间号;同时,第二客户端也向直播服务器另一公共房间创建信令,携带有第二客户端的公网IP地址和房间号。服务器根据第一客户端和第二客户端分别发送的公共房间创建信令,给第一主播和第二主播创建一个公共房间,该公共房间有第一主播的公网IP地址和房间号以及第二主播的公网IP地址和房间号。直播服务器将第一主播的公网IP地址和房间号发送至第二客户端,并将第二主播的公网IP地址和房间号发送至第一客户端。

第一客户端获得第二客户端的公网IP地址后,根据第一客户端的公网IP地址,以及所述第二客户端的公网IP地址,采用STUN协议建立第一客户端与第二客户端的UDP连接。第一客户端进行NAT穿透后,能够建立第一客户端与第一客户端的NAT路由器之间的UDP连接,第二客户端进行NAT穿透后,能够建立第二客户端与第二客户端的NAT路由之间的UDP连接,Internet公网能够提供第一客户端的NAT路由器和第二客户端的NAT路由器之间的UDP通道。第一客户端采用STUN协议,即可建立第一客户端到第二客户端的UDP连接。

103:所述第一客户端将所述第一主播的音频数据和图像数据通过所述UDP连接采用Web RTC(Web Real-Time Communication,网页实时通信)协议发送至所述第二客户端。

第一客户端与第二客户端之间建立UDP连接后,第一客户端采集第一主播的音频数据和图像数据,将所采集的第一主播的音频数据和图像数据通过所述UDP连接采用Web RTC协议发送至所述第二客户端。并且,第二客户端采集的第二主播的音频数据和图像数据,也通过所述UDP连接采用Web RTC协议发送至所述第一客户端。

由于UDP连接面向非连接,无需在数据传输前发送建立连接的各种报文,直接发送数据包,采用UDP连接对音频数据和图像数据的传输速度快,减小数据传输的时延差,可以见数据传输的延时控制在0.5秒左右,能够满足两个主播直播的互动需求。

在一个例子中,所述方法还包括:

所述第一客户端通过所述UDP连接接收所述第二客户端发送的第二主播的音频数据和图像数据。

第一客户端与第二客户端建立了UDP连接后,第一主播和第二主播互动,则第二客户端也通过该UDP连接发送第二主播的音频数据和图像数据,第一客户端通过该UDP连接接收第二客户端发送的第二主播的音频数据和图像数据。

在一个例子中,所述方法还包括:

所述第一客户端将所述第一主播的图像数据和所述第二主播的图像数据进行拼接,并且将所述第一主播的音频数据和所述第二主播的音频数据进行混合,获得第一客户端的互动视频数据;

所述第一客户端向所述第一主播显示所述互动视频数据。

第一客户端接收到第二客户端发送的第二主播的视频数据和图像数据后,按照时间顺序,将第一主播的图像数据和第二主播的图像数据进行拼接,并将第一主播的音频数据与第二主播的音频数据进行混合,获得第一客户端的互动视频数据。第一客户端将互动视频数据显示给第一主播。同样的,第二客户端接收到第一客户端发送的第一主播的视频数据和图像数据,也按照时间顺序,将第一主播的图像数据和第二主播的图像数据进行拼接,并将第一主播的音频数据与第二主播的音频数据进行混合,获得第二客户端的互动视频数据。第二客户端将互动视频数据显示给第二主播。

在上述例子中,所述方法还包括:

所述第一客户端将所述第一客户端的互动视频数据发送至直播服务器,以使得所述直播服务器将所述第一客户端的互动视频数据发送至所述第一主播的观众的客户端显示给观众。

第一客户端将第一客户端的互动视频数据发送至直播服务器,直播服务器将该第一客户端的互动视频数据发送至第一主播的观众的客户端显示给观众。这里需要说明的是,直播服务器只将第一客户端的互动视频数据发送至第一主播的观众,不能发送给别的客户端的观众。而第二客户端将第二客户端的互动视频数据发送至直播服务器,直播服务器将该第二客户端的互动视频数据发送至第二主播的观众的客户端显示给观众,不能发送到别的客户端。

这里需要说明的是,上述实施例中以第一客户端为执行主体进行说明,实际应用中,第二客户端实现方式与第二客户端类似,参考第一客户端具体实现方式,这里不进行赘述。

为了更好的说明本发明所提供的方法,下面对本发明所提供的视频直播的数据传输方法的应用场景进行具体说明:

如图2所示,第一客户端与第二客户端建立UDP连接,其中,该UDP连接分为三部分,包括第一客户端与第一客户端的NAT路由器进行NAT穿透建立的UDP连接,第二客户端与第二客户端的NAT路由器进行NAT穿透建立的UDP连接,以及第一客户端的NAT路由器与第二客户端的NAT路由器之间的公网提供的UDP连接。

第一客户端与第一客户端的NAT路由器进行NAT穿透,能够获得第一客户端的公网IP地址,第二客户端与第二客户端的NAT路由器进行NAT穿透能够获得第二客户端的公网IP地址,第一客户端通过直播服务器,将第一客户端的公网IP地址和房间号发送至第二客户端,同理,第二客户端通过直播服务器,将第二客户端的公网IP地址和房间号发送至第一客户端。第一客户端通过第一客户端的公网IP地址,第二客户端的公网IP地址,采用STUN协议建立所述第一客户端与第二客户端的UDP连接。

第一主播的音频数据和图像数据,不会再利用直播服务器基于TCP协议转发至第二客户端,第一客户端通过所建立的UDP连接将第一主播的音频数据和图像数据直接发给第二客户端。同理,第二客户端也通过所建立的UDP连接将第二主播的音频数据和图像数据直接发给第一客户端。提高数据传输速度,减小时延差,满足第一主播和第二主播进行互动直播的需求。

由上述内容可知,本发明有如下有益效果:

第一客户端与第二客户端建立UDP连接;采集第一主播的音频数据和图像数据;将所述第一主播的音频数据和图像数据通过所述UDP连接采用Web RTC协议发送至所述第二客户端。第一客户端通过UDP连接采用Web RTC协议将第一终端的音频数据和图像数据发送到第二客户端,UDP连接面向非连接,传输速度快,减小音频数据和图像数据传输的时延差,提高两个主播之间的互动性。

图3为本发明实施例提供的视频主播的数据传输装置结构示意图,包括:

建立单元301,用于与第二客户端建立UDP连接。

采集单元302,用于采集第一主播的音频数据和图像数据。

第一发送单元303,用于将所述第一主播的音频数据和图像数据通过所述UDP连接采用Web RTC协议发送至所述第二客户端。

在一个例子中,所述建立单元包括:

穿透子单元,用于进行NAT穿透,获得所述第一客户端的公网IP地址;

发送子单元,用于向直播服务器发送公共房间创建信令,接收所述直播服务器返回的所述第二客户端的公网IP地址,所述第二客户端的公网IP地址是所述第二客户端进行NAT穿透获得的;

建立子单元,用于根据所述第一客户端的公网IP地址,以及所述第二客户端的公网IP地址,利用STUN协议建立所述第一客户端与第二客户端的UDP连接。

在一个例子中,所述装置还包括:

接收单元,用于通过所述UDP连接接收所述第二客户端发送的第二主播的音频数据和图像数据。

在一个例子中,所述装置还包括:

合并单元,用于将所述第一主播的图像数据和所述第二主播的图像数据进行拼接,并且将所述第一主播的音频数据和所述第二主播的音频数据进行混合,获得第一客户端的互动视频数据;

显示单元,用于向所述第一主播显示所述互动视频数据。

在一个例子中,所述装置还包括:

第二发送单元,用于将所述第一客户端的互动视频数据发送至直播服务器,以使得所述服务器直播将所述第一客户端的互动视频数据发送至所述第一主播的观众的客户端显示给观众。

图3所示的视频主播的数据传输装置是与图1所示的视频主播的数据传输方法所对应的装置,具体实现方式与图1所示的方法类似,参考图1所示的方法,这里不再赘述。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1