原文出处:直播社区
自2014年以来,直播应用异常火爆,各种各样的直播平台也应运而生。那么,搭建一个运营级的直播应用平台应该需要哪些技术和人员呢?
其实,互联网视频直播,与互联网传输技术、视频编解码技术和流媒体技术是密不可分的。要想实现互联网视频直播,首先就要有以上方面的技术和经验积累。
(1)直播中使用的流媒体协议
UDP协议,一种传输层的网络协议,可靠性低,但是效率很高。常用于对实时性要求高的直播应用中。
RTMP, Real Time Messaging Protocol(实时消息传输协议)的首字母缩写。该协议基于TCP,是一个协议族,包括RTMP基本协议及RTMPT/RTMPS/RTMPE等多种变种。RTMP是一种设计用来进行实时数据通信的网络协议,主要用来在Flash/AIR平台和支持RTMP协议的流媒体/交互服务器之间进行音视频和数据通信。RTMP 基于 flash技术,无法在 iOS 的浏览器中播放,但是实时性比 HLS 要好。
HTTP-TS协议,用TS来封装数据包,然后将其通过HTTP协议进行传送。它基于传输层的TCP协议来实现,有实时性和传输稳定性方面都有更好的表现。
HLS协议,HTTP Live Streaming(HTTP直播流技术),Apple的动态码率自适应技术。主要用于PC和Apple iOS移动终端。包括一个m3u(8)的索引文件,TS媒体分片文件和key加密串文件。它的特点是更适合做CDN分发,但是实时性很差,一般端到端延时要20秒以上。
(2)直播的模块划分
视频采集和编码录制端:视频采集设备一般是电脑上的音视频输入设备或者手机端的摄像头或者麦克风,编码和录制工具通常是软件,比如PC端使用的“直播大师(Live Master)”,手机端使用的ffmpeg和WebRTC这类工具。
视频播放端:可以是电脑上的播放器,手机端的 Native 播放器,还有就是H5 的 video 标签等,目前还是已手机端的 Native播放器为主。视频传输技术:主要以HTTP传输协议为主,因为它基于HTTP协议实现,具有天然的跨防火墙和多终端支持特性。HLS协议,主要面向iOS移动终端使用。RTMP协议,主要用于PC端的视频播放,实时性比较高。
视频服务器端:视频传输和播放用的流媒体服务器,通常是用C或者C++语言开发实现,主要实现一对多的视频流发布功能。
内容分发系统:很多人都知道,涉及到大规模内容分发都需要用到CDN技术,并且市场上出现了很多专门提供CDN服务的上市公司,比如美国的Akaimai,中国的蓝汛、网宿、帝联等,他们通过为用户提供内容的大范围分发服务来盈利。但是如果你要做视频运营要完全依靠这些公司的服务来支撑,那么你的利润很大一部分都要交给这些服务提供商,所以最终还需要自身具备这种技术能力。像大的运营平台(优酷、土豆、腾讯视频、淘宝视频、爱奇艺、乐视、映客直播、YY直播、花椒直播)都是通过自建CDN平台来支撑自身的业务运营。这方面的核心技术都是很专业的,都需要一个强大的研发团队多年时间才能将其打造成产品化和运营级的平台。
技术积累:语音视频技术是硬骨头,不是简单搞几个页面,不是搞一个业务支撑系统,这是需要经过多年技术积累的。比如说YY,他们做很多年才积累到今天的水平。比如说腾讯、阿里云等,他们也是组建了一个数十人的强大的技术开发团队,摸爬打滚了好多年才有了今天的辉煌。
人力成本:视音频和流媒体技术方面的工程师要价也是相当高的,因为这方面的技术专家通常都有8年以上的开发经验。涉及到的核心技术主要有视音频编解码、噪音抑制、回声消除、自动增益、前向纠错、丢帧补偿、抖动缓冲、CDN内容分发、网络流自适应等,每个技术模块至少需要一个专业人员来负责,然后要实现跨平台和全终端兼容。这么算起来,整个开发团队就至少需要30个人员,整个平台的开发周期至少需要1年,并且至少还需要6个月的功能完善和性能调优。按照人均工资3万元/月来计算,平台的人力成本需要1260万元以上。