0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用WebRTC作为RTMP的替代方案

LiveVideoStack 来源:Barry Owen 作者:LiveVideoStack 2022-07-08 10:10 次阅读

WebRTC影音探索

2020年,Adobe宣布停止对 Flash播放器的支持。Flash历经多年终于走向终结,虽然是众望所归,但它的退出却对存在于许多流媒体工作流程中的一项重要技术——RTMP( Real-Time Messaging Protocol)影响重大。RTMP最初设计用于向Adobe Flash播放器传输音频视频和其他数据。在全盛时期,RTMP曾是互联网上传输视频的最主要技术。它可以用于端到端,并能确保快速的实时传输。然而与过去相比,现在越来越多的设备和浏览器都不再支持RTMP。

虽然在编码器和服务器之间传输视频方面,RTMP仍然是一个可靠的视频传输协议,但是对基于RTMP的播放来说,却并非如此。Adobe也表示[1]:”鼓励直播厂商将现有的Flash内容迁移到新的开放格式中去。”

在2020年的Streaming Media的一期杂志中,Robert Reinhard(流媒体视频顾问)曾警告:“如果你正在使用Flash进行低延时实时流媒体传输,那么你还有一年的时间(或者更短)将其迁移到WebRTC上。这意味着什么?意味着你在基于Flash的媒体服务器上所使用的的任何代码都需要迁移到WebRTC(而非RTMP)上。”

然而,许多内容发行商仍然在竭力将RTMP替换为用于视频播放的实时格式。为什么?因为虽然HLS和MPEG-DASH支持不同设备的高质量流媒体传输,但是延迟超过30秒是这些基于HTTP技术的标准。确实存在这些协议的低延迟扩展(LL-HLS和DASH的LL-CMAF),但是它们都无法达到很多公司追求的次秒级传输速度。除此之外,播放器、CDN和各种设备对于LL-HLS和LL-CMAF(用于DASH)的支持还处于早期阶段。

60be70c2-fe52-11ec-ba43-dac502259ad0.png

对于实时视频传输来说,WebRTC是你的唯一选择,这也是它在最近几年备受关注的原因。这项基于HTML5的技术为互联网上的实时视频传输提供了最快的方法。更重要的是,像RTMP在其全盛时期一样,WebRTC也可以端到端使用。

但是WebRTC也有自己的局限,它被设计用于基于浏览器的编码和小规模的流媒体传输,而这两个特点都使它无法适用于某些直播场景。

WebRTC会是替代RTMP的最佳方案吗?在开发者中,这句话已经成为了流行语。正如我将在下文所解释的那样,它取决于你所使用的支持部署的技术和你想达成的目标。

RTMP vs. WebRTC: 对比

对比RTMP,WebRTC有以下几个优势:其一,它是一种新型、由IETF和W3C进行标准化的开源技术。所有的主流浏览器无需插件即可支持WebRTC,消除了由专有流媒体技术所带来的互操作上的挑战。除此之外,软件开发者社区不断为WebRTC的开发贡献代码,也使它受益匪浅。

其次,在传输速度低于500毫秒的情况下,WebRTC是目前延迟最低的协议。它也由此成为创建交互式视频体验(从实时拍卖到直播购物)的首选解决方案,同时对于那些想要超越竞争对手的体育直播厂商来说,它也是一个非常具有吸引力的选择。

向数目众多的观众进行大规模直播对于WebRTC来说还存在困难。视频聊天框架本来就不是为规模化而设计的。幸运的是,我们已经开发了一种解决方案来克服这种局限,我将在下文详述。

在视频生产方面,WebRTC仅使用Web浏览器就可以进行简单的直播,但是对于希望使用硬件或者软件解决方案控制编码设置的直播厂商来说,基于浏览器的编码并不理想。同样,当涉及到使用定时元数据的字幕和广告标记等功能时,RTMP也比WebRTC更具优势。

WebRTC工作流程

所以,当涉及到实时视频流媒体传输时,RTMP到底在哪里可以替换成WebRTC? 作为一种端到端技术,WebRTC可分别用于推流、拉流或同时用于推、拉流。下面让我们看下WebRTC工作流程两端的优势,以及它是如何在确保规模化的同时应用于编码到传输的整个过程。

WebRTC在推流时替换RTMP

RTMP仍然是第一英里视频贡献的标准,这其中有以下几个原因。第一,RTMP获得了来自直播编码软件和硬件的广泛支持,同时许多社交媒体平台也在使用它。编码厂商已经开始向SRT等开源协议添加支持,但是WebRTC一直仅限于基于浏览器的内容发布。对于任何想要使用Web摄像头和麦克风直接在浏览器上进行直播的人来说,WebRTC非常有用。但是对于想要使用专业编码器进行实时流媒体内容传输的内容发行商来说,就无法使用WebRTC推流。

因此Millicast的技术团队设计了WHIP(WebRTC HTTP Ingest Protocol)来解决这个难题。在与媒体服务器通信时,WHIP提供了使用标准信令协议的编码软件和硬件,这样就可以实现跨厂商的WebRTC推流。WHIP在实现WebRTC推流的同时,还保留了WebRTC的低延迟优势(与RTMP相比),同时移除了编码器和媒体服务器之间的连接障碍。

当用于推流时,WebRTC可以确保低延迟、强制加密并提供对于Opus和VP9等高级编解码器的支持。因为有了WHIP,WebRTC也正在成为一种可用于硬件和软件编码的格式。直播流程对编码设置(包括码率、编解码器和编解码器参数等)有更多的控制需求,而WHIP的出现使WebRTC可以直接和RTMP竞争。

WebRTC在拉流时替换RTMP

浏览器不再支持RTMP导致播放端无法再使用它。当今大部分直播厂商都在使用HLS进行“最后一英里”的交付,但HLS的延迟要超过30秒。

目前你在传输视频时正在使用哪些流媒体格式?

60cfd7cc-fe52-11ec-ba43-dac502259ad0.png

来源:Wowza的2021视频流延迟报告[3]

当涉及低延迟协议的替代方案,WebRTC是众多协议中传输速度最快的。因此,如果你需要真正的交互(我们这里讨论的是用于紧急响应和远程监控等场景的低于一秒的视频传输),那么WebRTC将是你的最佳选择。LL-HLS和用于DASH的LL-CMAF同样也是不错的选择,但是它们无法实现像WebRTC一样的实时传输。

也就是说,WebRTC最初并不是为大规模直播场景设计的。我们过去曾鼓励内容发行商在向大量观众直播交互性内容时使用调整后的HLS或者LL-HLS,但现在我们为了解决这个问题,已经改进了产品

具体来说,我们开发了一个新的特性:该特性可以在自定义的CDN上部署WebRTC,从而提供近于无限的规模。这个解决方案可以实现面向全球大规模观众的次秒级视频传输[2]。

60e45ddc-fe52-11ec-ba43-dac502259ad0.png

如图中所示,当以这种方式传输视频时,WebRTC可用于广泛的工作流程中,包括WebRTC端到端,或者从RTMP到WebRTC。

在实现WebRTC时需要考虑的事

如果你正在考虑使用WebRTC代替RTMP,你需要将如下问题纳入考量:

1. 你是否需要双向视频或实时交互?

交互式实时流媒体解决方案和WebRTC密不可分,缺一不可。只要你使用WebRTC进行内容发布和播放,就能实现低于500毫秒的流媒体传输。更重要的是,使用次秒级流媒体传输的应用场景还可以利用RTMP到WebRTC的工作流程。同时还存在混合模型,其中交互视频参与者可以观看WebRTC视频流,而被动观众可以观看由HLS传输的具有更高延迟的视频流。

2. 你希望视频内容获得大范围传播吗?

所有的内容发行商都希望他们的流媒体应用大获成功,拥有成千上万或者数百万的观众。然而,过多用户可能使你的基础设施不堪重负。传统的WebRTC部署因无法利用自定义创建的CDN而限制了它的扩展能力。所以如果你的目标是触达大量观众,一定要确保拥有稳健的基础设施。

结语

由于WebRTC被设计用于视频聊天应用,所以有两个障碍阻碍了它在实时直播工作流程中的广泛采用:

基于浏览器编码的限制,以及在编码软件和硬件中缺少WebRTC能力。

规模化的挑战:导致WebRTC在向成千上万(或更多)观众直播时很难使用。

幸运的是,行业已经为以上问题找到了解决方法,使WebRTC成为了RTMP的强大替代方案(无论是在推流时还是在播放端)。

在我们的2021视频流延迟报告中,我们发现WebRTC已成为用于推流的第二流行的格式,用于传输的第三流行格式。在各厂商为实现实时视频直播而努力提高WebRTC可用性的前提下,我预计WebRTC的采用率将继续增长。

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 编码器
    +关注

    关注

    41

    文章

    3365

    浏览量

    131623
  • 开源技术
    +关注

    关注

    0

    文章

    386

    浏览量

    7835
  • WebRTC
    +关注

    关注

    0

    文章

    55

    浏览量

    11142

原文标题:使用WebRTC作为RTMP的替代方案

文章出处:【微信号:livevideostack,微信公众号:LiveVideoStack】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    谷景电子贴片电感替代工字电感的应用案例分享

    之前有一个关于贴片电感能否替代工字电感的问题,本篇就给大家分享一个谷景技术部门正在做的一个贴片电感替代工字电感的案例。这是我们技术部正在做的一个项目案例,详细的替代方案已经确认,并且已
    发表于 04-13 22:40 0次下载

    路由器的替代方案:如何组成局域网

    共享、游戏联机等功能。一般情况下,我们使用路由器作为搭建局域网的核心设备,然而,在某些不可抗力的情况下,没有路由器也可以组成局域网。本文将为您探讨一些路由器的替代方案,以便在没有路由器的情况下依然能够搭建局域网。 一
    的头像 发表于 01-09 11:22 350次阅读

    Enhanced-RTMP协议如何支持H.265呢?

    准确的说,RTMP是传输协议,传输协议内部的封装是flv格式,其实我们所说的支持H.265,是在flv封装格式里面支持H.265编码数据。
    的头像 发表于 01-03 09:15 419次阅读

    寻求温湿度变送器可替代方案

    这是一个温湿度变送器,对接电脑端相应软件能读取到温湿度信息,坏了就不好维修,请问各位大能有没有可替代的模块,或者有可替代模块的生产商可以私信联系我。
    发表于 12-28 14:36

    谷景电子帮助客户完成蜂鸣器插件电感替代的应用方案

          近日,谷景技术部再次成功帮助一家客户完成了蜂鸣器插件电感替代的应用方案。技术部凭借过硬的技术、完善的服务,再次向客户交出了一份完美的答卷。 这家客户是从事蜂鸣器产品生产的,目前产品
    的头像 发表于 12-13 10:08 311次阅读

    替代光耦合器的隔离解决方案应用笔记

    电子发烧友网站提供《替代光耦合器的隔离解决方案应用笔记.pdf》资料免费下载
    发表于 11-29 10:07 0次下载
    <b class='flag-5'>替代</b>光耦合器的隔离解决<b class='flag-5'>方案</b>应用笔记

    WebRTC进行压测的思路及方式和一些经验

    最近几年WebRTC特别火,但如何对WebRTC服务进行压力测试是一个很有难度和挑战的工作,因为WebRTC客户端实际使用上产生的压力瓶颈主要来源对象是码流而非传统的HTTP并发请求。
    的头像 发表于 10-30 11:30 673次阅读
    <b class='flag-5'>WebRTC</b>进行压测的思路及方式和一些经验

    jlink的主要使用场景有没有可以替代的非硬件方案

    jlink的主要使用场景,有没有可以替代的非硬件方案
    发表于 10-07 09:00

    【悟空派H3开发板免费体验】03.在悟空派上搭建RTMP服务器并实现RTSP转RTMP

    最近,公司需要一个RTSP转RTMP的需求,从网络上面看了一下,一个基本上都在300以上了,但是对于悟空派来讲只需要几个命令的事不就完事了,而且这么牛的能耗比真的太赞了。如果再搭建个RTMP直播平台
    发表于 09-27 13:40

    【风火轮YY3568开发板免费体验】FFMPEG的软编码、RTMP直播服务、以及板上直播服务器搭建

    博客,详情在这里采用nginx+chimee搭建网络摄像头直播系统,CHIMEE早就不再使用了,但是nginx-rtmp一直使用到现在很稳定,还有一种方案是SRS Server,这个要比
    发表于 08-29 09:49

    AHD模拟高清方案汇总及国产替代方案

    外来品牌公司模拟高清方案在产品交期、价格等方面的问题,愈来愈无法满足当下国内tier1和主机厂需求。伴随着终端市场国产化战略转变,很多客户在产品设计和方案选择上,开始把视线转向国内寻找可行性高的替代
    的头像 发表于 07-24 17:38 3317次阅读
    AHD模拟高清<b class='flag-5'>方案</b>汇总及国产<b class='flag-5'>替代</b><b class='flag-5'>方案</b>

    使用英特尔开发者套件搭建RTMP流媒体服务器

    本文将会介绍如何使用英特尔 开发者套件——爱克斯开发板快速搭建 RTMP 流媒体服务器,并利用 FFmpeg* 实现视频推流的功能。由于 FFmpeg 后端支持 OpenVINO 赋能,所以在视频
    的头像 发表于 07-18 15:58 421次阅读
    使用英特尔开发者套件搭建<b class='flag-5'>RTMP</b>流媒体服务器

    Web开播系统技术探索与实践

    首先是Flash直播,通过Flash可以发起RTMP推流,RTMP推流是浏览器很早就具备的能力。第二个阶段,将WebRTC协议转成RTMP协议,再推送到CDN上。
    发表于 06-30 10:30 277次阅读
    Web开播系统技术探索与实践

    什么是RTC技术(WebRTC

    RTC(Real time communication)实时通信,是实时音视频的一个简称,我们常说的RTC技术一般指的是WebRTC技术,已经被 W3C 和 IETF 发布为正式标准。由于几乎所有
    的头像 发表于 05-26 17:24 8817次阅读
    什么是RTC技术(<b class='flag-5'>WebRTC</b>)

    如何使用代码战士或替代方案在Windows 10 64位版本上对MC9S08QE8CTG进行编程?

    我们如何使用代码战士或替代方案在 Windows 10 64 位版本上对 MC9S08 进行编程
    发表于 05-17 06:24