常见流媒体协议 iOS的推流协议,目前最为常用的是RTMP和HLS。
RTMP是Adobe公司开发的基于TCP的应用层协议,实时性高,一般在3-5s。 HLS(HTTP Live Streaming)是苹果公司开发的基于HTTP的流媒体传输协议,可实现流媒体的直播和点播,但是由于其原理是将视频流切割成一系列的HTTP下载文件再进行传输,所以HLS有较高的延迟(约30s)。传输内容包括M3U8描述文件和TS媒体文件。 因为HLS相比RTMP具有较高延迟,一般直播都是要求高实时性,所以直播项目中一般都使用RTMP,因此我们下文也只讨论基于RTMP协议的推流。
iOS端采集到视频并编码后推流到服务器端,因此为了演示,我们先在本地搭建个基于Ngnix的直播服务器。
1、安装Nginx
Nginx (engine x) 是一个高性能的HTTP和反向代理服务,也是一个IMAP/POP3/SMTP服务。其特点是占有内存少,并发能力强。 在终端中使用以下命令进行安装
$ brew tap denji/nginx
$ brew install nginx-full --with-upload-module
安装完成后,在终端输入以下命令来启动Nginx
nginx
启动后在浏览器输入http://localhost:8080,显示Nginx的欢迎页面代表运行成功