推流
推流,就是将采集到的音频、视频数据通过流媒体协议发送到流媒体服务器。推流对这个直播链路影响非常大,如果推流的网络不稳定,无论我们如何做优化,观众的体验都会很糟糕,所以也是我们排查问题的第一步。推送协议主要有三种:
(1)RTSP(Real Time Streaming Protocol):实时流传送协议,是用来控制声音或影像的多媒体串流协议, 由Real Networks和Netscape共同提出的;
(2)RTMP(Real Time Messaging Protocol):实时消息传送协议,是Adobe公司为Flash播放器和服务器之间音频、视频和数据传输 开发的开放协议;
(3)HLS(HTTP Live Streaming):是苹果公司(Apple Inc.)实现的基于HTTP的流媒体传输协议。
RTMP 是目前主流的流媒体传输协议,广泛用于直播领域,可以说市面上绝大多数的直播产品都采用了这个协议,也有部分使用HLS协议。
难题
一、从推流到拉流的通道:这当中包括数据采集→数据编码→数据传输(流媒体服务器)→解码数据→播放显示整个流程;
二、内容复制分发:也就是CDN这块,服务器收集到主播的视频再通过节点讲视频内容分发到各个终端。CDN在直播中技术要求较高,也是最贵的,一般采用第三方,如果是自己做的话也要和CDN厂商对接经验技术
三、美颜:美颜对于主播来说是十分重要的一个功能。美颜功能看似简单,其实涉及到复杂的算法和图片处理技术。美颜功能最先出现于图片上,目前图片上的美颜功能已经较为成熟,视频直播上的美颜还有很长的路需要走
四、聊天室:我们在观看直播的时候,还可以在聊天室中进行聊天,这就是应用了IM及时聊天室。聊天室和群聊的区别就是,用户只有进入聊天室才能够看到好友,进行聊天,退出聊天室后就看不到好友同时也不能够查看聊天记录。
五、服务器:对于直播产品来说,流量的变化是非常大的,直播中,一天流量的高峰期是在晚上,对于一些网络红人的直播或者是明星的直播,流量会一下子暴涨,流量的忽高忽低自然就对服务器提出了更高的要求。
视频直播开发是一个庞大的工程,搭建过程中出现的绝对不只是以上几个问题,整个搭建过程必须要严谨专业,不然搭建后期会出现更多的问题甚至导致软件不能够正常的运行。这就对开发者的技术提出了很高的要求。