流媒体技术发展历程与未来趋势

前几天翻出一个老U盘,里面有个rmvb格式的电影,突然就感慨了——当年用RealPlayer看视频的日子,现在的小年轻估计都没听说过。流媒体技术这二十多年的变化太大了,从卡到不行到秒开,从模糊到4K,今天就来聊聊这段有意思的历史。

RTMP时代:Flash的那些年

在流媒体技术的早期,RTMP协议是绝对的主角。它由Macromedia搞出来,后来被Adobe收购,成了Flash播放器的核心技术。RTMP基于TCP协议,延迟低,适合直播,所以国内早期的YY、斗鱼这些直播平台,全都用的RTMP。那时候浏览器不装Flash插件,基本啥视频都看不了。

但Flash的毛病太多了——安全漏洞多、耗电、不稳定。最致命的是,乔布斯公开表示iOS永远不支持Flash,这一下就判了Flash死刑。HTML5兴起之后,Flash就慢慢退出了历史舞台。不过有意思的是,RTMP在推流端现在还活着,很多直播软件还在用RTMP把视频推到服务器,只是在播放端换成了更现代的协议。

HLS:苹果带来的自适应码率

HLS是苹果搞出来的,现在已经是在线视频点播的事实标准了。它的原理说起来也简单——把视频切成一堆小ts文件,用m3u8索引文件来管理,播放器按索引顺序一个一个下载播放。这种做法的好处就是自适应码率:同一个视频准备了多个清晰度版本,播放器根据你当前的网速自动切换。网速好就切高清,网速差就降标清,你几乎感觉不到切换的过程。

HLS基于HTTP协议,完美利用了CDN加速和缓存技术,视频分发成本大幅降低。这也是为什么现在各大视频平台都在用HLS。不过HLS的延迟比较高,一般在几秒到十几秒,对于直播来说不太友好。InfoQ上有一篇深度文章分析了HLS和DASH两种协议的优劣,做技术开发的朋友可以看看。

WebRTC:实时通信的新选择

WebRTC是谷歌主导开发的开源项目,目标是实现浏览器之间的实时音视频通信,不需要任何插件。它用的是UDP协议,通过SRTP加密传输,延迟可以低到几百毫秒,跟HLS的几秒延迟完全不是一个概念。

WebRTC的出现直接推动了视频会议、在线教育、远程医疗这些场景的爆发。Zoom、腾讯会议背后都有WebRTC的影子。不过说实话,WebRTC也有局限性——对服务器要求高,大规模分发的成本比HLS高不少,所以它更适合对延迟要求苛刻的场景,而不是大规模点播。在视频解析领域,WebRTC也在被越来越多的平台采用,对解析工具来说是个新的挑战。

未来会怎样

流媒体技术接下来肯定是往更智能的方向走。AI辅助编码已经在路上了,用机器学习来进一步提升压缩效率。边缘计算加5G,能让延迟和带宽都达到新的高度,8K视频流在手机上流畅播放不再是梦。对视频解析行业来说,技术演进意味着新的挑战——流媒体协议越来越复杂,解析的难度也会水涨船高。但不管怎么变,用户对流畅观看视频的需求是不会变的,这行还是有的做。