Nginx服务器搭建

Nginx装置

  1. 在终端履行以下指令,来装置Nginx服务
# 抓取最新装置途径
brew tap denji/homebrew-nginx
brew install nginx-full --with-rtmp-module
  1. 在终端履行nginx,发动Nginx服务
nginx

接下来在浏览器中输入http://localhost:8080/,呈现以下信息即表示服务器发动成功

iOS HLS测试之本地服务器搭建和HLS推拉流测试

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模块的更多装备和特点,能够查看官方文档 github.com/arut/nginx-…

装备完成后,在终端履行以下指令:

# 保存文件后,重新加载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能够随意写

iOS HLS测试之本地服务器搭建和HLS推拉流测试

能够看到,终端已经在开端对mp4文件进行分片处理

这个时分翻开/usr/local/var/www/hls途径就能够看到,文件夹里面的ts片段和m3u8文件是在实时更新的。

这个时分就能够拿到 rtmp://localhost:1935/hls/room这个链接来进行播映了。

客户端拉流完成

Mac上进行拉流播映

为了判断是否真的推流成功,下载一个 VLC 东西,进行拉流地址的播映。

iOS HLS测试之本地服务器搭建和HLS推拉流测试

双击播映地址,即可看到,视频正在播映,一起m3u8文件一直在更新。

视频:

暂时无法在飞书文档外展现此内容

Gif图:

iPhone 设备上进行拉流播映

这儿运用的是ijkplayer播映器来进行播映的。文章结尾附上Demo。

修正demo中的某个m3u8播映地址。我这儿修正的是:IJKDemoSampleViewController示例中的播映地址:

iOS HLS测试之本地服务器搭建和HLS推拉流测试

这儿播映播映地址,需求将localhost 换成你的 Mac机器的网络IP地址: x.x.x.x:1935

能够看到双端是能够在一起进行内容同步播映。

视频:

暂时无法在飞书文档外展现此内容

gif图:

附件:

暂时无法在飞书文档外展现此内容