WebRTC:应用中最大难点在于根据业务需求的适当折中

简介: WebRTC对主流PC浏览器、移动端的全覆盖,对于开发者而言无疑是一剂强心针,而在去年W3C大会上又提出通过QUIC来实现WebRTC。

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1


WebRTC对主流PC浏览器、移动端的全覆盖,对于开发者而言无疑是一剂强心针,而在去年W3C大会上又提出通过QUIC来实现WebRTC。但在实际应用、行业契合以及对H.265的支持依然存在着不可忽视的痛,海康威视嵌入式软件开发工程师郑鹏针对以上问题与我们分享了它的观点和见解。本文是『WebRTC-互联网音视频新标准?』系列的第二篇,如果您对WebRTC技术的未来有分析和洞见,欢迎联系 contribute@livevideostack.com。


文 / 郑鹏

策划 / LiveVideoStack


H.265向WebRTC低头?


H.265的专利问题比H.264要复杂得多,再加上谷歌会力推AV1,我认为H.265不太可能得到WebRTC的官方支持。


通过QUIC实现WebRTC


WebRTC使用QUIC应该是实现数据通道,不太可能用于实现音视频传输。举个例子,在会议中,音视频数据走的是媒体通道,媒体通道的实时性要求非常高;但如果在会议中演示PPT,那么PPT文件走的一定是数据通道,数据通道对可靠性的非常高,对实时性的要求要低不少。目前QUIC还是一个完全可靠的协议,所以不适合用在实时性要求特别高的场合。关于QUIC,我想推荐两篇文章:


  • Applicability of the QUIC Transport Protocol

  • RTP over QUIC(https://tools.ietf.org/html/draft-rtpfolks-quic-rtp-over-quic-01


特别是第二篇文章,讨论了RTP在QUIC的应用场景以及现在存在的各种问题。看完文章,不难得出目前QUIC还不适合用于音视频实时通信的结论。


WebRTC实际应用中的痛


应用中最大的难点是根据业务需求作出恰当的折衷。之前袁荣喜谷沉沉的两篇文章在这个方面讲得比较清楚(特别是第一篇文章),本文就不再重复了。


以微信的实时通信小程序来举个例子,根据之前LiveVideoStack的访谈,我猜测它使用的是RTMP/QUIC的实现方案(如果不正确请纠正我)。这就是一个典型的实现方案上的折衷。它的优点是便宜(可复用HTTP2的基础架构),缺点是在丢包环境缺少强实时性保证(见《RTP over QUIC》)。对于它是否能够满足宣传中的各种高实时性要求场景(比如视频会议,在线教育)?在网络环境好的时候,是可以的;但是在高RTT且存在一定丢包环境,很难保证。实际上在这类高交互场景,微信自己采用的正是类WebRTC技术(见谷沉沉的文章)。另一方面,从实现复杂度和压缩效率的方面看,实时通信方案的代价是比较高昂的,不能将其视为一切音视频传输问题的通用方案。


未来改进


网络中间节点的Qos策略是比较多样的,目前GCC算法主要是针对Shaping(带有一定缓冲管理策略),对于简单限制带宽的Policing的表现不好。感觉基于丢包的拥塞控制这块还有很大的改进空间。拥塞控制算法这块,IETF RMCAT工作组一直有很活跃的讨论,除了GCC算法,还有多种其他的拥塞控制算法。


WebRTC与安防行业难牵手?


安防方面高清和智能化是两大趋势,原生WebRTC在这一块难有作为,原因有两个:


  • WebRTC对H.264仅支持到BP,H.265基本不会支持,主要安防芯片厂商没有明确支持AV1编码;

  • 智能化需要音频视频以外的其他实时数据的自定义渲染,浏览器应该还没有支持,不知道谷歌会不会关注到这个细分需求。


在安防的其他场景,可能会有直接应用。如果有了解的小伙伴,欢迎指正、交流。


WebRTCon 2018 7折火热报名


WebRTCon希望与行业专家一同分享、探讨当下技术热点、行业最佳应用实践。如果你拥有音视频领域独当一面的能力,欢迎申请成为讲师,分享你的实践和洞察,请联系 speaker@livevideostack.com。


点击阅读原文了解大会详情。

640?wx_fmt=png

相关文章
|
Web App开发 测试技术 网络性能优化
WebRTC 拥塞控制 | Trendline 滤波器
本文是 WebRTC 拥塞控制 第 2 篇
WebRTC 拥塞控制 | Trendline 滤波器
|
Kubernetes 关系型数据库 MySQL
制品库 Jfrog Artifactory 搭建私服
JFrog Artifactory 功能最强大的二进制制品仓库。在 Google、Apple、思科、甲骨文、华为、腾讯等众多世界500强公司中都有大规模使用,在二进制软件制品管理领域处于绝对领先地位。与其他服务不同,JJFrog Artifactory 在版本发行上分类较多且杂。
1738 0
制品库 Jfrog Artifactory 搭建私服
|
设计模式 算法 C++
C++架构之美:设计卓越应用
C++架构之美:设计卓越应用
808 3
|
开发框架 Dart 前端开发
Android 跨平台方案对比之Flutter 和 React Native
本文对比了 Flutter 和 React Native 这两个跨平台移动应用开发框架。Flutter 使用 Dart 语言,提供接近原生的性能和丰富的组件库;React Native 则基于 JavaScript,具备庞大的社区支持和灵活性。两者各有优势,选择时需考虑团队技能和项目需求。
915 8
|
负载均衡 网络协议
NAT模式 LVS负载均衡部署
NAT模式 LVS负载均衡部署
|
运维 前端开发 关系型数据库
高效调试与分析:利用ftrace进行Linux内核追踪(上)
高效调试与分析:利用ftrace进行Linux内核追踪
|
网络协议
iperf3的常用命令样例
iperf3是一个用于测量网络带宽的工具,以下是一些常用的iperf3命令样例: 1. 在服务器模式下启动iperf3: ``` iperf3 -s ``` 2. 在客户端通过TCP连接测试带宽: ``` iperf3 -c <服务器IP地址> ``` 3. 在客户端通过UDP连接测试带宽: ``` iperf3 -c <服务器IP地址> -u ``` 4. 指定连接端口号: ``` iperf3 -c <服务器IP地址> -p <端口号> ``` 5. 设置测试时间: ``` iperf3 -c <
2175 0
|
Web App开发 编解码 监控
RTSP协议探秘:从原理到C++实践,解锁实时流媒体传输之道
RTSP协议探秘:从原理到C++实践,解锁实时流媒体传输之道
4347 0
|
网络协议 网络架构
TCP/IP 协议体系结构四层分别是什么?
TCP/IP协议体系结构四层分别是:1、数据链路层;实现网卡接口的网络驱动程序,以处理数据在物理媒介上的传输。2、网络层;实现数据包的选路和转发。3、传输层;为两台主机上的应用程序提供端到端的通信。4、应用层;负责处理应用程序的逻辑。
|
Web App开发 编译器 C语言
QT5.14.2使用webkit引擎完成网页浏览
QT5.14.2使用webkit引擎完成网页浏览
1389 0
QT5.14.2使用webkit引擎完成网页浏览