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模块的更多装备和特点,能够查看官方文档 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能够随意写
能够看到,终端已经在开端对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图:
附件:
暂时无法在飞书文档外展现此内容