直播架构
直播
过去十年间,直播的技术和生态都发生了翻天覆地的变化。随着技术的发展与更迭,以及网络基建的完善与优化,直播开始通过互联网和移动互联网逐渐影响到每个人。大量直播平台和场景也随之诞生,并向着实时、端到端、强交互等加强用户体验的方向演进。当技术、用户、平台以及直播生态圈愈渐丰富,中国的直播行业早已不是星星之火,直播的进化,不仅是技术的进化,更是生活方式的进化。
音视频直播的基本流程都是采集 → 编码推流 → 网络分发 → 解码 → 播放
这五大环节,其中又会涉及平台硬件、编解码、网络传输、服务并发、数字信号处理、在线学习等多方面技术。从交互模式上,又可以泛分为单对单模式与会议模式两大类;从实时性要求上,直播又可以分为伪实时、准实时与真实时三个等级:
- 伪实时:视频消费延迟超过 3 秒,单向观看实时,通用架构是 CDN + RTMP + HLS,譬如很多的直播平台
- 准实时:视频消费延迟 1 ~ 3 秒,能进行双方互动但互动有障碍;可以通过 TCP/UDP + FLV 已经实现了这类技术,譬如 YY 直播等
- 真实时:视频消费延迟 < 1 秒,平均 500 毫秒,譬如 QQ、微信、Skype 和 WebRTC 等
在直播领域大概可以分类两种类型的在直播:一种是交互式直播,另外一种是非交互式直播。
- 非交互式直播(如:阅兵直播、NBA 直播、欧冠直播等)交互性不强,允许延迟 10 秒或者 10 秒以上,特点是源比较少,适合做多路转码(用户可以根据网络条件观看)。
- 交互式直播的典型场景有:秀场直播、游戏直播等。这些直播因为对主播和观众的互动性要求比较高,所以要求延迟在 5s 以内。交互式直播的特点是:源比较多,不适合做多路转码,中间服务器只作为中转角色。
视频直播相关的技术方面的流程为:实时视频流的采集 – > 视频流的编码 – > 视频流的传输 –> 视频流的解码 –> 视频播放。