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的播放终端。

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

 

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 运算放大器 之 概述

    运算放大器 之 概述转载来源:[维基百科]《运算放大器》运算放大器(英语:OperationalAmplifier,简称OP、OPA、op-amp、运放)是一种直流耦合,差模(差动模式)输入、通常为单端输出(Differential-in,single-endedoutput)的高增益(gain)电压放大器。在这种配置下,运算放大器能产生一个比输入端电势差大数十万倍的输出电势(对地而言)。因为…

  • idea202112激活码永久(注册激活)[通俗易懂]

    (idea202112激活码永久)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.cn/100143.html…

  • zookeeper锁原理(Redis分布式锁)

    产生问题例:在分布式(集群)环境下,每台JVM不能实现同步,比如将一个项目部署到多台tomcat服务器,那么用多台JVM在使用时间戳生成唯一的订单号时,会出现订单号重复问题。解决办法:分布式情况下,怎么解决订单号生成不重复:1.使用分布式锁2.提前生成好,订单号,存放在redis。获取订单号时,直接从redis中取。实现分布式锁的方式…

  • upx手动脱壳

    upx手动脱壳upxupx是一个开源的工具,可以到github下载upxupx简单的用法upxsrc.exe命令将src.exe加壳upxsrc.exe-odst.exe命令将src.exe加壳并另存为dst.exeupx手动脱壳

  • Ubuntu安装五笔输入法「建议收藏」

    Ubuntu安装五笔输入法「建议收藏」学习Ubuntu 环境VirtualBox 准备好Ubuntu系统后,这里下载的是12.04LTS版本1.安装五笔输入法在网上找资料,通过Ibus平台安装五笔输入法发现本操作系统已安装了Ibus,然后直接安装五笔IBUS五笔:sudoapt-getinstallibus-table-wubi2.设置输入法ibus-setup

  • tess4j3.2.1识别中英文

    tess4j3.2.1识别中英文1.测试代码publicclassTesseractExample{ publicstaticvoidmain(String[]args)throwsException{ //1.本地 //FileimageFile=newFile("C:\\wangl\\eurotext.tif"); //InputStreamis=…

发表回复

您的电子邮箱地址不会被公开。

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