windows server 2016 搭建nginx-rtmp 推流服务

1.搭建 nginx-rtmp

下载 nginx-rtmp-http-flv-master。

参考:https://blog.csdn.net/KayChanGEEK/article/details/105098588

2.在服务器上运行会遇到nginx.exe 运行时候出现应用程序运行不起来

需要 下载Msvcr100.dll放到sys32和sys64中

参考:http://t.zoukankan.com/fensnote-p-13436479.html

config配置

worker_processes  1;

error_log  logs/error.log debug;

events {
    worker_connections  1024;
}

rtmp {
    out_queue           4096;
    out_cork            8;
    max_streams         128;
    timeout             15s;
    drop_idle_publisher 15s;
 
    log_interval 5s; #log模块在access.log中记录日志的间隔时间,对调试非常有用
    log_size     1m; #log模块用来记录日志的缓冲区大小
    server {
        listen 1935;
        chunk_size 4000;
        application live {
            live on;
            gop_cache on ; #打开GOP缓存,减少首屏等待时间
            
            ### 保存视频/start
            #record video;                         #记录直播视频
        }
        
        application hls {
            live on;
            hls on;  
            hls_path temp/hls;  
            hls_fragment 8s;  
        }
    }
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;
    server {
        listen      9000;
        
        location / {
            root htmlVieo;
        }
        
        location /stat {
            rtmp_stat all;
            rtmp_stat_stylesheet stat.xsl;
        }

        location /stat.xsl {
            root htmlVieo;
        }
        location /live {
            flv_live on ; # 打开HTTP播放FLV直播流功能
            chunked_transfer_encoding on ; # 支持'Transfer-Encoding:  chunked'方式回复
            add_header 'Access-Control-Allow-Origin' '*'; # 添加额外的HTTP头
            add_header 'Access-Control-Allow-Credentials' 'true'; # 添加额外的HTTP头
            expires -1;
        }
        
        location /hls {
        #   指定允许跨域的方法,*代表所有
        add_header Access-Control-Allow-Methods *;

        #   预检命令的缓存,如果不缓存每次会发送两次请求
        add_header Access-Control-Max-Age 3600;
        #   带cookie请求需要加上这个字段,并设置为true
        add_header Access-Control-Allow-Credentials true;

        #   表示允许这个域跨域调用(客户端发送请求的域名和端口) 
        #   $http_origin动态获取请求客户端请求的域   不用*的原因是带cookie的请求不支持*号
        add_header Access-Control-Allow-Origin $http_origin;

        #   表示请求头的字段 动态获取
        add_header Access-Control-Allow-Headers 
        $http_access_control_request_headers;

        #   OPTIONS预检命令,预检命令通过时才发送请求
        #   检查请求的类型是不是预检命令
        if ($request_method = OPTIONS){
            return 200;
        }
            #server hls fragments  
            types{  
                application/vnd.apple.mpegurl m3u8;  
                video/mp2t ts;  
            }  
            alias temp/hls;  
            expires -1;  
        }  
    }
    server {
         listen       10001;
        server_name  localhost;
    #root   C:/web发布/dist/;

        location / {
            root   html;
            index  index.html index.htm;
        }
    location @router {
            rewrite ^.*$ /index.html last;
        }
    location ^~/api/ {
                   proxy_set_header   Host             $host;
               proxy_set_header   x-forwarded-for  $remote_addr;
               proxy_set_header   X-Real-IP        $remote_addr;
               proxy_pass  http://127.0.0.1:10000/; #实际的接口地址
    }
    location ^~/sys/ {
                   proxy_set_header   Host             $host;
               proxy_set_header   x-forwarded-for  $remote_addr;
               proxy_set_header   X-Real-IP        $remote_addr;
               proxy_pass  http://127.0.0.1:10000/; #实际的接口地址
    }
    }
}

 

posted @ 2022-11-17 13:35  创客未来  阅读(360)  评论(0编辑  收藏  举报