硬件视频会议和软件视频会议的优缺点
视频会议经过几十年的发展,现在分成两大类,一种是硬件视频会议,一种软件视频会议,硬件视频会议效果很好,成本也很高,软件视频会议弥补了这些问题,但是效果要稍差一些。软件视频会议才是比较大众化的产品。
编码环节
编码是为了让视频变得更小,更有利于存储和传输。
H.264/MPEG-4 AVC 是目前应用最为广泛的视频编码标准,下一代的 H.265/HEVC 因为专利费高等问题,还未能普及;
VP8 是一种视频编码格式。Google 收购其研发公司后,将其以开放源代码、无需授权费用的形式发布。VP8 的下一代是 VP9,是 H.265/HEVC 的竞争者;
网页浏览器对这几种编码的支持程度为 H.264 > VP8 > VP9 > H.265;
从目前情况看,Google 主推 VP9,苹果主推 H.265。
封装
就是用一个容器把编码器生成的多媒体内容(视频、音频、字幕、章节信息等)装在一起。
常见的封装格式包括:
MP4:ISO/IEC 制定的容器格式标准,支持多种方式编码后的数据,但最常见的是 H.264/H.265 编码的视频和 AAC 编码的音频;
WebM:Google 基于开源容器格式 Matroska(.mkv)开发的新型容器格式。目的是用来封装 VP8/VP9 编码的视频和 Vorbis 编码的音频以供网络媒体使用;
FLV:Adobe公司推出的流媒体格式,广泛应用于视频网站。
几种常见推流协议剖析
RTMP
Adobe 公司为 Flash/AIR 与服务器之间传输音视频数据而开发的私有协议,也是目前主流的推流协议。
优点:基于 TCP,延时低,通常只有 1~3s ;技术成熟,配套完善。
缺点:在 PC 浏览器中只能通过 Flash 使用,且无法在移动浏览器使用。
Flash 即将和世界说再见,所以在网页播放端基本不会以 RTMP 拉流。
HTTP-FLV
把音视频数据封装成 FLV,然后通过 HTTP 连接传输,与 RTMP 相比只是传输协议变了。对于网页播放端,本来还是需要 Flash 才能播放,但「flv.js」的出现又弥补了这个缺陷。
优点:低延时,与 RTMP 非常接近;相较于 RTMP 协议,能有效避免防火墙和代理的影响。
缺点:它的传输特性,会让流媒体资源缓存在本地客户端,在保密性方面不够好;仍然不兼容 iOS 的浏览器。
HLS
苹果公司提出的基于 HTTP 的流媒体网络传输协议。它的工作原理是把整个流分成一个个小的 TS 片传输,每次只传输一部分。
优点:基于 HTTP 协议,接入 CDN 较为容易,且自带多码率自适应。作为苹果提出的协议,在 macOS/iOS 下有极大优势,Android 中也提供了对应的支持。
缺点:延时较大,通常不低于 10s 。大量 TS 片文件,会造成服务器存储和请求的压力。
WebRTC
在不同的上下文中有不同的含义,它可以表示:Google 开源的 WebRTC 项目;W3C 的 WebRTC 标准;浏览器中的 WebRTC 接口。
优点:RTMP 和 HLS 都是掌握在大企业手中的协议,而 WebRTC 已被纳入 W3C 标准。无需安装插件,且支持的浏览器越来越多。
缺点:厂商对浏览器或系统的定制可能会导致可用性问题。缺乏服务器端设计、部署的方案。主要面向 Web 端,对原生开发支持不足。