这里不说明如何安装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'; } } }