本文是来自MHV (Mile High Video) 2019的演讲,演讲者是Twitter公司视频直播基础设施组的Can Bal,本次演讲主要介绍了Twitter在今年早些时候发布的支持用户生成的直播内容的产品。
首先,Can说明了直播的过程。在某个人使用手机进行直播时,如果有观众请求成为guest并获得主播的同意,那么他们本质上是通过WebRTC会话,主播使用WebRTC获取内容,随后内容会被转换为HLS格式并播放给观众,观众中的任何人都能够发起请求成为guest,此时传输协议会在HLS和WebRTC之间切换。
然后,Can讲述了Twitter直播产品的基本原理。使用WebRTC的点对点群聊 (Group Chat) 是通过信令服务器 (Signaling Server) 建立用户连接,这不适用于多人群聊的大规模场景,Twitter的直播产品中使用了选择性的转发单元 (SFU, Selective Forward Unit),最多允许4个人互相交流,同时它将TURN的访问端口限制为443并对内容进行加密,几乎可以用于任何网络环境下。
最后,Can简要地介绍了Twitter的视频直播基础设施。后端服务主要包括视频管理服务和音频转码服务,为了避免在服务器端转码,视频服务限制为H.264,RTP包中的音频部分由OPUS格式转码为AAC格式,最终视频和音频经复用后被转化为HLS或LHLS流并传送给观众。
附上演讲视频:
演讲PPT全文