一种基于HTML5浏览器的音视频直播方法与流程

文档序号:12132620阅读:1201来源:国知局

本发明涉及一种基于HTML5浏览器的音视频直播方法。



背景技术:

目前的音视频直播方法主要是采用直播推流服务器来实现,直播压力完全由直播推流服务器承担,服务器的处理压力很大,且不好对推流的数据进行操作。

目前应用较多较成熟的视频通信技术有以下几种:

WebRTC技术,其实现了基于网页的视频会议,标准是WHATWG 协议,目的是通过浏览器提供简单的javascript就可以获得实时通讯(Real-Time Communications,RTC)能力。该WebRTC技术提供浏览器接口Media Stream API用于从设备的摄像头、话筒获取数据流,提供浏览器接口RTC Peer Connection API用于构建点对点之间稳定、高效的流传输的组件,提供浏览器接口RTC Data Channel API用于在浏览器之间(点对点)建立一个高吞吐量、低延时的信道。

弹幕技术,弹幕会随着视频的播放实时在视频上呈现,这样观看者在观看该视频时能够看到其他观看者和自己发送的弹幕,在网络视频的播放过程中,服务器可以从终端获取弹幕信息,然后将各用户对该网络视频发表的弹幕信息添加到网络视频的不同时段中进行显示,这样,用户可以在浏览网络视频的过程中,方便的阅读各用户发表的评论信息。

WebSocket技术,WebSocket protocol 是一种HTML5新的协议,它实现了浏览器与服务器全双工通信,能更好的节省服务器资源和带宽并达到实时通讯。

NAT/防火墙穿越技术,网络地址转换(Network Address Translation,简称NAT)是一种在IP分组通过路由器或防火墙时重写源IP地址或/和目的IP地址的技术。在视频会议过程中,NAT穿越在内外网消息通信中起到了至关重要的作用。NAT穿越协议有STUN(Simple Traversal of UDP Through NAT,即UDP对NAT的简单穿越方式)和TURN(Traversal Using Relay NAT,通过Relay方式穿越NAT)。ICE框架(交互式连接建立,Interactive Connectivity Establishment)是一种综合性的NAT穿越技术框架,可以整合各种NAT穿越技术如STUN、TURN(Traversal Using Relay NAT 中继NAT实现的穿透),ICE会先使用STUN,尝试建立一个基于UDP的连接,如果失败了,就会去TCP(先尝试HTTP,然后尝试HTTPS),如果依旧失败ICE就会使用一个中继的TURN服务器,这个中继服务器是用Google的STUN服务器或自己搭建的STUN服务器,因此最坏情况是使用自己的服务器进行直播流服务。

可以尝试利用上述的视频通信技术提供一种基于浏览器的音视频直播方法,将服务器的一部分数据处理工作转移给浏览器,以释放减轻服务器的处理压力。



技术实现要素:

本发明提供一种基于HTML5浏览器的音视频直播方法,用户端和主播端通过WebRTC建立通信通道进行视频流和音频流的传输以及消息传输,用户端和主播端建立通信后由用户端浏览器接收和处理数据,而网络服务器只是做验证、连接和心跳检测工作,不需要再完全依赖服务器推流,极大减轻了网络服务器的压力。

为了达到上述目的,本发明提供一种基于HTML5浏览器的音视频直播方法,包含以下步骤:

步骤S1、网络服务器通过WebRTC建立主播端浏览器和用户端浏览器之间的通信连接;

步骤S2、用户端浏览器接收和处理主播端发送的直播数据。

如权利要求1所述的基于HTML5浏览器的音视频直播方法,其特征在于,所述的主播端浏览器和用户端浏览器都采用HTML5浏览器。

所述的步骤S1具体包含以下步骤:

步骤S1.1、主播登录主播端浏览器,与网络服务器建立WebSocket连接,通过Media Stream API浏览器接口获取来自主播端设备的音视频数据流;所述的音视频数据流包含:音频轨道和视频轨道;

步骤S1.2、用户登录用户端浏览器,与网络服务器建立WebSocket连接;

步骤S1.3、网络服务器建立主播端和用户端之间的信道;

网络服务器使用ICE框架来实现NAT穿越,建立信道在主播端和用户端之间传递信令。

所述的步骤S1.1中,所述的主播端设备包含:连接Media Stream API浏览器接口的摄像头和话筒。

所述的步骤S1.3中,所述的信令包含:

会话信息:用来初始化通信和报错;

网络配置:IP地址和端口;

媒体适配:发送方和接收方的浏览器能够接受的编码器和分辨率。

所述的步骤S2包含以下步骤:

用户端浏览器接收并展示主播端发送的直播数据;

用户端浏览器处理弹幕数据。

所述的用户端浏览器接收并展示主播端发送的直播数据的步骤具体包含:

用户端浏览器通过RTC Peer Connection API浏览器接口接收主播端发送的音频流和视频流,并通过HTML5浏览器的Video标签展示音频流和视频流;

用户端浏览器通过RTC Data Channel API浏览器接口接收并展示主播端发送的文字数据。

所述的文字数据包含:文件和弹幕消息,通过弹幕层展示弹幕消息。

所述的用户端浏览器处理弹幕数据的步骤具体包含:

用户端浏览器通过RTC Data Channel API浏览器接口发送弹幕消息给主播端;

用户端浏览器通过WebSocket连接发送弹幕消息给网络服务器。

网络服务器还通过WebSocket连接给用户端浏览器发送其他用户端发送的弹幕消息,用户端浏览器通过弹幕层展示弹幕消息。

本发明的用户端和主播端通过WebRTC建立通信通道进行视频流和音频流的传输以及消息传输,用户端和主播端建立通信后由用户端浏览器接收和处理数据,而网络服务器只是做验证、连接和心跳检测工作,不需要再完全依赖服务器推流,极大减轻了网络服务器的压力。

附图说明

图1是本发明的流程图。

具体实施方式

以下根据图1具体说明本发明的较佳实施例。

如图1所示,本发明提供一种基于HTML5浏览器的音视频直播方法,包含以下步骤:

步骤S1、网络服务器通过WebRTC建立主播端浏览器和用户端浏览器之间的通信连接;

步骤S2、用户端浏览器接收和处理主播端发送的直播数据。

所述的步骤S1中,所述的主播端浏览器和用户端浏览器都采用HTML5浏览器,步骤S1具体包含以下步骤:

步骤S1.1、主播登录主播端浏览器,与网络服务器建立WebSocket连接,通过Media Stream API浏览器接口获取来自主播端设备的音视频数据流;

所述的主播端设备包含:连接Media Stream API浏览器接口的摄像头和话筒;

所述的音视频数据流包含:音频轨道和视频轨道;

步骤S1.2、用户登录用户端浏览器,与网络服务器建立WebSocket连接;

步骤S1.3、网络服务器建立主播端和用户端之间的信道;

网络服务器使用ICE框架来实现NAT穿越,建立信道在主播端和用户端之间传递信令;

所述的信令包含:

会话信息:用来初始化通信和报错;

网络配置:IP地址和端口;

媒体适配:发送方和接收方的浏览器能够接受的编码器和分辨率;

所述的步骤S2包含以下步骤:

用户端浏览器接收并展示主播端发送的直播数据;

用户端浏览器处理弹幕数据。

所述的用户端浏览器接收并展示主播端发送的直播数据的步骤具体包含:

用户端浏览器通过RTC Peer Connection API浏览器接口接收主播端发送的音频流和视频流,并通过HTML5浏览器的Video标签展示音频流和视频流;

用户端浏览器通过RTC Data Channel API浏览器接口接收并展示主播端发送的文字数据;

所述的文字数据包含:文件和弹幕消息,通过弹幕层展示弹幕消息。

所述的用户端浏览器处理弹幕数据的步骤具体包含:

用户端浏览器通过RTC Data Channel API浏览器接口发送弹幕消息给主播端;

用户端浏览器通过WebSocket连接发送弹幕消息给网络服务器。

在本发明提供的一种基于HTML5浏览器的音视频直播方法中,网络服务器还通过WebSocket连接给用户端浏览器发送其他用户端发送的弹幕消息,用户端浏览器通过弹幕层展示弹幕消息。

本发明提供的一种基于HTML5浏览器的音视频直播方法,用户端和主播端通过WebRTC建立通信通道进行视频流和音频流的传输以及消息传输,相比于目前服务器推流的直播技术,能够让用户端和主播端建立通信后由用户端浏览器接收和处理数据,而网络服务器只是做验证、连接和心跳检测这些传统工作,不需要再完全依赖服务器推流,极大减轻了网络服务器的压力。

尽管本发明的内容已经通过上述优选实施例作了详细介绍,但应当认识到上述的描述不应被认为是对本发明的限制。在本领域技术人员阅读了上述内容后,对于本发明的多种修改和替代都将是显而易见的。因此,本发明的保护范围应由所附的权利要求来限定。

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