我们在Mac上搭建直播服务器Nginx说了如何在Mac搭建视频直播服务器Nginx,对RTMP
推流和RTMP
拉流的支持.接下来说说如何增加对HLS
的支持. 在Nginx
增加对HLS
种支持比较简单,只是简单的修改下配置文件nginx.conf
即可.
1. 打开配置文件
/usr/local/etc/nginx/nginx.conf
2. 增加对 HLS
的支持
2.1 找到http
下的 server
,在花括号中增加
server {
listen 8080;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
#HLS配置开始,这个配置为了`客户端`能够以http协议获取HLS的拉流
location /hls {
# Serve HLS fragments
types {
application/vnd.apple.mpegurl m3u8;
video/mp2t ts;
}
root html;
add_header Cache-Control no-cache;
}
#HLS配置结束
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
2.1 找到rtmp
下的 server
在花括号中增加
rtmp {
server {
listen 1935;
application gzhm {
live on;
record off;
}
#增加对HLS支持开始
#推流必须是基于H264/AAC格式
application hls {
live on;
hls on;
hls_path /usr/local/var/www/hls;
}
#增加对HLS支持结束
}
}
3. 保存配置文件,重新加载nginx配置
nginx -s reload
4. 测试 HLS
推流
ffmpeg -loglevel verbose -re -i 你电脑视频的全路径 -vcodec libx264 -vprofile baseline -acodec libmp3lame -ar 44100 -ac 1 -f flv rtmp://localhost:1935/hls/你的m3u8的文件名称(不包含.m3u8后缀)
然后你就可以在这个目录
/usr/local/var/www/hls
看到生成一个个ts
的文件,还会生成一个你的m3u8的文件名称.m3u8
的文件
5. 测试 HLS
拉流
你可以在本地
Safari里输入地址查看视频(需要等movie.m3u8文件生成后),也可以用iPad或者iPhone上的Safari来访问(需要把localhost改为nginx的所在电脑的ip地址)
http://localhost:8080/hls/你的m3u8的文件名称.m3u8
参考文章
嗷大喵的让nginx支持HLS