基于HTML5浏览器的视频主播、直播方法、终端和系统与流程

文档序号:14325068阅读:214来源:国知局

本发明涉及互联网技术领域,特别涉及视频直播技术领域,具体是指一种基于html5浏览器的视频主播方法、直播方法、主播终端和直播系统。



背景技术:

现有的网络直播主要采用rtmp推流技术,rtmp是由macromedia公司提出的实时消息传输协议,用于在flash播放器和服务器之间通过网络传输音频、视频和其他数据。现在流行的直播平台,例如哔哩哔哩直播、斗鱼直播、熊猫直播、战旗直播等的主播推流均使用这种协议。虽然rtmp协议支持多媒体流的播放,但是在实践中,播放端通常使用http协议获取多媒体流。

基于rtmp推流现在已经有较为成熟的pc推流解决方案、手机推流解决方案、游戏主机平台解决方案甚至音视频录制设备提供硬件解决方案,但暂还没有浏览器解决方案。这就导致,各直播平台都要求用户使用客户端软件进行直播。手机上需要安装独立的app,电脑上需要使用通用的直播软件(obs等)或者专用的直播软件才能开启直播。使得直播的实现手段较为复杂。

另一方面,webrtc协议是由一整套通信协议和应用编程接口组成,提供了用户间(p2p)建立连接并实时交流信息的手段。html5浏览器可以方便地利用webrtc进行视频聊天,而不需要额外安装插件。

虽然现有的webrtc系统能允许两个用户之间直接使用浏览器进行音视频通话、无需安装单独的客户端,但是却无法连入基于rtmp协议的现有的内容分发网络。因此也就难以利用html5浏览器实现网络直播功能。

因此,如何提供一种基于html5浏览器实现的,方便快捷的网络直播平台,便于用户使用,同时提升直播的使用体验成为本领域亟待解决的问题。



技术实现要素:

本发明的目的是克服了上述现有技术中的缺点,提供一种基于html5浏览器的实现的,便于用户使用,同时提升直播使用体验的视频主播方法、直播方法及主播终端及直播系统。

为了实现上述的目的,本发明的基于html5浏览器的视频主播方法包括以下步骤:

(1)根据操作,主播终端的html5浏览器获取视频数据和音频数据;

(2)所述的html5浏览器基于webrtc协议,将所述的视频数据和音频数据传输至直播网站的网关服务器。

该基于html5浏览器的视频主播方法中,所述的步骤(1)具体包括以下步骤:

(1-1)根据操作,主播终端利用所述的html5浏览器打开所述直播网站的页面,该页面中包含有调用浏览器端webrtc设施的程序代码;

(1-2)所述的html5浏览器提示获取摄像头画面数据和麦克风声音数据请求;

(1-3)根据操作,所述的html5浏览器从所述的摄像头获取画面数据并从所述麦克风获取声音数据。

该基于html5浏览器的视频主播方法中,包括至少两个所述的主播终端,

所述的步骤(1)为:

(1')根据操作,至少两个所述的主播终端的html5浏览器分别获取对应的视频数据和音频数据,且各所述的主播终端的html5浏览器均播放从其它主播终端获取的视频数据和音频数据。

本发明还提供一种基于html5浏览器的视频直播方法,该方法包括:

利用上述的基于html5浏览器的视频主播方法进行主播;

(3)所述的网关服务器将获取的视频数据和音频数据封装为预设格式的流媒体数据;

(4)所述的网关服务器基于rtmp协议将所述的流媒体数据传输至内容分发网络;

(5)观众端基于http协议从所述的内容分发网络获取所述的流媒体数据并播放。

该基于html5浏览器的视频直播方法中,所述的步骤(5)具体包括以下步骤:

(5-1)观众端利用客户端应用程序或浏览器进入所述的直播网站;

(5-2)所述的客户端应用程序或浏览器基于http协议从所述的内容分发网络获取所述的流媒体数据;

(5-3)所述的客户端应用程序或浏览器将所述的流媒体数据转换为与所述的客户端应用程序或浏览器对应的可播放格式;

(5-4)所述的客户端应用程序或浏览器播放经转换的流媒体数据。

该基于html5浏览器的视频直播方法中,步骤(3)中所述的预设格式为flv格式,所述的步骤(5-3)具体为:所述的客户端应用程序或浏览器基于flv.js程序库将所述的流媒体数据转换为与所述的客户端应用程序或浏览器对应的可播放格式。

该基于html5浏览器的视频直播方法中,包括至少两个所述的主播终端,所述的步骤(3)为:(3')所述的网关服务器将从一个所述的主播终端获取的视频数据和音频数据发送至其与主播终端,并将各所述的主播终端获取的全部视频数据和音频数据封装为一个预设格式的流媒体数据。

本发明还提供一种应用于视频直播的基于html5浏览器的主播终端,该主播终端包括:html5浏览器,用以根据操作,利用该html5浏览器获取视频数据和音频数据;且该html5浏览器基于基于webrtc协议,发送所述的视频数据和音频数据。

该应用于视频直播的基于html5浏览器的主播终端中,所述的html5浏览器还用以打开所述直播网站的页面,该页面中包含有调用浏览器端webrtc设施的程序代码;且所述的html5浏览器提示获取摄像头画面数据和麦克风声音数据请求;所述的主播终端根据操作,利用所述的html5浏览器从所述的摄像头获取画面数据并从所述麦克风获取声音数据。

该应用于视频直播的基于html5浏览器的主播终端中,所述的html5浏览器还用以获取并均播放从其它主播终端获取的视频数据和音频数据。

本发明还提供一种基于html5浏览器的视频直播系统,该系统包括:

上述任一项所述的主播终端;

网关服务器,设置于直播网站,用以获取所述的视频数据和音频数据;并将获取的视频数据和音频数据封装为预设格式的流媒体数据;而后基于rtmp协议发送所述的流媒体数据;

内容分发网络,用以从所述的网关服务器获取所述的流媒体数据,并分发;

观众端,用以基于http协议从所述的内容分发网络获取所述的流媒体数据并播放。

该基于html5浏览器的视频直播系统中,所述的观众端用以利用客户端应用程序或浏览器进入所述的直播网站;利用所述的客户端应用程序或浏览器基于http协议从所述的内容分发网络获取所述的流媒体数据;利用所述的客户端应用程序或浏览器将所述的流媒体数据转换为与所述的客户端应用程序或浏览器对应的可播放格式;并利用所述的客户端应用程序或浏览器播放经转换的流媒体数据。

该基于html5浏览器的视频直播系统中,所述的预设格式为flv格式,所述的客户端应用程序或浏览器将所述的流媒体数据转换为与所述的客户端应用程序或浏览器对应的可播放格式具体为:所述的客户端应用程序或浏览器基于flv.js程序库将所述的流媒体数据转换为与所述的客户端应用程序或浏览器对应的可播放格式。

该基于html5浏览器的视频直播系统中,包括至少两个所述的主播终端,所述的网关服务器用以将从一个所述的主播终端获取的视频数据和音频数据发送至其余主播终端,并将各所述的主播终端获取的全部视频数据和音频数据封装为一个预设格式的流媒体数据。

采用了该发明的基于html5浏览器的视频主播方法、直播方法、主播终端和直播系统,首先,由于其主播方法中,利用浏览器获取主播终端视频、音频数据后基于webrtc协议,将视频、音频数据传输至直播网站的网关服务器;然后网关服务器将视频、音频数据封装为流媒体数据,进而基于rtmp协议传输至内容分发网络;而后观众端从内容分发网络获取流媒体数据并播放。从而实现了主播终端无需安装直播软件,仅需利用浏览器的直播方法,而对于观众端则可方便地利用客户端软件或浏览器观看直播。同时本发明还支持多主播模式。由此搭建了更为方便快捷的网络直播平台,便于用户使用,同时提升直播的使用体验,且发明的基于html5浏览器的视频主播方法、直播方法、主播终端和直播系统,其应用方式简便,应用成本低廉,使用范围也十分广泛。

附图说明

图1为本发明的基于html5浏览器的视频主播方法及直播方法的步骤流程图。

图2为本发明的基于html5浏览器的视频直播系统的(单主播)结构示意图。

图3为本发明的基于html5浏览器的视频直播系统的(双主播)结构示意图。

具体实施方式

为了能够更清楚地理解本发明的技术内容,特举以下实施例详细说明。

请参阅图1所示,为本发明的基于html5浏览器的视频主播方法及直播方法的步骤流程图。

在一种实施方式中,该基于html5浏览器的视频直播方法包括以下步骤:

(1)根据操作,主播终端的html5浏览器获取视频数据和音频数据;

(2)所述的html5浏览器基于webrtc协议,将所述的视频数据和音频数据传输至直播网站的网关服务器;

(3)所述的网关服务器将获取的视频数据和音频数据封装为预设格式的流媒体数据;

(4)所述的网关服务器基于rtmp协议将所述的流媒体数据传输至内容分发网络;

(5)观众端基于http协议从所述的内容分发网络获取所述的流媒体数据并播放。

本发明还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,用以实现上述的实施方式所述的基于html5浏览器的视频直播方法。

本发明还提供一种基于html5浏览器的视频直播系统,用以实现上述的实施方式所述的基于html5浏览器的视频直播方法的系统如图2及图3所示,包括:主播终端、网关服务器、内容分发网络和观众端。

其中,主播终端,具有html5浏览器,用以根据操作,利用该html5浏览器获取视频数据和音频数据;且该html5浏览器基于基于webrtc协议,发送所述的视频数据和音频数据;

网关服务器,设置于直播网站,用以获取所述的视频数据和音频数据;并将获取的视频数据和音频数据封装为预设格式的流媒体数据;而后基于rtmp协议发送所述的流媒体数据;

内容分发网络,用以从所述的网关服务器获取所述的流媒体数据,并分发;

观众端,用以基于http协议从所述的内容分发网络获取所述的流媒体数据并播放。

在优选的实施方式中,所述的步骤(1)具体包括以下步骤:

(1-1)根据操作,主播终端利用所述的html5浏览器打开所述直播网站的页面,该页面中包含有调用浏览器端webrtc设施的程序代码;

(1-2)所述的html5浏览器提示获取摄像头画面数据和麦克风声音数据请求;

(1-3)根据操作,所述的html5浏览器从所述的摄像头获取画面数据并从所述麦克风获取声音数据。

所述的步骤(5)具体包括以下步骤:

(5-1)观众端利用客户端应用程序或浏览器进入所述的直播网站;

(5-2)所述的客户端应用程序或浏览器基于http协议从所述的内容分发网络获取所述的流媒体数据;

(5-3)所述的客户端应用程序或浏览器将所述的流媒体数据转换为与所述的客户端应用程序或浏览器对应的可播放格式;

(5-4)所述的客户端应用程序或浏览器播放经转换的流媒体数据。

本发明还提供用以实现上述优选的实施方式所述的基于html5浏览器的视频直播方法的计算机可读存储介质及基于html5浏览器的视频直播系统。存储于该计算机可读存储介质上的计算机程序被处理器执行时可以实现上述的实施方式所述的基于html5浏览器的视频直播方法。

所述的实现上述优选的实施方式所述的基于html5浏览器的视频直播方法的系统中,所述的主播终端还用以利用所述的html5浏览器打开所述直播网站的页面,该页面中包含有调用浏览器端webrtc设施的程序代码;且所述的html5浏览器提示获取摄像头画面数据和麦克风声音数据请求;所述的主播终端根据操作,利用所述的html5浏览器从所述的摄像头获取画面数据并从所述麦克风获取声音数据。所述的观众端用以利用客户端应用程序或浏览器进入所述的直播网站;利用所述的客户端应用程序或浏览器基于http协议从所述的内容分发网络获取所述的流媒体数据;利用所述的客户端应用程序或浏览器将所述的流媒体数据转换为与所述的客户端应用程序或浏览器对应的可播放格式;并利用所述的客户端应用程序或浏览器播放经转换的流媒体数据。

在进一步优选的实施方式中,所述的预设格式为flv格式,所述的步骤(5-3)具体为:所述的客户端应用程序或浏览器基于flv.js程序库将所述的流媒体数据转换为与所述的客户端应用程序或浏览器对应的可播放格式。

本发明还提供用以实现上述进一步优选的实施方式所述的基于html5浏览器的视频直播方法的计算机可读存储介质及基于html5浏览器的视频直播系统。该系统中,所述的预设格式为flv格式,所述的客户端应用程序或浏览器将所述的流媒体数据转换为与所述的客户端应用程序或浏览器对应的可播放格式具体为:所述的客户端应用程序或浏览器基于flv.js程序库将所述的流媒体数据转换为与所述的客户端应用程序或浏览器对应的可播放格式。

在更优选的实施方式中,包括至少两个所述的主播终端,

则所述的步骤(1)为:

(1')根据操作,至少两个所述的主播终端的html5浏览器分别获取对应的视频数据和音频数据,且各所述的主播终端的html5浏览器均播放从其它主播终端获取的视频数据和音频数据;

相应的,所述的步骤(3)为:

(3')所述的网关服务器将从一个所述的主播终端获取的视频数据和音频数据发送至其与主播终端,并将各所述的主播终端获取的全部视频数据和音频数据封装为一个预设格式的流媒体数据。

在实际应用中,本发明的基于html5浏览器的视频主播方法、直播方法、主播终端和直播系统有图2所示的单主播和和图3所示的多主播两种实现形式。

单主播实现形式主要包括以下步骤:

1、主播进入直播网站的开播页面,页面中包含有调用浏览器端webrtc设施的程序代码。

2、主播开始直播,程序通过webrtc协议连接到直播网站的网关服务器,同时向浏览器请求摄像头画面数据和麦克风声音数据。浏览器弹出提示框提示用户,用户允许之后程序可以获得摄像头画面数据和麦克风数据。这些数据传输到直播网站的网关服务器上。

3、网关服务器将视频(摄像头画面)数据和音频(麦克风声音)数据封装进flv格式的流媒体,以rtmp协议推入现有的流媒体内容分发网络。

4、观众进入直播网站,浏览器通过http协议从cdn获取flv格式的媒体流,通过flv.js程序库转为浏览器能识别的格式,开始播放。

多主播(以两个主播为例)实现形式主要包括以下步骤:

1、两个主播分别进入直播网站的开播页面,页面中包含调用浏览器端webrtc设施的程序代码。

2、程序向服务器通知两个主播即将进行连麦。

3、两个主播都开始直播,程序通过webrtc协议连接到直播网站的网关服务器并向其推送麦克风和摄像头画面数据。(同单主播)

4、网关服务器将a主播的画面和声音推送给b主播,并将b主播的画面和声音推送给a主播,同时对a、b主播的画面和声音都进行解码,将视频拼接为一个大的视频,并将声音混音在一起(或一左一右拼接成立体声音频,均可)。

5、此时主播a能看到主播b的画面、听到主播b的声音,主播b可以看到主播a的画面、听到主播a的声音。

6、在网关上,拼接后的画面和混音(拼接)后的声音编码之后,封装为flv,通过rtmp协议推入现有的流媒体内容分发网络。

7、观众进入直播网站,浏览器通过http协议从cdn获取flv格式的媒体流,通过flv.js程序库转为浏览器能识别的格式,开始播放。

更多主播的实现形式与上述两个主播类似。

本发明的目的是结合现有的webrtc、rtmp协议和多媒体内容分发网络技术,在尽可能复用现有设施的前提下,连接webrtc和多媒体内容分发网络,达到主播直接通过浏览器进行直播活动的目的。

其中,多媒体内容分发网络:内容分发网络(cdn)由地理位置意义上的分布式代理服务器和数据中心组成,向最终用户提供高可用性和高性能的服务。现代cdn已经由以往的提供静态内容,发展为支持流媒体内容分发,各cdn提供商已经支持rtmp协议的流媒体传输,并通过http协议向浏览器提供多媒体流,同时也以hls形式向移动端提供多媒体流。

flv.js是一个github上哔哩哔哩发布的开放源代码程序库,它可以让浏览器直接播放flv形式的多媒体流。flv形式的多媒体流的播放延迟要远远小于浏览器现有的能直接支持的hls流。

与现有技术相比,本发明有以下特点:

1、利用浏览器端的webrtc设施做非p2p的流媒体传输,主播和用户端都只是用html5浏览器,更为便利。

2、连接webrtc网络和rtmp网络的网关服务器。

3、透传并合并两路webrtc的p2p流的连麦网关服务器。

本发明的优点在于:

1、可以直接复用现有的内容分发网络服务,基础设置不需要大规模修改,即可直接获得与现在成熟的设施相同的负载能力。即:现有内容分发网络系统升级容易。

2、基于html5这样的高抽象层构建主播终端服务,核心代码跨平台使用,甚至能兼容目前还未出现的平台。浏览器通常会有高效的硬件编解码实现,对能耗友好。即:跨平台能力强、效率高。

3、由网关服务器充当peer(模拟webrtc中的视频聊天,即实现网关服务器和主播之间的视频聊天),连接建立过程中不需要使用stun、turn、ice等服务,连接成功率高、额外开销少。即:开播成功率高。

4、webrtc的应用场景中常有对延迟的高要求,故基于现有框架进行二次开发时能直接利用这些特性。即:实时性好。

5、webrtc的应用场景为双向通信,这种模式为构建主播连麦功能的开发提供了很大便利。

6、近些年来浏览器技术和ecmascript编程语言发展迅猛,随着webgl等技术的引入,这种直播方法会有越来越多功能。即:未来发展前景好。

7、系统集成容易。因为兼容现有内容分发网络,在商业合作的时候,对合作方的现有系统几乎没有特殊要求。即:不影响未来需要系统集成的商业合作。

8、使用flv封装格式来传输多媒体流,依赖flv.js实现html5浏览器里的直接播放。拥有远胜于hls协议的延迟控制能力。

采用了该发明的基于html5浏览器的视频主播方法、直播方法、主播终端和直播系统,首先,由于其主播方法中,利用浏览器获取主播终端视频、音频数据后基于webrtc协议,将视频、音频数据传输至直播网站的网关服务器;然后网关服务器将视频、音频数据封装为流媒体数据,进而基于rtmp协议传输至内容分发网络;而后观众端从内容分发网络获取流媒体数据并播放。从而实现了主播终端无需安装直播软件,仅需利用浏览器的直播方法,而对于观众端则可方便地利用客户端软件或浏览器观看直播。同时本发明还支持多主播模式。由此搭建了更为方便快捷的网络直播平台,便于用户使用,同时提升直播的使用体验,且发明的基于html5浏览器的视频主播方法、直播方法、主播终端和直播系统,其应用方式简便,应用成本低廉,使用范围也十分广泛。

在此说明书中,本发明已参照其特定的实施例作了描述。但是,很显然仍可以作出各种修改和变换而不背离本发明的精神和范围。因此,说明书和附图应被认为是说明性的而非限制性的。

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