The Problem with WebRTC
任何必须将媒体目录从一个供应商的平台转移到另一个供应商的平台的人都知道,重复整个内容聚合过程所涉及的挫败感和时间. 这有点像把你所有的东西从一个房子搬到另一个房子——有些东西直接搬过去, 但有时整个布局是不同的,东西在盒子里呆了很长时间.
For those of us in the real-time audio/video space, building WebRTC solutions can be just as frustrating, particularly as your business and technical requirements grow. 我的业务已经帮助很多客户从一个WebRTC产品转移到另一个, 尽管核心结构相当相同,但每个过程都有不同的困难:
- Camera/microphone capture
- Intelligent connection logic (P2P, SFU, MCU)
- Efficient transcoding handling (VPx to H.264, Opus to AAC, etc)
- Archiving/replay
- Muxing to other non-WebRTC formats (HLS, SRT, etc)
While this list is by no means exhaustive, they’re likely requirements you’ll have any WebRTC or real-time, low-latency streaming needs. 令人沮丧的是:您不可能发现任何WebRTC服务器或云产品都能满足所有这些要求, and if you do, 您很可能会为每个客户端目标使用非常特定的客户端软件开发工具包(SDK).g. Web/JavaScript, iOS, and Android). Particularly on the web/JavaScript side, due to differences in how Chrome, Firefox, Safari, and Edge have implemented WebRTC, 这些客户端sdk对于减少webbrtc项目的整体开发时间至关重要. So, regardless of which WebRTC road you go down, 当你需要从一个WebRTC供应商转移到另一个供应商时,你必须往回走,走另一个供应商的WebRTC之路. You might get lucky and find a bridge to the new road during the backtracking. 但有一件事是肯定的:您选择的下一个WebRTC供应商的客户端SDK将与您之前的供应商的SDK不匹配, even among open source offerings.
Now, of course, I’ll need to bring a Flash anecdote into this subject, 为了找到在之前的流媒体历史中出现的类似情况. Flash didn’t have a built-in video player; you couldn’t just pass a video URL to a Flash SWF and have it start playing directly from the Flash Player plugin. 必须编写特定的代码并将其编译到Flash SWF文件中以播放和管理视频流. There was no built-in play/pause button—all of that had to be built. 进入JWPlayer, FlowPlayer,以及从该领域推出的任何其他业务. Adobe承认,在Flash项目中添加视频播放器并不容易,这让他们感到越来越沮丧. So, 他们启动了开源媒体框架(OSMF)项目,并向任何想要在Flash项目中添加视频的人免费提供代码. 这简化了事情,特别是对于那些不是视频专家的软件开发人员. You could use OSMF to play video from a wide range of streaming providers, 这些提供商可以为OSMF编写定制的附加组件或插件,以扩展其功能. 例如,Akamai为OSMF编写了插件,以启用其CDN上可用的特性.
So how does this relate to WebRTC? As I mentioned earlier, 每个WebRTC供应商都有不同的客户端SDK,这需要你(或你的软件开发团队)重构大量的代码来使用新的SDK. 你需要在目标目的地(网页、Android、iOS)上进行更新. Wouldn’t it be nice if those updates were fairly minimal, and not expensive from a resource management perspective? As Lemony Snicket might have said, 我希望这是我现在要告诉你的关于开源WebRTC框架的故事的一部分, 但我很遗憾地说,波德莱尔的粉丝们不会有这样的礼物等着他们.
我现在和这里呼吁WebRTC行业巨头制定一个开源的WebRTC框架, library, whatever you want to call it, and adopt it with their server-side counterparts. 它甚至可以是一个营销销售点:“我们的产品与版本1兼容.0 of the WebRTC Open Framework” (my made up name of course). Now, 已经有一些社区驱动的开源代码库,专门为客户端开发人员更容易实现WebRTC而设计. 但它们都相对较新,要与不同供应商的产品兼容还有很长的路要走. 我们需要更快地开发可行的WebRTC sdk,这些sdk不会将产品与特定的WebRTC服务器捆绑在一起.
I’ll end on a happier note. 好消息是,我们终于到达了这样一个点:桌面和移动web浏览器在它们的能力上一致使用WebRTC作为实时web应用程序或渐进式web应用程序(pwa)的核心技术。. 这意味着您不需要使用特定的浏览器来启用您的技术,或者至少如果您的客户端sdk支持所有这些技术,则不需要使用特定的浏览器.
Related Articles
Look beyond the hype and the monkeys. NFTs, blockchain, 以及新的去中心化网络——web3的其他元素对视频创作者和发布者有着严重的影响.
17 Jun 2022
Teltoo的实时分析和支持webrtc的P2P为海视提供了端到端的低延迟生态系统
09 Jul 2020
CosMo Software Consulting Founder & CEO Dr. Alex Gouaillard在2019东流媒体视频工程峰会上的演讲片段中,对2020年的WebRTC技术进行了预测.
04 Nov 2019
CosMo Software Consulting Founder & CEO Dr. Alex Gouaillard讨论了WebRTC编码器的非实时性,以及Netflix和其他人如何在解码端进行补偿,这是他在流媒体东部2019年视频工程峰会上的演讲片段.
28 Oct 2019