CN112073423A - 基于WebRTC进行浏览器推流的方法及系统 - Google Patents

基于WebRTC进行浏览器推流的方法及系统 Download PDF

Info

Publication number
CN112073423A
CN112073423A CN202010968089.6A CN202010968089A CN112073423A CN 112073423 A CN112073423 A CN 112073423A CN 202010968089 A CN202010968089 A CN 202010968089A CN 112073423 A CN112073423 A CN 112073423A
Authority
CN
China
Prior art keywords
server
webrtc
information
browser
streaming media
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202010968089.6A
Other languages
English (en)
Inventor
曹海旺
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Ergeng Network Technology Co ltd
Original Assignee
Hangzhou Ergeng Network Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou Ergeng Network Technology Co ltd filed Critical Hangzhou Ergeng Network Technology Co ltd
Priority to CN202010968089.6A priority Critical patent/CN112073423A/zh
Publication of CN112073423A publication Critical patent/CN112073423A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/65Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/2187Live feed
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明公开一种基于WebRTC进行浏览器推流的方法及系统,方法包括以下步骤:响应于WebRTC服务器接收到待推流的流媒体的触发信号,获取待推流的音视频流媒体信息,其中,待推流的流媒体由采集端浏览器产生;基于WebRTC服务器与采集端浏览器,根据SDP信息进行媒体协商的结果选择推流的客户端与服务端,确定推流的服务端;将所述音视频流媒体信息根据接收端流媒体服务器所需的格式进行转码处理以及行协议封装;将封装好的音视频流媒体信息通过推流的服务端发送到接收端流媒体服务器中。基于本发明的方法,不需要第三方插件和flash就可以进行网页推流直播的方法;利用浏览器支持的WebRTC标准,经过引入WebRTC服务器,即可进行直播。

Description

基于WebRTC进行浏览器推流的方法及系统
技术领域
本发明涉及直播技术领域,尤其涉及一种基于WebRTC进行浏览器推流的方法及系统。
背景技术
随着移动互联网以及通信技术的发展,音视频流媒体逐渐成为新的信息载体,同时实时流媒体传输(直播)成为一种流行的信息传播工具,可以通过移动终端设备观看直播视频获取信息。但是,目前一般都是借助于网络视频采集端进行实时音视频传输,在传输过程中,客户端程序采集摄像头视频、音频数据,及屏幕等数据,通过客户端软件将数据进行视频编码,推流到流媒体服务器,视频观看端通过浏览器或者客户端从服务器拉取视频或者拉流进行观看。
在现有技术中,对于视频采集端来讲,需要下载、安装客户端软件,才能进行直播推流操作;同时,视频采集端需要熟练掌握客户端的使用操作,直播过程往往比较繁琐,在实际的操作过程中可能需要专人或者团队对直播过程进行指导或者引导。
目前客户端通过RTMP、RTSP协议进行流媒体的推流,直播客户端的开发就比较繁琐,要适配不同的主流操作系统(MacOS、Windows、Linux、IOS、Android等主流操作系统),每次如果有新的功能添加、多个平台都要进行开发,用户侧也需要进行升级更新。总体来说,对于视频采集端和视频观看端都比较繁琐。
随着技术的发展,浏览器端RTP通讯也有了很大进展,出现了WebRTC协议标准。WebRTC提供了流媒体处理的核心技术,包括音视频的采集、编解码、网络传输、渲染、音视频加密传输等功能,并且还能支持跨平台,这些平台包括Windows、Linux、Mac、Android以及IOS。
但是,基于WebRTC标准是建立浏览器之间点对点(Peer-to-Peer)的连接,如果在一个人直播多人观看的场景下,虽然视频采集端浏览器和视频观看端浏览器之间可以建立1对多的点对点连接(图1),但是点对点的连接无论在网络压力还是浏览器处理压力都是很大的,无法大规模的应用,并且无法利用CDN的分发能力达到分流的效果。
由此可见,传统的客户端推流和直接利用WebRTC通讯都有很大的不足之处,难以保证大规模的分发。
发明内容
本发明针对现有技术中的缺点,提供了一种基于WebRTC进行浏览器推流的方法及系统。
为了解决上述技术问题,本发明通过下述技术方案得以解决:
一种基于WebRTC进行浏览器推流的方法,包括以下步骤:
响应于WebRTC服务器接收到待推流的流媒体的触发信号,获取待推流的音视频流媒体信息,其中,待推流的流媒体由采集端浏览器产生;
基于WebRTC服务器与采集端浏览器,根据SDP信息进行媒体协商的结果选择推流的客户端与服务端,确定推流的服务端;
将所述音视频流媒体信息根据接收端流媒体服务器所需的格式进行转码处理以及行协议封装;
将封装好的音视频流媒体信息通过推流的服务端发送到接收端流媒体服务器中。
作为一种可实施方式,在所述转码处理之前,还包括以下步骤:
调用WebRTC协议的音视频SINK接口,获取接收端流媒体服务器中相应的协议,进而得到接收端流媒体服务器所需的格式。
作为一种可实施方式,所述待推流的音视频轨信息是采集端浏览器通过浏览器API获取到的,所述音视频轨信息包括音视频数据和屏幕信息。
作为一种可实施方式,还包括以下步骤:
通过信令服务器获取SDP信息和candidate信息并使得在采集端浏览器和WebRtc服务器之间进行传输,以完成PeerConnection的初始化。
作为一种可实施方式,所述完成PeerConnection初始化步骤的过程中,还包括:
获取candidate信息,所述candidate信息是采集端浏览器和WebRtc服务器是通过STUN服务器和TURN服务器获得的。
一种基于WebRTC进行浏览器推流的系统,包括信息获取模块、协商选择模块、转码封装模块和信息发送模块;
所述信息获取模块,用于响应于WebRTC服务器接收到待推流的流媒体的触发信号,获取待推流的音视频流媒体信息,其中,待推流的流媒体由采集端浏览器产生;
所述协商选择模块,用于基于WebRTC服务器与采集端浏览器根据SDP信息进行媒体协商的结果选择推流的客户端与服务端,确定推流的服务端;
所述转码封装模块,用于将所述音视频流媒体信息根据接收端流媒体服务器所需的格式进行转码处理以及行协议封装;
所述信息发送模块,用于将封装好的音视频流媒体信息通过推流的服务端发送到接收端流媒体服务器中。
作为一种可实施方式,还包括接口调用模块,所述接口调用模块用于调用WebRTC协议的音视频SINK接口,获取接收端流媒体服务器中相应的协议,进而得到接收端流媒体服务器所需的格式。
作为一种可实施方式,还包括初始化模块,所述初始化模块用于:通过信令服务器获取SDP信息和candidate信息并使得在采集端浏览器和WebRtc服务器之间进行传输,以完成PeerConnection的初始化。
一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现以下的方法步骤:
响应于WebRTC服务器接收到待推流的流媒体的触发信号,获取待推流的音视频流媒体信息,其中,待推流的流媒体由采集端浏览器产生;
基于WebRTC服务器与采集端浏览器,根据SDP信息进行媒体协商的结果选择推流的客户端与服务端,确定推流的服务端;
将所述音视频流媒体信息根据接收端流媒体服务器所需的格式进行转码处理以及行协议封装;
将封装好的音视频流媒体信息通过推流的服务端发送到接收端流媒体服务器中。
一种基于WebRTC进行浏览器推流的装置,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下所述的方法步骤:
响应于WebRTC服务器接收到待推流的流媒体的触发信号,获取待推流的音视频流媒体信息,其中,待推流的流媒体由采集端浏览器产生;
基于WebRTC服务器与采集端浏览器,根据SDP信息进行媒体协商的结果选择推流的客户端与服务端,确定推流的服务端;
将所述音视频流媒体信息根据接收端流媒体服务器所需的格式进行转码处理以及行协议封装;
将封装好的音视频流媒体信息通过推流的服务端发送到接收端流媒体服务器中。
本发明由于采用了以上技术方案,具有显著的技术效果:
基于本发明的方法,不需要第三方插件和flash就可以进行网页推流直播的方法;
利用浏览器支持的WebRTC标准,经过WebRTC服务器改造,即可进行直播;
对于视频采集端和视频观看端均不需要客户端和插件即可进行直播和观看还可大规模分发;
另外,WebRTC协议因其自身在媒体传输方面低延迟、画面平滑性、媒体质量高等方面都有不错的设计实现,保证了本方法在时延、平滑以及视频质量方面都有保证。还可用于有实时新视频采集和分发的场景中。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是现有技术中推流的整体结构示意图;
图2是本发明方法的整体流程示意图;
图3是本发明方法和系统所涉及到的装置的示意图;
图4是本发明系统的整体结构示意图;
图5是本发明方法的具体传输方式示意图。
具体实施方式
下面结合实施例对本发明做进一步的详细说明,以下实施例是对本发明的解释而本发明并不局限于以下实施例。
在现有技术中,直播的时候,对于视频采集端来讲,需要下载、安装客户端软件,才能进行直播推流操作,如果不下载相应的客户端是不能进行直播的;并且,视频采集端需要熟练掌握客户端的使用操作,直播过程往往比较繁琐,在实际的操作过程中可能需要专人或者团队对直播过程进行指导或者引导。
因此,就诞生了WebRTC协议标准,WebRTC提供了流媒体处理的核心技术,包括音视频的采集、编解码、网络传输、渲染、音视频加密传输等功能,并且还能支持跨平台,这些平台包括Windows、Linux、Mac、Android以及IOS。然而,基于WebRTC标准是建立浏览器之间点对点的连接,如果在一个人直播多人观看的场景下,虽然视频采集端浏览器和视频观看端浏览器之间可以建立1对多的点对点连接,但是点对点的连接无论在网络压力还是浏览器处理压力都是很大的,无法大规模的应用,并且无法利用CDN的分发能力达到分流的效果。因此,本发明就研发了一种基于WebRTC进行浏览器推流的方法,这种推流方法是基于采集端浏览器、信令服务器、WebRTC服务器以及流媒体服务器,如图3所示,流媒体服务器是在推流时和推流之后进行观看的时候发挥作用的,而本发明重点就在于基于WebRTC进行浏览器如何进行推流的。
实施例1:
一种基于WebRTC进行浏览器推流的方法,如图2所示,包括以下步骤:
S100、响应于WebRTC服务器接收到待推流的流媒体的触发信号,获取待推流的音视频流媒体信息,其中,待推流的流媒体由采集端浏览器产生;
S200、基于WebRTC服务器与采集端浏览器,根据SDP信息进行媒体协商的结果选择推流的客户端与服务端,确定推流的服务端;
S300、将所述音视频流媒体信息根据接收端流媒体服务器所需的格式进行转码处理以及行协议封装;
S400、将封装好的音视频流媒体信息通过推流的服务端发送到接收端流媒体服务器中。
在一个实施例中,步骤S300和S400具体的过程如下:
WebRTC服务器接收所述流媒体,实现并调用WEBRTC协议的音视频SINK接口,根据流媒体服务器所需格式进行音视频转码处理,将音视频流处理为符合流媒体服务器所需的协议,并基于流媒体服务器的协议将流媒体发布到流媒体服务器中。WebRTC服务器还可以对媒体进行转码、录制、计算等操作;流媒体服务器可以对流媒体进行CDN网络的分发,达到大规模的用户观看效果。相应的,观看端服务器或者支持协议的客户端可以通过访问流媒体服务器观看实时视频。
在步骤S300之前,在所述转码处理之前,还包括以下步骤:
调用WebRTC协议的音视频SINK接口,获取接收端流媒体服务器中相应的协议,进而得到接收端流媒体服务器所需的格式。
另外,在一个实施例中,所述待推流的音视频轨信息是采集端浏览器通过浏览器API获取到的,所述音视频轨信息包括音视频数据和屏幕信息。
具体地,在一个实施例中,还包括以下步骤:
通过信令服务器获取SDP信息和candidate信息并使得在采集端浏览器和WebRtc服务器之间进行传输,以完成PeerConnection的初始化。
具体的初始化过程可以分解为第一初始化过程和第二初始化过程,第一初始化过程可以参见以下步骤:
采集端浏览器响应于接收到准备就绪请求,将RTCPeerConnection初始化,并将音视频轨信息设置到RTCPeerConnection中,获取并设置本地SDP信息,将本地SDP信息发送至信令服务器中;
信令服务器接收到本地SDP信息后,将本地SDP信息发送至WebRTC服务器内;
WebRTC服务器获取本地SDP信息后,将本地SDP信息通过SDP应答指令发送到所述信令服务器;
信令服务器接收并转发SDP应答指令将本地SDP信息发送至所述采集端浏览器。
在整个发明中,所述音视频轨信息是采集端浏览器通过浏览器API获取到的,所述音视频轨信息包括音视频数据和屏幕信息。音视频轨信息最终就是流媒体服务器传输的流媒体信息,另外还会获取到采集端浏览器的自身状态和其它数据,例如用户元数据(用户标识等)通过WebSocket协议或者SSE(Server-Sent Events)协议。
获取音视频信息后还包括以下步骤,此步骤可以称之为第二初始化过程,具体如下:
响应于接收到WebRTC服务器就绪请求,信令服务器发送初始化请求至WebRTC服务器;
WebRTC服务器基于初始化请求对WebRTC协议进行初始化处理,初始化完成向信令服务器发送初始化完成请求,其中,初始化处理包括对PeerConnection进行初始化,获取本地SDP信息,将本地SDP信息设置到LocalDescription中;
信令服务器基于接收到的初始化完成请求,发送准备就绪请求至采集端浏览器。
另外,初始化还包括以下步骤:
响应于接收到信令服务器发送的SDP应答请求,采集端浏览器取出本地SDP信息并将本地SDP信息设置到PeerConnection中,并设置为LocalDescrition,通过STUN服务器、TURN服务器获取到candidate信息,将candidate信息发送到信令服务器,信令服务器将所述candidate信息转发至WebRTC服务器;
WebRTC服务器取出candidate信息,并将candidate信息设置到PeerConnection中,将candidate信息发送到信令服务器,并转发至采集端浏览器;
采集端浏览器取出candidate信息,并将candidate信息设置到RTCPeerConnection中。
基于本发明以上实施例公开的方法,不需要第三方插件和flash就可以进行网页推流直播的方法;利用浏览器支持的WebRTC标准,经过WebRTC服务器改造,即可进行直播。
整个过程中,采集端浏览器可以概括的讲是用于采集音视频数据以及进行WebRTC协议通信;信令服务器是用于采集端浏览器和WebRTC服务器进行信息交互的。WebRTC服务器是用于和采集端浏览器进行WebRTC协议交互。另外,在整个过程中,如果采集端浏览器和WebRTC服务器在防火墙后,则需要借助STUN服务器、TURN服务器,STUN服务器、TURN服务器用于私网穿越和媒体流中继。另外,本发明执行的主体不限于在电脑上,在手机或者其他移动设置也是可以执行的。
本发明在信息传输中会涉及到以下的信令,通过这些信令来完成各个步骤之间的请求与应答,涉及到的信令有:
CLIENT_READY:浏览器发送至采集端浏览器的信令,告知采集端浏览器准备就绪;
INIT_CLIENT:信令服务器发送至WebRTC Client器的信令,告知WebRTC Client进行初始化;
CLIENT_INIT_OK:WebRTC服务器发送至信令服务器端的信令,告知信令服务器WebRTC Client协议准备就绪;
SERVER_READY:信令服务器发送至采集端浏览器的信令,告知采集端浏览器就绪;
OFFER_SDP:采集端浏览器的发送至信令服务器信令,采集端浏览器的将自身SDP信息发送到信令服务器;
ANSWER_SDP:WebRTC服务器将自身SDP信息发送至信令服务器。
BROSWER_ICE_CANDIDATE:采集端浏览器的将自身candidate信息发送至信令服务器;
SERVER_ICE_CANDIDATE:WebRTC服务器将自身candidate信息发送至信令服务器。
结合附图5以及本发明的方法在每个步骤中涉及到的明确的信令,本发明完整的过程可以被描述成以下过程:
1、采集端浏览器通过浏览器API获取到的,所述音视频轨信息包括音视频数据和屏幕信息。另外还会获取到采集端浏览器的自身状态和其它数据,例如用户元数据(用户标识等)通过WebSocket协议或者SSE(Server-Sent Events)协议,采集端浏览器已经就绪CLIENT_READY信令;
2、信令服务器收到CLIENT_READY信令,知道采集端浏览器已经准备就绪,发送INIT_CLIENT信令到WebRTC服务器,告知其初始化WebRTC协议;
3、WebRTC服务器收到INIT_CLIENT信令,进行WebRTC协议的初始化,包括初始化PeerConnection,获取本地SDP,并设置该SDP到PeerConnection的LocalDescription,初始化完成后发送CLIENT_INIT_OK信令服务器,告知自身已经初始化完毕;
4、信令服务器收到CLIENT_INIT_OK信令后,知道WebRTC服务器初始化完毕,发送SERVER_READY信令到浏览器,告知采集端浏览器准备完毕;
5、采集端浏览器收到SERVER_READY信令,获知WebRTC服务器已经准备就绪,调用API进行初始化RTCPeerConnection,并通过addTrack设置音视频轨信息到RTCPeerConnection,采集端浏览器调用API获取并设置本地SDP,并发送OFFER_SDP信令,将本地SDP信息发送至信令服务器;
6、信令服务器收到OFFER_SDP信令后,将OFFER_SDP信令转发到WebRTC服务器;
7、WebRTC服务器服务器收到OFFER_SDP信令后,获取SDP信息,并将SDP设置到步骤3中已经初始化的PeerConnection中,将该SDP设置为RemoteDescription,然后将步骤3步骤中获取到的SDP信息通过ANSWER_SDP信令发送到信令服务器;
8、信令服务器收到ANSWER_SDP信令后,将该信令转发至采集端浏览器;
9、采集端浏览器收到ANSWER_SDP信令后,取出SDP信息,设置该SDP到步骤5中已经初始化的RTCPeerConnection中,将其设置为RemoteDescription;
10、采集端浏览器通过STUN、TURN服务器获取到candidate信息后,将candidate信息通过BROSWER_ICE_CANDIDATE信令发送到信令服务器,信令服务器将该信令转发至WebRTC服务器;
11、WebRTC服务器通过STUN、TURN服务器获取到candidate信息后,通过SERVER_ICE_CANDIDATE信令发送到信令服务器,信令服务器将其转发至采集端浏览器;
12、WebRTC服务器收到BROSWER_ICE_CANDIDATE后取出candidate信息,将其设置到PeerConnection中;
13、采集端采集端浏览器收到SERVER_ICE_CANDIDATE后取出candidate信息,将其设置到RTCPeerConnection中;
14、采集端浏览器和WebRTC服务器根据本地SDP信息进行媒体协商,包括谁是服务端谁是客户端等,然后进行流媒体传输。
15、WebRTC服务器在收到流媒体后,根据流媒体服务器的协议(RTSP或RTMP等)将流媒体发布到流媒体服务器。另外,WebRTC服务器还可以完成媒体流的录制转码等操作,在此不再赘述;
16、观看端浏览器访问流媒体服务器,通过HTML VIDEO标签渲染视频,观看流媒体音视频。
实施例2:
一种基于WebRTC进行浏览器推流的系统,如图4所示,包括信息获取模块100、协商选择模块200、转码封装模块300和信息发送模块400;
所述信息获取模块100,用于响应于WebRTC服务器接收到待推流的流媒体的触发信号,获取待推流的音视频流媒体信息,其中,待推流的流媒体由采集端浏览器产生;
所述协商选择模块200,用于基于WebRTC服务器与采集端浏览器根据SDP信息进行媒体协商的结果选择推流的客户端与服务端,确定推流的服务端;
所述转码封装模块300,用于将所述音视频流媒体信息根据接收端流媒体服务器所需的格式进行转码处理以及行协议封装;
所述信息发送模块400,用于将封装好的音视频流媒体信息通过推流的服务端发送到接收端流媒体服务器中。
还包括接口调用模块500,所述接口调用模块500用于调用WebRTC协议的音视频SINK接口,获取接收端流媒体服务器中相应的协议,进而得到接收端流媒体服务器所需的格式。
还包括初始化模块600,所述初始化模块600用于:通过信令服务器获取SDP信息和candidate信息并使得在采集端浏览器和WebRtc服务器之间进行传输,以完成PeerConnection的初始化。
所述信息获取模块100,用于所述待推流的音视频轨信息是采集端浏览器通过浏览器API获取到的,所述音视频轨信息包括音视频数据和屏幕信息。
所述初始化模块600用于:获取candidate信息,所述candidate信息是采集端浏览器和WebRtc服务器是通过STUN服务器和TURN服务器获得的。
实施例3:
一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现以下的方法步骤:
响应于WebRTC服务器接收到待推流的流媒体的触发信号,获取待推流的音视频流媒体信息,其中,待推流的流媒体由采集端浏览器产生;
基于WebRTC服务器与采集端浏览器,根据SDP信息进行媒体协商的结果选择推流的客户端与服务端,确定推流的服务端;
将所述音视频流媒体信息根据接收端流媒体服务器所需的格式进行转码处理以及行协议封装;
将封装好的音视频流媒体信息通过推流的服务端发送到接收端流媒体服务器中。
处理器执行计算机程序时,实现所述转码处理之前,还包括以下步骤:
调用WebRTC协议的音视频SINK接口,获取接收端流媒体服务器中相应的协议,进而得到接收端流媒体服务器所需的格式。
处理器执行计算机程序时,实现所述待推流的音视频轨信息是采集端浏览器通过浏览器API获取到的,所述音视频轨信息包括音视频数据和屏幕信息。
处理器执行计算机程序时,实现以下步骤:
通过信令服务器获取SDP信息和candidate信息并使得在采集端浏览器和WebRtc服务器之间进行传输,以完成PeerConnection的初始化。
处理器执行计算机程序时,实现所述完成PeerConnection初始化步骤的过程中,还包括:
获取candidate信息,所述candidate信息是采集端浏览器和WebRtc服务器是通过STUN服务器和TURN服务器获得的。
实施例4:
在一个实施例中,提供了一种基于WebRTC进行浏览器推流的装置,该基于WebRTC进行浏览器推流的装置可以是服务器也可以是移动终端。该基于WebRTC进行浏览器推流的装置包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该基于WebRTC进行浏览器推流的装置的处理器用于提供计算和控制能力。该基于WebRTC进行浏览器推流的装置的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该数据库用于存储基于WebRTC进行浏览器推流的装置的所有数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现基于WebRTC进行浏览器推流的方法。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明的实施例可提供为方法、装置、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
需要说明的是:
说明书中提到的“一个实施例”或“实施例”意指结合实施例描述的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,说明书通篇各个地方出现的短语“一个实施例”或“实施例”并不一定均指同一个实施例。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。此外,需要说明的是,本说明书中所描述的具体实施例,其零、部件的形状、所取名称等可以不同。凡依本发明专利构思所述的构造、特征及原理所做的等效或简单变化,均包括于本发明专利的保护范围内。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,只要不偏离本发明的结构或者超越本权利要求书所定义的范围,均应属于本发明的保护范围。

Claims (10)

1.一种基于WebRTC进行浏览器推流的方法,其特征在于,包括以下步骤:
响应于WebRTC服务器接收到待推流的流媒体的触发信号,获取待推流的音视频流媒体信息,其中,待推流的流媒体由采集端浏览器产生;
基于WebRTC服务器与采集端浏览器,根据SDP信息进行媒体协商的结果选择推流的客户端与服务端,确定推流的服务端;
将所述音视频流媒体信息根据接收端流媒体服务器所需的格式进行转码处理以及行协议封装;
将封装好的音视频流媒体信息通过推流的服务端发送到接收端流媒体服务器中。
2.根据权利要求1所述的基于WebRTC进行浏览器推流的方法,其特征在于,在所述转码处理之前,还包括以下步骤:
调用WebRTC协议的音视频SINK接口,获取接收端流媒体服务器中相应的协议,进而得到接收端流媒体服务器所需的格式。
3.根据权利要求1所述的基于WebRTC进行浏览器推流的方法,其特征在于,所述待推流的音视频轨信息是采集端浏览器通过浏览器API获取到的,所述音视频轨信息包括音视频数据和屏幕信息。
4.根据权利要求1所述的基于WebRTC进行浏览器推流的方法,其特征在于,还包括以下步骤:
通过信令服务器获取SDP信息和candidate信息并使得在采集端浏览器和WebRtc服务器之间进行传输,以完成PeerConnection的初始化。
5.根据权利要求4所述的基于WebRTC进行浏览器推流的方法,其特征在于,所述完成PeerConnection初始化步骤的过程中,还包括:
获取candidate信息,所述candidate信息是采集端浏览器和WebRtc服务器是通过STUN服务器和TURN服务器获得的。
6.一种基于WebRTC进行浏览器推流的系统,其特征在于,包括信息获取模块、协商选择模块、转码封装模块和信息发送模块;
所述信息获取模块,用于响应于WebRTC服务器接收到待推流的流媒体的触发信号,获取待推流的音视频流媒体信息,其中,待推流的流媒体由采集端浏览器产生;
所述协商选择模块,用于基于WebRTC服务器与采集端浏览器根据SDP信息进行媒体协商的结果选择推流的客户端与服务端,确定推流的服务端;
所述转码封装模块,用于将所述音视频流媒体信息根据接收端流媒体服务器所需的格式进行转码处理以及行协议封装;
所述信息发送模块,用于将封装好的音视频流媒体信息通过推流的服务端发送到接收端流媒体服务器中。
7.根据权利要求6所述的基于WebRTC进行浏览器推流的系统,其特征在于,还包括接口调用模块,所述接口调用模块用于调用WebRTC协议的音视频SINK接口,获取接收端流媒体服务器中相应的协议,进而得到接收端流媒体服务器所需的格式。
8.根据权利要求6所述的基于WebRTC进行浏览器推流的系统,其特征在于,还包括初始化模块,所述初始化模块用于:通过信令服务器获取SDP信息和candidate信息并使得在采集端浏览器和WebRtc服务器之间进行传输,以完成PeerConnection的初始化。
9.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任意一项所述的方法步骤。
10.一种基于WebRTC进行浏览器推流的装置,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5任意一项所述的方法步骤。
CN202010968089.6A 2020-09-15 2020-09-15 基于WebRTC进行浏览器推流的方法及系统 Pending CN112073423A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010968089.6A CN112073423A (zh) 2020-09-15 2020-09-15 基于WebRTC进行浏览器推流的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010968089.6A CN112073423A (zh) 2020-09-15 2020-09-15 基于WebRTC进行浏览器推流的方法及系统

Publications (1)

Publication Number Publication Date
CN112073423A true CN112073423A (zh) 2020-12-11

Family

ID=73695270

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010968089.6A Pending CN112073423A (zh) 2020-09-15 2020-09-15 基于WebRTC进行浏览器推流的方法及系统

Country Status (1)

Country Link
CN (1) CN112073423A (zh)

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112714131A (zh) * 2020-12-31 2021-04-27 北京大米科技有限公司 一种跨平台连麦的方法、装置、存储介质及电子设备
CN112839192A (zh) * 2021-01-20 2021-05-25 青岛以萨数据技术有限公司 基于浏览器的音视频通讯系统及方法
CN113132376A (zh) * 2021-04-14 2021-07-16 腾讯科技(深圳)有限公司 媒体数据处理方法及装置、系统、电子设备和存储介质
CN113285931A (zh) * 2021-05-12 2021-08-20 阿波罗智联(北京)科技有限公司 流媒体的传输方法、流媒体服务器及流媒体系统
CN113345286A (zh) * 2021-08-03 2021-09-03 南京大经中医药信息技术有限公司 一种融合了ai技术和视频技术的师承教学系统及方法
CN113613032A (zh) * 2021-08-04 2021-11-05 杭州梦视网络科技有限公司 一种嵌入式远程教学实验系统的视频传输方法
CN113612956A (zh) * 2021-06-28 2021-11-05 武汉众智数字技术有限公司 一种基于WebRTC的录像存储和回放的系统和方法
CN113691822A (zh) * 2021-08-04 2021-11-23 江苏怀业信息技术股份有限公司 一种WebRTC Simulcast的自适应调节方法和装置
CN113691526A (zh) * 2021-08-23 2021-11-23 深圳市商汤科技有限公司 基于WebRTC的推流方法、装置、系统、设备和介质
CN113709581A (zh) * 2021-08-26 2021-11-26 芝麻链(北京)科技有限公司 一种音视频实时传输的系统、方法、装置及电子设备
CN114025244A (zh) * 2021-10-08 2022-02-08 中移(杭州)信息技术有限公司 音视频推送方法、装置、设备及计算机可读存储介质
CN114189721A (zh) * 2021-12-10 2022-03-15 国网江苏省电力有限公司检修分公司 一种用于换流站的视频流转发系统及方法
CN114205637A (zh) * 2021-12-16 2022-03-18 杭州雅顾科技有限公司 一种白板和音视频同步方法、装置、设备及存储介质
CN114222149A (zh) * 2021-11-17 2022-03-22 武汉斗鱼鱼乐网络科技有限公司 一种推流方法、装置、介质及计算机设备
CN114268612A (zh) * 2021-12-22 2022-04-01 中电福富信息科技有限公司 一种基于WebSocket的网页实时语音通信方法
CN114495639A (zh) * 2022-02-16 2022-05-13 深圳品阔信息技术有限公司 一种低延迟的钢琴教学用实时互动系统
CN114844870A (zh) * 2022-03-25 2022-08-02 阿里巴巴(中国)有限公司 一种媒体流获取方法、装置、电子设备及存储介质
CN115955593A (zh) * 2022-12-15 2023-04-11 九识(苏州)智能科技有限公司 一种无人车的监控视频回放系统、方法及存储介质
CN116980555A (zh) * 2023-06-12 2023-10-31 北京医百科技有限公司 输入信号源的采集方法和系统
CN117119216A (zh) * 2023-10-25 2023-11-24 北京奇点智播科技有限公司 一种直播解说的方法、系统以及直播系统的使用方法
CN117544632A (zh) * 2024-01-10 2024-02-09 城云科技(中国)有限公司 多终端中浏览器页面直接交互的方法、系统及其应用
WO2024051518A1 (zh) * 2022-09-07 2024-03-14 抖音视界有限公司 直播方法、装置、电子设备以及存储介质

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150180825A1 (en) * 2013-12-20 2015-06-25 Futurewei Technologies Inc. METHOD OF IMS (SIP NETWORK) webRTC OPTIMIZED P2P COMMUNICATION
CN106303430A (zh) * 2016-08-21 2017-01-04 贵州大学 浏览器中无插件播放实时监控的方法
CN106506632A (zh) * 2016-10-27 2017-03-15 上海幻电信息科技有限公司 一种基于html5浏览器的音视频直播方法
CN106850399A (zh) * 2016-12-30 2017-06-13 深圳市潮流网络技术有限公司 一种基于WebRTC技术即时消息的通信方法
CN107707533A (zh) * 2017-09-18 2018-02-16 深圳市迅雷网文化有限公司 基于Web的连麦方法、系统及存储介质
CN107809683A (zh) * 2017-11-22 2018-03-16 广东电网有限责任公司教育培训评价中心 一种基于浏览器无插件的直播系统及方法
CN107995187A (zh) * 2017-11-30 2018-05-04 上海哔哩哔哩科技有限公司 基于html5浏览器的视频主播、直播方法、终端和系统
KR20180071698A (ko) * 2016-12-20 2018-06-28 에스케이텔레콤 주식회사 시그널링 서버장치 및 그 구동방법
CN108809924A (zh) * 2017-05-02 2018-11-13 韩华泰科株式会社 执行网络实时通信的方法和装置
CN111147506A (zh) * 2019-12-30 2020-05-12 武汉兴图新科电子股份有限公司 一种基于html5播放流媒体数据的方法、系统及存储设备
CN111479121A (zh) * 2020-04-08 2020-07-31 北京智能工场科技有限公司 一种基于流媒体服务器的直播方法及系统

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150180825A1 (en) * 2013-12-20 2015-06-25 Futurewei Technologies Inc. METHOD OF IMS (SIP NETWORK) webRTC OPTIMIZED P2P COMMUNICATION
CN106303430A (zh) * 2016-08-21 2017-01-04 贵州大学 浏览器中无插件播放实时监控的方法
CN106506632A (zh) * 2016-10-27 2017-03-15 上海幻电信息科技有限公司 一种基于html5浏览器的音视频直播方法
KR20180071698A (ko) * 2016-12-20 2018-06-28 에스케이텔레콤 주식회사 시그널링 서버장치 및 그 구동방법
CN106850399A (zh) * 2016-12-30 2017-06-13 深圳市潮流网络技术有限公司 一种基于WebRTC技术即时消息的通信方法
CN108809924A (zh) * 2017-05-02 2018-11-13 韩华泰科株式会社 执行网络实时通信的方法和装置
CN107707533A (zh) * 2017-09-18 2018-02-16 深圳市迅雷网文化有限公司 基于Web的连麦方法、系统及存储介质
CN107809683A (zh) * 2017-11-22 2018-03-16 广东电网有限责任公司教育培训评价中心 一种基于浏览器无插件的直播系统及方法
CN107995187A (zh) * 2017-11-30 2018-05-04 上海哔哩哔哩科技有限公司 基于html5浏览器的视频主播、直播方法、终端和系统
CN111147506A (zh) * 2019-12-30 2020-05-12 武汉兴图新科电子股份有限公司 一种基于html5播放流媒体数据的方法、系统及存储设备
CN111479121A (zh) * 2020-04-08 2020-07-31 北京智能工场科技有限公司 一种基于流媒体服务器的直播方法及系统

Cited By (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112714131A (zh) * 2020-12-31 2021-04-27 北京大米科技有限公司 一种跨平台连麦的方法、装置、存储介质及电子设备
CN112839192A (zh) * 2021-01-20 2021-05-25 青岛以萨数据技术有限公司 基于浏览器的音视频通讯系统及方法
CN113132376A (zh) * 2021-04-14 2021-07-16 腾讯科技(深圳)有限公司 媒体数据处理方法及装置、系统、电子设备和存储介质
CN113285931A (zh) * 2021-05-12 2021-08-20 阿波罗智联(北京)科技有限公司 流媒体的传输方法、流媒体服务器及流媒体系统
CN113285931B (zh) * 2021-05-12 2022-10-11 阿波罗智联(北京)科技有限公司 流媒体的传输方法、流媒体服务器及流媒体系统
US11601489B2 (en) 2021-05-12 2023-03-07 Apollo Intelligent Connectivity (Beijing) Technology Co., Ltd. Method for transmitting stream, streaming server and storage medium
CN113612956A (zh) * 2021-06-28 2021-11-05 武汉众智数字技术有限公司 一种基于WebRTC的录像存储和回放的系统和方法
CN113612956B (zh) * 2021-06-28 2024-04-05 武汉众智数字技术有限公司 一种基于WebRTC的录像存储和回放的系统和方法
CN113345286B (zh) * 2021-08-03 2021-11-19 南京大经中医药信息技术有限公司 一种融合了ai技术和视频技术的师承教学系统及方法
CN113345286A (zh) * 2021-08-03 2021-09-03 南京大经中医药信息技术有限公司 一种融合了ai技术和视频技术的师承教学系统及方法
CN113691822A (zh) * 2021-08-04 2021-11-23 江苏怀业信息技术股份有限公司 一种WebRTC Simulcast的自适应调节方法和装置
CN113691822B (zh) * 2021-08-04 2023-11-07 江苏怀业信息技术股份有限公司 一种WebRTC Simulcast的自适应调节方法和装置
CN113613032A (zh) * 2021-08-04 2021-11-05 杭州梦视网络科技有限公司 一种嵌入式远程教学实验系统的视频传输方法
CN113691526A (zh) * 2021-08-23 2021-11-23 深圳市商汤科技有限公司 基于WebRTC的推流方法、装置、系统、设备和介质
CN113709581A (zh) * 2021-08-26 2021-11-26 芝麻链(北京)科技有限公司 一种音视频实时传输的系统、方法、装置及电子设备
CN114025244A (zh) * 2021-10-08 2022-02-08 中移(杭州)信息技术有限公司 音视频推送方法、装置、设备及计算机可读存储介质
CN114222149A (zh) * 2021-11-17 2022-03-22 武汉斗鱼鱼乐网络科技有限公司 一种推流方法、装置、介质及计算机设备
CN114189721A (zh) * 2021-12-10 2022-03-15 国网江苏省电力有限公司检修分公司 一种用于换流站的视频流转发系统及方法
CN114189721B (zh) * 2021-12-10 2023-09-19 国网江苏省电力有限公司检修分公司 一种用于换流站的视频流转发系统及方法
CN114205637A (zh) * 2021-12-16 2022-03-18 杭州雅顾科技有限公司 一种白板和音视频同步方法、装置、设备及存储介质
CN114268612A (zh) * 2021-12-22 2022-04-01 中电福富信息科技有限公司 一种基于WebSocket的网页实时语音通信方法
CN114495639A (zh) * 2022-02-16 2022-05-13 深圳品阔信息技术有限公司 一种低延迟的钢琴教学用实时互动系统
CN114495639B (zh) * 2022-02-16 2024-03-22 深圳品阔信息技术有限公司 一种低延迟的钢琴教学用实时互动系统
CN114844870B (zh) * 2022-03-25 2024-03-26 阿里巴巴(中国)有限公司 一种媒体流获取方法、装置、电子设备及存储介质
CN114844870A (zh) * 2022-03-25 2022-08-02 阿里巴巴(中国)有限公司 一种媒体流获取方法、装置、电子设备及存储介质
WO2024051518A1 (zh) * 2022-09-07 2024-03-14 抖音视界有限公司 直播方法、装置、电子设备以及存储介质
CN115955593A (zh) * 2022-12-15 2023-04-11 九识(苏州)智能科技有限公司 一种无人车的监控视频回放系统、方法及存储介质
CN116980555A (zh) * 2023-06-12 2023-10-31 北京医百科技有限公司 输入信号源的采集方法和系统
CN116980555B (zh) * 2023-06-12 2024-03-26 北京医百科技有限公司 输入信号源的采集方法和系统
CN117119216A (zh) * 2023-10-25 2023-11-24 北京奇点智播科技有限公司 一种直播解说的方法、系统以及直播系统的使用方法
CN117119216B (zh) * 2023-10-25 2024-01-26 北京奇点智播科技有限公司 一种直播解说的方法、系统以及直播系统的使用方法
CN117544632A (zh) * 2024-01-10 2024-02-09 城云科技(中国)有限公司 多终端中浏览器页面直接交互的方法、系统及其应用
CN117544632B (zh) * 2024-01-10 2024-03-29 城云科技(中国)有限公司 多终端中浏览器页面直接交互的方法、系统及其应用

Similar Documents

Publication Publication Date Title
CN112073423A (zh) 基于WebRTC进行浏览器推流的方法及系统
CN106803974B (zh) 直播视频流实时转发方法
KR102321859B1 (ko) 자바 스크립트를 이용한 실시간 미디어 스트리밍 방법 및 그 장치
KR101852893B1 (ko) 정보 푸시 방법, 기기, 및 시스템
US20150256600A1 (en) Systems and methods for media format substitution
CN105451071B (zh) 一种视频流的处理方法、装置和系统
CN107819809B (zh) 对内容进行同步操作的方法及装置
CN111225222A (zh) 基于rtmp的屏幕数据的视频流播放方法、装置和系统
CN112752115B (zh) 直播数据传输方法、装置、设备及介质
CN106464933B (zh) 用于远程控制对多媒体内容的渲染的设备和方法
WO2018103644A1 (zh) 直播分享方法及装置、家庭媒体设备和存储介质
CN105577645A (zh) 基于代理的hls客户端装置及其实现方法
KR101821124B1 (ko) 웹브라우저 상에서 미디어 스트림을 재생하는 방법 및 장치
US9641908B2 (en) Method and system for transferring real-time audio/video stream
CN114553839B (zh) Rtc数据的处理方法以及装置
CN113938470A (zh) 一种浏览器播放rtsp数据源的方法、装置以及流媒体服务器
CN115665474A (zh) 直播方法、装置、电子设备以及存储介质
CN110113298A (zh) 数据传输方法、装置、信令服务器和计算机可读介质
CN113055636B (zh) 一种数据处理方法及会议系统
CN112073727B (zh) 转码方法、装置、电子设备及存储介质
CN114827734A (zh) 流媒体数据回放方法、装置、系统和存储介质
CN114143616A (zh) 目标视频的处理方法和系统、存储介质及电子装置
CN106850659B (zh) 一种建立媒体通道的方法、装置及系统
KR20160036924A (ko) 사용기기에 독립적인 라이브 스트리밍 시스템
CN106657042B (zh) 一种用于获取iOS系统智能移动设备音视频的方法和系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20201211

RJ01 Rejection of invention patent application after publication