WebRTC直播技术方案「建议收藏」

WebRTC直播技术方案「建议收藏」我们都知道,WebRTC是面向互联网的一种即时通信标准,由于被Chrome、火狐、Safari等主流浏览器支持,并提供了一致和简洁的API,使得开发WebRTC的视频通信应用非常简单和流行。在大多数情况下,我们认为双向视频通信技术和视频直播技术是两种不同的技术,一个做视频通话,一个做单向直播(在以往的直播方案中,绝大部分是采用rtmp协议做直播上行的)。有没有可能使用WebR…

大家好,又见面了,我是你们的朋友全栈君。

我们都知道,WebRTC是面向互联网的一种即时通信标准,由于被Chrome、火狐、Safari等主流浏览器支持,并提供了一致和简洁的API,使得开发WebRTC的视频通信应用非常简单和流行。

v2-e5c71342e6653410c649d7ff76f9b185_720w.jpg

在大多数情况下,我们认为双向视频通信技术和视频直播技术是两种不同的技术,一个做视频通话,一个做单向直播(在以往的直播方案中,绝大部分是采用rtmp协议做直播上行的)。有没有可能使用WebRTC进行视频直播呢?这样既可以利用WebRTC的低延迟和良好的网络适应性,又可以充分利用WebRTC API的简洁性获得更高的开发效率和灵活性。更关键的一点是,使用WebRTC技术做直播,我们可以直接利用Chrome等浏览器的强大能力和跨平台特性,衍生出更灵活和简单的视频直播生态。

答案是肯定的,WebRTP做直播的方案完全可行: 使用WebRTC终端(浏览器或APP)作为视频采集端,将视频通过RTP协议上行传输到流媒体服务器,再由服务器进行视频协议的转换和播出。

v2-3652c8425b283f7bbc3c3b161ee31279_720w.jpg

直播流程中参与的节点主要有三个: 直播发起端、流媒体服务器和播放终端。

直播发起端的实现相对简单,可以使用js脚本,利用浏览器的WebRTC API来实现视音频的采集、合成、编码和传输,也可以使用的Android或iOS的WebRTC SDK来实现。有一定js开发能力或app开发能力的程序员可以胜任这部分工作。

流媒体服务器的开发相对是个难点,需要能够处理WebRTC信令、接收RTP协议并进行协议转换后对外提供大并发的直播输出。如果要想降低开发周期和投入,可以使用现有的成熟产品,例如可以选择国内的流媒体服务器软件NTV Media Server G3,这个系统在协议转换和播出能力上表现都是不错的。

无论采用哪个产品,服务器上的实现功能应该是一致的,即: WebRTP协议适配、音视频流接收、协议重新复用、播出。这个过程如下图:

v2-7fcea51f869ef4a783d8d6bacdc77417_720w.jpg

播放终端的工作相对较小,通过流媒体服务器适配后,一般终端不需要做任何改进,可以继续使用原有的协议和方法进行播出,例如http-flv协议或hls协议。当然也可以开发WebRTC的播放终端。

好了,由于时间原因,我们今天暂时探讨到这里,有疑问的同学可以在知乎和我交流。

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/162881.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • HTML入门教程_html代码基础

    HTML入门教程_html代码基础一、什么是HTMLHTML是英文HyperTextMark-upLanguage(超文本标记语言)的缩写,它规定了HTML的语法规则,用来表示比“文本”更丰富的意义,比如图片,表格,链接等。浏览器(IE,火狐等)软件知道HTML语言的语法,可以用来查看HTML文档。目前为止互联网上的绝大多数网页都是使用HTML语言来编写的。开始学习什么是HTML

    2022年8月29日
    2
  • Unity3D制作3维立体小游戏

    Unity3D制作3维立体小游戏Unity3D报告,纯属个人兴趣

    2022年5月9日
    69
  • 机器学习:准确率(Precision)、召回率(Recall)、F值(F-Measure)、ROC曲线、PR曲线

    机器学习:准确率(Precision)、召回率(Recall)、F值(F-Measure)、ROC曲线、PR曲线以下第一部分内容转载自:机器学习算法中的准确率(Precision)、召回率(Recall)、F值(F-Measure)是怎么一回事摘要:数据挖掘、机器学习和推荐系统中的评测指标—准确率(Precision)、召回率(Recall)、F值(F-Measure)简介。引言:在机器学习、数据挖掘、推荐系统完成建模之后,需要对模型的效果做评价。业内目前常常采用的评价指标有准确率(Precision)、召

    2022年5月13日
    55
  • Oracle中decode函数用法解析以及常用场景「建议收藏」

    Oracle中decode函数用法解析以及常用场景「建议收藏」1.decode函数的两种形式第一种形式含义解释:decode(条件,值1,返回值1,值2,返回值2,…值n,返回值n,缺省值)该函数的含义如下:IF条件=值1THEN    RETURN(翻译值1)ELSIF条件=值2THEN    RETURN(翻译值2)    ……ELSIF条件=值nTHEN    RETURN(翻译值n)ELSE    RET…

    2022年7月25日
    12
  • 关于cBridge2.0,你不能错过的关键信息(三)!

    关于cBridge2.0,你不能错过的关键信息(三)!上篇ELI5短文中我们讨论了cBridge2.0如何解决「自管」流动性模型中与状态守卫者网络(SGN)的协调问题。今天我们来继续讨论自管模型的最后一个话题:cBridge2.0的设计如何利用SGN为非托管桥接系统中的「作恶问题」提供有史以来第一个解决方案。那么什么是「作恶」呢?首先我们要知道,在cBridge2.0自管桥接模型中,对于桥接节点和用户来说,跨链交易的发生总是需要两个步骤,其顺序如下: 用户的第1步:向源链上的桥接节点进行「时间锁定」的转账,发起转账的用户…

    2022年5月4日
    54
  • c++入门教程–-18指针

    c++入门教程–-18指针

    2021年3月12日
    138

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号