首先,大家都知道,直播就是把主播录制的视频,推送到服务器,再由服务器分发给观众观看。
直播APP开发的主要环节就是:推流端(采集、美颜处理、编码、推流)、服务端处理(转码、录制、截图、鉴黄)、播放器(拉流、解码、渲染)、互动系统(聊天室、礼物系统、赞),而直播的实现与直播系统开发中的流媒体是分不开的,想要知道如何实现直播APP,就要先了解流媒体。
流媒体,又叫流式媒体,是边传边播的媒体,是多媒体的一种。边传边播是指媒体提供商在网络上传输媒体的“同时”,用户一边不断地接收并观看或收听被传输的媒体。
流媒体技术先在使用者端的计算机上创建一个缓冲区,在播放前预先下载一段数据作为缓冲,在网络实际连线速度小于播放所耗的速度时,播放程序就会取用小段缓冲区内的数据,这样可以避免播放的中断,也使得播放品质得以保证。
在直播中,想要进行推拉流,就要用到流媒体传输协议,没有传输协议,视频流无法进行传输。
常用的流媒体协议主要有HTTP渐进下载和基于RTSP/RTP的实时流媒体协议两类,原则上,RTSP,RTMP,HTTP都可以做直播和点播,通常做直播开发会用RTMP协议。
APP直播开发中用到的RTMP协议有什么优势
RTMP协议(Real Time Messaging Protocol)是一种流媒体传输协议,是直播APP中最常用的流媒体传输协议,它最主要的优势就是低延时。
RTMP 协议进行数据传输时,它是一整条数据流被封装成FLV通过HTTP提供出去,因此在服务器不会有落地文件,基于 TCP 长连接,不需要多次建连,所以延时通常为 1-3s,远超HLS。
所以,从直播APP开发的角度来看,直播的流畅性是至关重要的,因此RTMP 协议无疑是最适合的。