Sign inSign up

shenxiangesyz/nginx-rtmp-live

By shenxiangesyz

•Updated over 6 years ago

Image
0

117

shenxiangesyz/nginx-rtmp-live repository overview

配置简易的直播服务,这里主要介绍一下使用及流程,安装docker,运行容器,需要注意暴露出的端口是80和1935,其实该容器和我之前记录的nginx-rtmp容器唯一的区别就是开启了直播服务,nginx-rtmp容器介绍中已经描述了运行过程,这里不再赘述,直接上nginx.conf配置文件,将nginx-rtmp跑起来然后修改该配置文件即可: daemon off;

error_log /dev/stdout info;

events { worker_connections 1024; }

rtmp { server {

    listen 1935;
    chunk_size 4096;
    application video {
	notify_method get;
	    on_play http://127.0.0.1/video;
	    play /usr/local/data/video;
 	}
 application live{
            live on;
    }
    application hls {
        live on;
        hls on;
        hls_path /tmp/hls;
    }

}

}

http { access_log /dev/stdout combined;

ssl_ciphers         HIGH:!aNULL:!MD5;
ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;
ssl_session_cache   shared:SSL:10m;
ssl_session_timeout 10m;

server {
    listen 80;
    charset utf-8;

    # Uncomment these lines to enable SSL.
    # Update the ssl paths with your own certificate and private key.
    # listen 443 ssl;
    # ssl_certificate     /opt/certs/example.com.crt;
    # ssl_certificate_key /opt/certs/example.com.key;

    location /hls {
        types {
            application/vnd.apple.mpegurl m3u8;
            video/mp2t ts;
        }
        root /opt/data;
        add_header Cache-Control no-cache;
        add_header Access-Control-Allow-Origin *;
    }

    location /live1 {
      alias /opt/data/hls;
      types {
          application/vnd.apple.mpegurl m3u8;
          video/mp2t ts;
      }
      add_header Cache-Control no-cache;
      add_header Access-Control-Allow-Origin *;
    }

    location /stat {
        rtmp_stat all;
        rtmp_stat_stylesheet stat.xsl;
    }

    location /static {
        alias /www/static;
    }
location /stat.xsl{
    root /home/nginx/nginx-rtmp-module/;
}


    location = /crossdomain.xml {
        root /www/static;
        default_type text/xml;
        expires 24h;
    }
	
	location /video{
		set $path /video/;
                    set $key "a0r9D2q9Pa7Ei26lj7U8";
		secure_link $arg_md5,$arg_expires;
		secure_link_md5 $secure_link_expires$path$arg_name$key;

		if ($secure_link = "") {
			return 403;
		}
	
		if ($secure_link = "0") {
			return 410;
		}
		
		return 200;
		
	}

           location /download{
                    set $key "a0r9D2q9Pa7Ei26lj7U8";
                    secure_link $arg_md5,$arg_expires;
                    secure_link_md5 $secure_link_expires$uri$key;

                    if ($secure_link = "") {
                            return 403;
                    }

                    if ($secure_link = "0") {
                            return 410;
                    }
                  alias /usr/local/data/video;
                  autoindex on;

            }

}

}

2、使用OBS软件进行推流,(将直播内容推送到服务器:rtmp://192.168.2.106:1932/live/test),配置如下(可以自行百度OBS使用):

打开OBS软件--》设置--》输出--》录像--》类型选择:自定义输出(FFmpeg),输出类型选择URL, url中填写自己的nginx服务地址及直播配置的路径,点击应用,如果服务器没问题就可以直接在主界面点击开始录屏,这个时候不报错说明视频已经推送到服务,

3、使用播放器拉取服务器上面的直播内容,随便找个支持rtmp协议的播放器就可以,例如:PotPlayer播放器,打开播放器后选择--》浏览器选项--》打开链接 将服务器地址放进去,例如:rtmp://47.97.198.116:8781/live/test(和推送时地址一样)

4、如果是想嵌入H5页面中,则需要使用video.js。页面使用如下代码嵌入html页面中: 注意需要引入对应的js及css,可以到该网址下载demo(地址:https://codeload.github.com/saysmy/videojs-hls/zip/master⁠)

Tag summary

Content type

Image

Digest

Size

219.4 MB

Last updated

over 6 years ago

docker pull shenxiangesyz/nginx-rtmp-live