双十一刚刚过去,相对于往年集中于单纯抢券、盖楼、网页下单,如今的流量都被直播抢去了风头,头部的流量自然不必说了,薇娅李佳琦纷纷发力,几亿的成交额让人看了眼红不已。大部分企业也嗅到了市场的风向,未来的2年甚至更远,直播将是流量池的聚集地,也将是各大电商平台的发力点,不仅仅是电商,更多形式的直播平台都可能出现。对于很多想发力视频直播业务的企业,如何搭建服务器系统是开启直播业务的基层技术基础,地基打好了,后续业务的开展才能更加顺利。
视频直播的特点就在于,可以在广域网、局域网、城域网中进行传播,覆盖范围广,不会受时间地域的限制,只要有网络的地方就能看直播,采用分布式架构,采集、编码、转发、存储和管理等灵活配置。
一、直播系统搭建编码
为了便于手机视频的推流、拉流以及存储,通常采用视频编码压缩技术来减少视频的体积,现在比较常用的视频编码是H.264。在音频方面,比较常用的是AAC编码格式,其它如MP3、WMA也是可选方案。视频经过编码压缩大大提高了视频的存储和传输效率,当然,经过压缩后的视频在播放时必须进行解码。
相较于之前的H.264,2012年诞生的H.265编解码标准有了相当大的改善,做到了仅需要原来一半带宽即可播放相同质量的视频,低于1.5Mbps的网络也能传输1080p的高清视频。
另外,硬件编码已经成为移动直播的首选方案,软编码处理在720p以上的视频颓势非常明显。在iOS平台上硬件编码的兼容性比较好,可以直接采用,但在Android平台上,Media Codec编码器针对不同的芯片平台表现差异还是非常大的,要完全实现全平台兼容的成本还是非常高的。
二、直播系统搭建推流
要想用于推流还必须把音视频数据使用传输协议进行封装,变成流数据。常用的流传输协议有RTSP、RTMP、HLS等,使用RTMP传输的延时通常在1–3秒,对于移动直播这种实时性要求非常高的场景,RTMP也成为移动直播中最常用的流传输协议。最后通过一定的Qos算法将音视频流数据推送到网络断,通过CDN进行分发。在直播场景中,网络不稳定是非常常见的,这时就需要Qos来保证网络不稳情况下的用户观看直播的体验,通常是通过主播端和播放端设置缓存,让码率均匀。另外,针对实时变化的网络状况,动态码率和帧率也是最常用的策略。那么我们该如果根据情况选择这两种协议呢。首先,我们需要明确一点,这两种协议各有利弊。如图所示:
如果对实时性要求较高,那么使用RTMP会比较好。网页端使用RTMP会比较好,因为Flash Player原生支持,而大多数的浏览器都会安装Flash player。而在移动端如果对实时性要求不高,那么采用hls比较好,因为ios包括3.0以上的安卓都原生支持hls协议。用HLS协议会比RTMP更节省服务器资源,但是延迟大一点。FLV(HTTP-FLV)协议是使用HTTP协议传输流媒体内容的一个协议,也不用担心被Adobe的专利绑架,直播延迟同样可以做到1–3秒。因此根据企业可以根据自己的终端客户来选择协议。当然,三种协议是可以同时使用的,分别用到自己的场景就可以了。
另外,直播业务对于带宽的要求也非常高,底层架构都搭建好后,一些必备的软件资源作为连接的桥梁也非常重要,互联先锋全球带宽资源充裕,千万级直播并发能力,可动态扩展的直播技术架构为企业用户直播业务保驾护航。关注“互联先锋”获取更多IDC资讯。