iOS HLS测试之本地服务器搭建和HLS推拉流测试
Nginx服务器搭建
Nginx安装
- 在终端执行以下命令,来安装Nginx服务
```
抓取最新安装路径
brew tap denji/homebrew-nginx brew install nginx-full --with-rtmp-module ```
- 在终端执行nginx,启动Nginx服务
nginx
接下来在浏览器中输入http://localhost:8080/
,出现以下信息即表示服务器启动成功
Nginx服务器配置
接下来,需要配置Nginx来支持HLS和RTMP推流
前往文件夹/usr/local/etc/nginx/nginx.conf
,使用文本编辑器打开,在文件的末尾处添加以下配置。
rtmp {
server {
listen 1935;#端口号
application live1 {#live1 随便起,后面的拉流的时候保持一致即可
live on;
record off;
}
application hls {
live on;
hls on;
hls_path /usr/local/var/www/hls;#视频流存放地址,在推流过程中产生的ts和m3u8文件都会在此路径中生成
hls_fragment 5s; #设置HLS分片的长度的。默认是5秒
}
}
}
关于rtmp模块的更多配置和属性,可以查看官方文档 http://github.com/arut/nginx-rtmp-module/wiki/Directives
配置完成后,在终端执行以下命令:
```
保存文件后,重新加载nginx的配置文件
nginx -s reload ```
服务端推流实现
这里需要使用ffmpeg来进行推流,首先安装ffmepg
brew install ffmpeg
接下来就可以准备推流,在终端执行以下命令:
ffmpeg -re -i /Users/tongxing/Movies/wwdc2022-10128_sd.mp4 -vcodec copy -f flv rtmp://localhost:1935/hls/room
这里rtmp://localhost:1935/hls/room
中的hls就是上面配置的application
后面的路径名称,后面的room可以随便写
可以看到,终端已经在开始对mp4文件进行分片处理
这个时候打开/usr/local/var/www/hls
路径就可以看到,文件夹里面的ts片段和m3u8文件是在实时更新的。
这个时候就可以拿到 rtmp://localhost:1935/hls/room
这个链接来进行播放了。
客户端拉流实现
Mac上进行拉流播放
为了判断是否真的推流成功,下载一个 VLC 工具,进行拉流地址的播放。
双击播放地址,即可看到,视频正在播放,同时m3u8文件一直在更新。
视频:
暂时无法在飞书文档外展示此内容
Gif图:
iPhone 设备上进行拉流播放
这里使用的是ijkplayer播放器来进行播放的。文章末尾附上Demo。
修改demo中的某个m3u8播放地址。我这里修改的是:IJKDemoSampleViewController
示例中的播放地址:
这里播放播放地址,需要将localhost
换成你的 Mac机器的网络IP地址: x.x.x.x:1935
可以看到双端是可以在同时进行内容同步播放。
视频:
暂时无法在飞书文档外展示此内容
gif图:
附件:
暂时无法在飞书文档外展示此内容