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的采用率将继续增长。

审核编辑 :李倩

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

    关注

    45

    文章

    3903

    浏览量

    141437
  • 开源技术
    +关注

    关注

    0

    文章

    389

    浏览量

    8689
  • WebRTC
    +关注

    关注

    0

    文章

    57

    浏览量

    11861

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    一台就够了! 4K/8K编解码器THEIA T1 MINI:NDI HX3/WebRTC低延迟互联,四路解码全面解锁

    工具。 全能在手,IP化传输如此简单 这款设备体积小巧,能力却不容小觑。它集成了12G-SDI、HDMI 2.1、NDI及WebRTC于一身,是业界少有的全能型选手。其搭载的NDI HX3技术,能以高效
    发表于 12-04 13:14

    长晶科技缓冲器产品型号替代TI与安世方案介绍

    随着国产半导体产业的快速发展,越来越多的企业开始关注国产替代方案,以降低供应链风险、提升成本控制能力。长晶科技(CJ)作为国内领先的模拟与逻辑器件制造商,推出了一系列高性能缓冲器产品,可在多个应用场
    的头像 发表于 11-07 17:18 639次阅读
    长晶科技缓冲器产品型号<b class='flag-5'>替代</b>TI与安世<b class='flag-5'>方案</b>介绍

    MD663B高速12位模数转换器(DAC)替代TI、ADI

    文档,但根据TI的DAC产品线,DAC8881可能具备高速、高分辨率特性。适用场景:若DAC8881的输出采样率、带宽等参数与MD663B相近,则可作为替代方案。ADI替代
    发表于 10-14 09:23

    科普 | WebRTC开发调度台如何拉取视频监控画面

    目前很多的融合通信,应急指挥项目使用WebRTC方式开发调度台的操控界面,由于WebRTC的实时通信能力和丰富的开源社区支持能力,使用WebRTC在应急指挥,融合通信方面具有天然的优势。可以快速实现
    的头像 发表于 09-25 16:32 527次阅读
    科普 | <b class='flag-5'>WebRTC</b>开发调度台如何拉取视频监控画面

    高效设计,国产精品:BT5026——LM5026的优质Pin-to-Pin替代方案

    国产芯片替代方案
    的头像 发表于 09-02 14:50 764次阅读
    高效设计,国产精品:BT5026——LM5026的优质Pin-to-Pin<b class='flag-5'>替代</b><b class='flag-5'>方案</b>

    PY32F003国产单片机、外设丰富、高性价比的国产替代方案

    PY32F003 是普冉半导体推出的一款高性价比国产32位微控制器,PY32F003是一款高性价比的国产替代方案,可以用来替换一些进口MCU。芯片采用32 位 ARM® Cortex®-M0+内核
    发表于 08-21 11:50

    AWK6943:MP9943 国产DCDC兼容替代方案及技术优势

    高效兼容替换方案:AWK6943全面替代MP9943的技术解析在电源管理芯片领域,兼容替换方案的核心在于引脚定义、电气参数与功能特性的高度匹配。AWK6943作为一款高性能同步降压稳压
    的头像 发表于 06-12 12:00 659次阅读
    AWK6943:MP9943 国产DCDC兼容<b class='flag-5'>替代</b><b class='flag-5'>方案</b>及技术优势

    国产芯片替代方案:解析沁恒以太网PHY芯片

    沁恒国产以太网PHY芯片:高性能替代方案助力国产化升级
    的头像 发表于 03-12 10:40 3218次阅读

    SC2121、SC2161和SC2167解锁高性能RDC国产替代方案

    SC2121、SC2161和SC2167解锁高性能RDC国产替代方案
    的头像 发表于 03-11 09:55 1157次阅读
    SC2121、SC2161和SC2167解锁高性能RDC国产<b class='flag-5'>替代</b><b class='flag-5'>方案</b>

    国产模数转换器SC1642——ADS1258优质国产替代方案

    国产模数转换器SC1642——ADS1258优质国产替代方案
    的头像 发表于 01-22 09:58 1061次阅读
    国产模数转换器SC1642——ADS1258优质国产<b class='flag-5'>替代</b><b class='flag-5'>方案</b>

    24位模数转换器SC1641——AD7793的优质国产替代方案

    24位模数转换器SC1641——AD7793的优质国产替代方案
    的头像 发表于 01-15 10:09 1098次阅读
    24位模数转换器SC1641——AD7793的优质国产<b class='flag-5'>替代</b><b class='flag-5'>方案</b>

    华为云 Flexus X 实例 docker 部署 srs6 并调优,协议使用 webrtcrtmp

    · 华为云最近正在举办 828 B2B 企业节,Flexus X 实例的促销力度非常大,特别适合那些对算力性能有高要求的小伙伴。如果你有自建 MySQL、Redis、Nginx 等服务的需求,一定不要错过这个机会。赶紧去看看吧! 什么是华为云 Flexus X 实例 · 华为云 Flexus X 实例云服务是新一代开箱即用、体验跃级、面向中小企业和开发者打造的高品价比云服务产品。 · Flexus 云服务器 X 实例是新一代面向中小企业和开发者打造的柔性算力云服务器,可智能感知业务负载,适用
    的头像 发表于 12-31 15:40 784次阅读
    华为云 Flexus X 实例 docker 部署 srs6 并调优,协议使用 <b class='flag-5'>webrtc</b> 与 <b class='flag-5'>rtmp</b>

    【飞凌嵌入式OK3588J-C开发板体验】OK3588J-C开发板的HDMI输入转RTMP直播

    在上一篇报告中,我们已经可以将RTSP转成RTMP进行直播了,这次我们要将HDMI输入也要转成RTMP进行直播。 我们需要在上一篇的基础上再增加一个HDMI直播按钮。 头文件 #ifndef
    发表于 12-29 13:59

    【飞凌嵌入式OK3588J-C开发板体验】OK3588J-C开发板的RTSP转RTMP直播

    在上一篇报告中,我们已经将QT环境搭配好,并简单测试了一下DEMO的编译和运行。接下来我们写QT程序,将RTSP链接进行直播,但是与以前的不同是,我们并不进行API编程,而是通过采用命令式调用的方案
    发表于 12-29 12:45

    RTC与WebRTC的主要区别

    在数字通信领域,实时通信(RTC)和WebRTC是两个经常被提及的术语。它们都旨在提供即时的、高质量的通信体验,但它们在实现方式、应用场景和技术支持上有所不同。 1. 定义与起源 1.1 实时通信
    的头像 发表于 12-11 15:41 1892次阅读