这里不说明如何安装nginx,只是将我配置的nginx.conf文件分享给大家,仅供学习使用,文件内已经写好注释了,应该不难理解。
推流工具:OBS Studio 28.1.2(64bit)
拉流工具:VLC 3.0.17.4
user peranger;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
rtmp {
server {
listen 1935;
chunk_size 4000;
#拉流本地视频文件
#方式:rtmp://192.168.8.110:1935/vod/***.mp4 需要指定具体的文件名
application vod {
play /home/peranger/nginx_test/video;
}
#此时可以通过rtmp://192.168.8.110:1935/live 推/拉流,如果有推流码还要加上推流码
#例:rtmp://192.168.8.110:1935/live/1234 后面的1234就是推流码
application live {
live on;
allow play all;
}
#此时可以通过rtmp://192.168.8.110:1935/live 拉流
#也可以通过rtmp://192.168.8.110:1935/push 拉流
#因为它打开了两个推流通道,live和push
#推流方式:rtmp://192.168.8.110:1935/push,如果有推流码还要加上推流码
application push {
live on;
push rtmp://192.168.8.110:1935/live;
}
#使用 hls 进行拉流
# 可以使用rtmp://192.168.8.110:1935/hls拉流,如果有推流码,还需要加上
# 使用rtmp://192.168.8.110:1935/hls推流
application hls {
live on;#开启实时
hls on;#开启hls,推流的视频文件会保存在hls_path指定的路径中
wait_key on; #对视频切片进行保护,这样就不会产生马赛克了
hls_path /home/peranger/nginx_test/hls;#视频流存放地址
hls_fragment 5s; #每个视频切片的时长。
hls_playlist_length 15s;#总共可以回看的事件
hls_continuous on;#连续模式
hls_cleanup on;#对多余的切片进行删除
hls_nested on;#嵌套模式
}
}
}
http {
server {
listen 9000;
server_name localhost;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers AES128-SHA:AES256-SHA:RC4-SHA:DES-CBC3-SHA:RC4-MD5;
location / {
root /home/peranger/nginx_test/www;
index index.html;
}
#查看rtmp流状态(仅安装nginx-rtmp-module时支持该功能)
location /stat {
rtmp_stat all;
rtmp_stat_stylesheet stat.xsl;
}
location /stat.xsl {
root /home/peranger/nginx_test/stat;
}
#---------- hls ------------
#使用 hls 进行拉流
# 可以使用http:/192.168.8.110:9000/hls/index.m3u8拉流,如果有推流码,还需要加上
#例:http:/192.168.8.110:9000/hls/1234/index.m3u8 其中1234就是推流码
location /hls {
types {
application/vnd.apple.mpegurl m3u8;
}
#访问权限开启,否则访问这个地址会报403
autoindex on;
alias /home/peranger/nginx_test/hls;#视频流存放地址,与上面的hls_path相对应,这里root和alias的区别可自行百度
expires -1;
add_header Cache-Control no-cache;
#防止跨域问题
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Credentials' 'true';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
}
#---------- flv ------------
#flv拉流
#VLC拉流方式:http://192.168.8.110:9000/flv_live?port=1935&app=[rtmp模块中当前正在推流的application]&stream=[OBS设置的推流码]
#例:http://192.168.8.110:9000/flv_live?port=1935&app=live&stream=1234
location /flv_live {
flv_live on;
chunked_transfer_encoding on;
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Credentials' 'true';
}
}
}
我参考了一些博客,比较多和杂,就不贴出来,如有侵权,请与我联系。