diff --git a/docker/conf/nginx-clip.conf b/docker/conf/nginx-clip.conf index f3be1cc..2b98906 100644 --- a/docker/conf/nginx-clip.conf +++ b/docker/conf/nginx-clip.conf @@ -1,7 +1,7 @@ user root; daemon off; master_process on; -worker_processes auto; +worker_processes 1; #worker_rlimit 4g; #error_log logs/error.log; @@ -146,6 +146,15 @@ http { } location / { + if ($request_method = 'OPTIONS') { + add_header 'Access-Control-Allow-Origin' '*' always; + add_header 'Access-Control-Allow-Methods' 'GET,POST,OPTIONS,PUT,DELETE' always; + add_header 'Access-Control-Allow-Headers' '*' always; + add_header 'Access-Control-Max-Age' 1728000 always; + add_header 'Content-Length' 0; + add_header 'Content-Type' 'text/plain; charset=utf-8'; + return 200; + } chunked_transfer_encoding on; root html/; } diff --git a/docker/conf/nginx-core.conf b/docker/conf/nginx-core.conf new file mode 100644 index 0000000..1c442cd --- /dev/null +++ b/docker/conf/nginx-core.conf @@ -0,0 +1,226 @@ +user root; +daemon off; +master_process on; +worker_processes 1; +#worker_rlimit 4g; + +#error_log logs/error.log; +#error_log logs/error.log notice; +error_log logs/error.log error; + +worker_rlimit_nofile 102400; +worker_rlimit_core 2G; +working_directory /tmp/; + +pid logs/nginx.pid; + +events { + use epoll; + worker_connections 4096; + multi_listen unix:/tmp/http 80; + multi_listen unix:/tmp/https 443; + multi_listen unix:/tmp/rtmp 1935; + + dynamic_refresh_interval 5s; + dynamic_domain_buckets 1001; + resolver 114.114.114.114 valid=10s; + resolver_timeout 30s; +} + +#stream_zone buckets=1024 streams=4096; + +#dynamic_conf conf/nginx_dynamic.conf 10; +#dynamic_log logs/dynamic.log info; + +rtmp { +# log_format log_bandwidth '{"app":"$app","name":"$name","bitrate":$bitrate,"args":"$args","timestamp":$ntp,"ts":"$time_local","type":"$command","remoteAddr":"$remote_addr","announceIp":"39.101.194.173"}'; +# access_log logs/bandwidth.log log_bandwidth trunc=5s; + + server { + listen 1935 so_keepalive=2s:2s:3; + serverid live; + out_queue 2048; + rtmp_auto_pull on; + rtmp_auto_pull_port unix:/tmp/rtmp; + timeout 5s; + max_message 6291456; + idle_streams off; + + application audio { + on_play http://127.0.0.1:6080/v1/live/notify stage=start,done update=30s args=serverid=$serverid&scheme=$scheme&clietip=$remote_addr&silent=1&$pargs; + on_publish http://127.0.0.1:6080/v1/live/notify stage=start,update,done update=10s args=serverid=$serverid&scheme=$scheme&clientip=$remote_addr&silent=1&$pargs; + on_pull http://127.0.0.1:6080/v1/live/notify stage=start,done update=30s args=serverid=$serverid&scheme=$scheme&clientip=$remote_addr&$pargs; + on_push http://127.0.0.1:6080/v1/live/notify stage=start,done update=30s args=serverid=$serverid&scheme=$scheme&clientip=$remote_addr&invoke=push&$pargs; + on_push http://127.0.0.1:6080/v1/live/notify stage=start,done update=30s args=serverid=$serverid&scheme=$scheme&clientip=$remote_addr&invoke=record&$pargs; + on_push http://127.0.0.1:6080/v1/live/notify stage=start,done update=30s args=serverid=$serverid&scheme=$scheme&clientip=$remote_addr&invoke=transcode&$pargs; + on_push http://127.0.0.1:6080/v1/live/notify stage=start,done update=30s args=serverid=$serverid&scheme=$scheme&clientip=$remote_addr&invoke=hls&$pargs; + + hls off; + hls_path /tmp/hls; + hls_fragment 4000ms; + hls_max_fragment 10000ms; + hls_playlist_length 12000ms; + hls_type live; + + hls2 off; + mpegts_cache_time 0s; + + hls2_fragment 2000ms; + hls2_max_fragment 3000ms; + hls2_playlist_length 6000ms; + + live on; + # wait_key on; + # wait_video on; + cache_time 1s; + send_all on; + low_latency off; + fix_timestamp 0s; +# h265 codecid, default 12 + hevc_codecid 12; + } + + application * { + on_play http://127.0.0.1:6080/v1/live/notify stage=start,done update=30s args=serverid=$serverid&scheme=$scheme&clietip=$remote_addr&silent=1&$pargs; + on_publish http://127.0.0.1:6080/v1/live/notify stage=start,update,done update=10s args=serverid=$serverid&scheme=$scheme&clientip=$remote_addr&silent=1&$pargs; + on_pull http://127.0.0.1:6080/v1/live/notify stage=start,done update=30s args=serverid=$serverid&scheme=$scheme&clientip=$remote_addr&$pargs; + on_push http://127.0.0.1:6080/v1/live/notify stage=start,done update=30s args=serverid=$serverid&scheme=$scheme&clientip=$remote_addr&invoke=push&$pargs; + on_push http://127.0.0.1:6080/v1/live/notify stage=start,done update=30s args=serverid=$serverid&scheme=$scheme&clientip=$remote_addr&invoke=record&$pargs; + on_push http://127.0.0.1:6080/v1/live/notify stage=start,done update=30s args=serverid=$serverid&scheme=$scheme&clientip=$remote_addr&invoke=transcode&$pargs; + on_push http://127.0.0.1:6080/v1/live/notify stage=start,done update=30s args=serverid=$serverid&scheme=$scheme&clientip=$remote_addr&invoke=hls&$pargs; + + live_record off; + live_record_path /data/record; + + hls off; + hls_path /tmp/hls; + hls_fragment 4000ms; + hls_max_fragment 10000ms; + hls_playlist_length 12000ms; + hls_type live; + + hls2 off; + mpegts_cache_time 0s; + + hls2_fragment 2000ms; + hls2_max_fragment 3000ms; + hls2_playlist_length 6000ms; + + live on; + wait_key on; + wait_video on; + cache_time 1s; + send_all on; + low_latency off; + fix_timestamp 0s; +# h265 codecid, default 12 + hevc_codecid 12; + } + } +} + +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" "$http_X-Real-IP" "$host"'; + + access_log logs/access.log main; + + sendfile on; + #tcp_nopush on; + + #keepalive_timeout 0; + keepalive_timeout 65; + + #reset_server_name www.test1.com www.test2.com; + #gzip on; + + server { + listen 80; + listen 443 ssl; + ssl_certificate /cert/fullchain.pem; + ssl_certificate_key /cert/privkey.pem; + location /rtmp_stat { + rtmp_stat all; + rtmp_stat_stylesheet /stat.xsl; + } + + location /xstat { + rtmp_stat all; + } + + location /sys_stat { + sys_stat; + } + + location /proxy/ { + rewrite ^/proxy/(.*) /sys_stat break; + proxy_pass http://$1:; + } + + location /bs { + broadcast unix:/tmp/http /proxy; + broadcast_rewrite_prefix "," [; + broadcast_suffix ]; + return 200; + } + + location ~ .mp4$ { + root html; + #mp4; + } + + location /control { + rtmp_control all; + } + location /flv { + flv_live 1935; + chunked_transfer_encoding off; + add_header 'Access-Control-Allow-Origin' '*'; + add_header "Access-Control-Allow-Credentials" "true"; + add_header "Access-Control-Allow-Methods" "*"; + add_header "Access-Control-Allow-Headers" "Content-Type,Access-Token"; + add_header "Access-Control-Expose-Headers" "*"; + } + location /ts { + ts_live 1935 app=live; + expires -1; + add_header 'Access-Control-Allow-Origin' '*'; + add_header "Access-Control-Allow-Credentials" "true"; + add_header "Access-Control-Allow-Methods" "*"; + add_header "Access-Control-Allow-Headers" "Content-Type,Access-Token"; + add_header "Access-Control-Expose-Headers" "*"; + } + location /hls { + types { + application/vnd.apple.mpegurl m3u8; + video/mp2t ts; + } + root /tmp; + 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" "*"; + add_header "Access-Control-Allow-Headers" "Content-Type,Access-Token"; + add_header "Access-Control-Expose-Headers" "*"; + } + + location / { + if ($request_method = 'OPTIONS') { + add_header 'Access-Control-Allow-Origin' '*' always; + add_header 'Access-Control-Allow-Methods' 'GET,POST,OPTIONS,PUT,DELETE' always; + add_header 'Access-Control-Allow-Headers' '*' always; + add_header 'Access-Control-Max-Age' 1728000 always; + add_header 'Content-Length' 0; + add_header 'Content-Type' 'text/plain; charset=utf-8'; + return 200; + } + chunked_transfer_encoding on; + root html/; + } + } +} \ No newline at end of file diff --git a/docker/conf/nginx-edge.conf b/docker/conf/nginx-edge.conf index 4d1149a..54ff47b 100644 --- a/docker/conf/nginx-edge.conf +++ b/docker/conf/nginx-edge.conf @@ -1,7 +1,7 @@ user root; daemon off; master_process on; -worker_processes auto; +worker_processes 1; #worker_rlimit 4g; #error_log logs/error.log; @@ -47,12 +47,12 @@ rtmp { max_message 6291456; application audio { - on_play http://127.0.0.1:6080/v1/live/notify stage=start,done update=30 args=serverid=$serverid&scheme=$scheme&clietip=$remote_addr&$pargs; - on_publish http://127.0.0.1:6080/v1/live/notify stage=start,update,done update=10 args=serverid=$serverid&scheme=$scheme&clientip=$remote_addr&$pargs; - on_pull http://127.0.0.1:6080/v1/live/notify stage=start,done update=30 args=serverid=$serverid&scheme=$scheme&clientip=$remote_addr&$pargs; - on_push http://127.0.0.1:6080/v1/live/notify stage=start,done update=30 args=serverid=$serverid&scheme=$scheme&clientip=$remote_addr&invoke=push&$pargs; - on_push http://127.0.0.1:6080/v1/live/notify stage=start,done update=30 args=serverid=$serverid&scheme=$scheme&clientip=$remote_addr&invoke=record&$pargs; - on_push http://127.0.0.1:6080/v1/live/notify stage=start,done update=30 args=serverid=$serverid&scheme=$scheme&clientip=$remote_addr&invoke=transcode&$pargs; + on_play http://127.0.0.1:6080/v1/live/notify stage=start,done update=30s args=serverid=$serverid&scheme=$scheme&clietip=$remote_addr&$pargs; + on_publish http://127.0.0.1:6080/v1/live/notify stage=start,update,done update=10s args=serverid=$serverid&scheme=$scheme&clientip=$remote_addr&$pargs; + on_pull http://127.0.0.1:6080/v1/live/notify stage=start,done update=30s args=serverid=$serverid&scheme=$scheme&clientip=$remote_addr&$pargs; + on_push http://127.0.0.1:6080/v1/live/notify stage=start,done update=30s args=serverid=$serverid&scheme=$scheme&clientip=$remote_addr&invoke=push&$pargs; + on_push http://127.0.0.1:6080/v1/live/notify stage=start,done update=30s args=serverid=$serverid&scheme=$scheme&clientip=$remote_addr&invoke=record&$pargs; + on_push http://127.0.0.1:6080/v1/live/notify stage=start,done update=30s args=serverid=$serverid&scheme=$scheme&clientip=$remote_addr&invoke=transcode&$pargs; hls2 off; mpegts_cache_time 0s; @@ -73,12 +73,12 @@ rtmp { } application * { - on_play http://127.0.0.1:6080/v1/live/notify stage=start,done update=30 args=serverid=$serverid&scheme=$scheme&clietip=$remote_addr&$pargs; - on_publish http://127.0.0.1:6080/v1/live/notify stage=start,update,done update=10 args=serverid=$serverid&scheme=$scheme&clientip=$remote_addr&$pargs; - on_pull http://127.0.0.1:6080/v1/live/notify stage=start,done update=30 args=serverid=$serverid&scheme=$scheme&clientip=$remote_addr&$pargs; - on_push http://127.0.0.1:6080/v1/live/notify stage=start,done update=30 args=serverid=$serverid&scheme=$scheme&clientip=$remote_addr&invoke=push&$pargs; - on_push http://127.0.0.1:6080/v1/live/notify stage=start,done update=30 args=serverid=$serverid&scheme=$scheme&clientip=$remote_addr&invoke=record&$pargs; - on_push http://127.0.0.1:6080/v1/live/notify stage=start,done update=30 args=serverid=$serverid&scheme=$scheme&clientip=$remote_addr&invoke=transcode&$pargs; + on_play http://127.0.0.1:6080/v1/live/notify stage=start,done update=30s args=serverid=$serverid&scheme=$scheme&clietip=$remote_addr&$pargs; + on_publish http://127.0.0.1:6080/v1/live/notify stage=start,update,done update=10s args=serverid=$serverid&scheme=$scheme&clientip=$remote_addr&$pargs; + on_pull http://127.0.0.1:6080/v1/live/notify stage=start,done update=30s args=serverid=$serverid&scheme=$scheme&clientip=$remote_addr&$pargs; + on_push http://127.0.0.1:6080/v1/live/notify stage=start,done update=30s args=serverid=$serverid&scheme=$scheme&clientip=$remote_addr&invoke=push&$pargs; + on_push http://127.0.0.1:6080/v1/live/notify stage=start,done update=30s args=serverid=$serverid&scheme=$scheme&clientip=$remote_addr&invoke=record&$pargs; + on_push http://127.0.0.1:6080/v1/live/notify stage=start,done update=30s args=serverid=$serverid&scheme=$scheme&clientip=$remote_addr&invoke=transcode&$pargs; live_record off; live_record_path /data/record; @@ -182,6 +182,15 @@ http { } location / { + if ($request_method = 'OPTIONS') { + add_header 'Access-Control-Allow-Origin' '*' always; + add_header 'Access-Control-Allow-Methods' 'GET,POST,OPTIONS,PUT,DELETE' always; + add_header 'Access-Control-Allow-Headers' '*' always; + add_header 'Access-Control-Max-Age' 1728000 always; + add_header 'Content-Length' 0; + add_header 'Content-Type' 'text/plain; charset=utf-8'; + return 200; + } chunked_transfer_encoding on; root html/; } diff --git a/docker/conf/nginx-hls.conf b/docker/conf/nginx-hls.conf index 0b1482a..5fc4541 100644 --- a/docker/conf/nginx-hls.conf +++ b/docker/conf/nginx-hls.conf @@ -1,7 +1,7 @@ user root; daemon off; master_process on; -worker_processes auto; +worker_processes 1; #worker_rlimit 4g; #error_log logs/error.log; @@ -47,7 +47,7 @@ rtmp { idle_streams off; application * { -# on_publish http://127.0.0.1:6080/v1/live/notify stage=start,update,done update=10 args=serverid=$serverid&scheme=$scheme&clientip=$remote_addr&$pargs; +# on_publish http://127.0.0.1:6080/v1/live/notify stage=start,update,done update=10s args=serverid=$serverid&scheme=$scheme&clientip=$remote_addr&$pargs; hls_key_url {hls_key_url}; hls_fragments_per_key 10; hls_keys on; @@ -164,9 +164,18 @@ http { add_header "Access-Control-Expose-Headers" "*"; } - location / { - chunked_transfer_encoding on; - root html/; - } + location / { + if ($request_method = 'OPTIONS') { + add_header 'Access-Control-Allow-Origin' '*' always; + add_header 'Access-Control-Allow-Methods' 'GET,POST,OPTIONS,PUT,DELETE' always; + add_header 'Access-Control-Allow-Headers' '*' always; + add_header 'Access-Control-Max-Age' 1728000 always; + add_header 'Content-Length' 0; + add_header 'Content-Type' 'text/plain; charset=utf-8'; + return 200; + } + chunked_transfer_encoding on; + root html/; + } } } \ No newline at end of file diff --git a/docker/conf/nginx-idle-live.conf b/docker/conf/nginx-idle-live.conf new file mode 100644 index 0000000..f8ecd2c --- /dev/null +++ b/docker/conf/nginx-idle-live.conf @@ -0,0 +1,225 @@ +user root; +daemon off; +master_process on; +worker_processes 1; +#worker_rlimit 4g; + +#error_log logs/error.log; +#error_log logs/error.log notice; +error_log logs/error.log error; + +worker_rlimit_nofile 102400; +worker_rlimit_core 2G; +working_directory /tmp/; + +pid logs/nginx.pid; + +events { + use epoll; + worker_connections 4096; + multi_listen unix:/tmp/http 80; + multi_listen unix:/tmp/https 443; + multi_listen unix:/tmp/rtmp 1935; + + dynamic_refresh_interval 5s; + dynamic_domain_buckets 1001; + resolver 114.114.114.114 valid=10s; + resolver_timeout 30s; +} + +#stream_zone buckets=1024 streams=4096; + +#dynamic_conf conf/nginx_dynamic.conf 10; +#dynamic_log logs/dynamic.log info; + +rtmp { +# log_format log_bandwidth '{"app":"$app","name":"$name","bitrate":$bitrate,"args":"$args","timestamp":$ntp,"ts":"$time_local","type":"$command","remoteAddr":"$remote_addr","announceIp":"39.101.194.173"}'; +# access_log logs/bandwidth.log log_bandwidth trunc=5s; + + server { + listen 1935 so_keepalive=2s:2s:3; + serverid live; + out_queue 2048; + rtmp_auto_pull on; + rtmp_auto_pull_port unix:/tmp/rtmp; + timeout 5s; + max_message 6291456; + idle_streams on; + + application audio { + on_play http://127.0.0.1:6080/v1/live/notify stage=start,done update=30s args=serverid=$serverid&scheme=$scheme&clietip=$remote_addr&$pargs; + on_publish http://127.0.0.1:6080/v1/live/notify stage=start,update,done update=10s args=serverid=$serverid&scheme=$scheme&clientip=$remote_addr&$pargs; + on_pull http://127.0.0.1:6080/v1/live/notify stage=start,done update=30s args=serverid=$serverid&scheme=$scheme&clientip=$remote_addr&$pargs; + on_push http://127.0.0.1:6080/v1/live/notify stage=start,done update=30s args=serverid=$serverid&scheme=$scheme&clientip=$remote_addr&invoke=push&$pargs; + on_push http://127.0.0.1:6080/v1/live/notify stage=start,done update=30s args=serverid=$serverid&scheme=$scheme&clientip=$remote_addr&invoke=record&$pargs; + on_push http://127.0.0.1:6080/v1/live/notify stage=start,done update=30s args=serverid=$serverid&scheme=$scheme&clientip=$remote_addr&invoke=transcode&$pargs; + on_push http://127.0.0.1:6080/v1/live/notify stage=start,done update=30s args=serverid=$serverid&scheme=$scheme&clientip=$remote_addr&invoke=hls&$pargs; + + hls off; + hls_path /tmp/hls; + hls_fragment 4000ms; + hls_max_fragment 10000ms; + hls_playlist_length 12000ms; + hls_type live; + + hls2 off; + mpegts_cache_time 0s; + + hls2_fragment 2000ms; + hls2_max_fragment 3000ms; + hls2_playlist_length 6000ms; + + live on; + # wait_key on; + # wait_video on; + cache_time 1s; + send_all on; + low_latency off; + fix_timestamp 0s; +# h265 codecid, default 12 + hevc_codecid 12; + } + + application * { + on_play http://127.0.0.1:6080/v1/live/notify stage=start,done update=30s args=serverid=$serverid&scheme=$scheme&clietip=$remote_addr&$pargs; + on_publish http://127.0.0.1:6080/v1/live/notify stage=start,update,done update=10s args=serverid=$serverid&scheme=$scheme&clientip=$remote_addr&$pargs; + on_pull http://127.0.0.1:6080/v1/live/notify stage=start,done update=30s args=serverid=$serverid&scheme=$scheme&clientip=$remote_addr&$pargs; + on_push http://127.0.0.1:6080/v1/live/notify stage=start,done update=30s args=serverid=$serverid&scheme=$scheme&clientip=$remote_addr&invoke=push&$pargs; + on_push http://127.0.0.1:6080/v1/live/notify stage=start,done update=30s args=serverid=$serverid&scheme=$scheme&clientip=$remote_addr&invoke=record&$pargs; + on_push http://127.0.0.1:6080/v1/live/notify stage=start,done update=30s args=serverid=$serverid&scheme=$scheme&clientip=$remote_addr&invoke=transcode&$pargs; + on_push http://127.0.0.1:6080/v1/live/notify stage=start,done update=30s args=serverid=$serverid&scheme=$scheme&clientip=$remote_addr&invoke=hls&$pargs; + + live_record off; + live_record_path /data/record; + + hls off; + hls_path /tmp/hls; + hls_fragment 4000ms; + hls_max_fragment 10000ms; + hls_playlist_length 12000ms; + hls_type live; + + hls2 off; + mpegts_cache_time 0s; + + hls2_fragment 2000ms; + hls2_max_fragment 3000ms; + hls2_playlist_length 6000ms; + + live on; + wait_key on; + wait_video on; + cache_time 1s; + send_all on; + low_latency off; + fix_timestamp 0s; +# h265 codecid, default 12 + hevc_codecid 12; + } + } +} + +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" "$http_X-Real-IP" "$host"'; + + access_log logs/access.log main; + + sendfile on; + #tcp_nopush on; + + #keepalive_timeout 0; + keepalive_timeout 65; + + #reset_server_name www.test1.com www.test2.com; + #gzip on; + + server { + listen 80; + listen 443 ssl; + ssl_certificate /cert/fullchain.pem; + ssl_certificate_key /cert/privkey.pem; + location /rtmp_stat { + rtmp_stat all; + rtmp_stat_stylesheet /stat.xsl; + } + + location /xstat { + rtmp_stat all; + } + + location /sys_stat { + sys_stat; + } + + location /proxy/ { + rewrite ^/proxy/(.*) /sys_stat break; + proxy_pass http://$1:; + } + + location /bs { + broadcast unix:/tmp/http /proxy; + broadcast_rewrite_prefix "," [; + broadcast_suffix ]; + return 200; + } + + location ~ .mp4$ { + root html; + #mp4; + } + + location /control { + rtmp_control all; + } + location /flv { + flv_live 1935; + chunked_transfer_encoding off; + add_header 'Access-Control-Allow-Origin' '*'; + add_header "Access-Control-Allow-Credentials" "true"; + add_header "Access-Control-Allow-Methods" "*"; + add_header "Access-Control-Allow-Headers" "Content-Type,Access-Token"; + add_header "Access-Control-Expose-Headers" "*"; + } + location /ts { + ts_live 1935 app=live; + expires -1; + add_header 'Access-Control-Allow-Origin' '*'; + add_header "Access-Control-Allow-Credentials" "true"; + add_header "Access-Control-Allow-Methods" "*"; + add_header "Access-Control-Allow-Headers" "Content-Type,Access-Token"; + add_header "Access-Control-Expose-Headers" "*"; + } + location /hls { + types { + application/vnd.apple.mpegurl m3u8; + video/mp2t ts; + } + root /tmp; + 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" "*"; + add_header "Access-Control-Allow-Headers" "Content-Type,Access-Token"; + add_header "Access-Control-Expose-Headers" "*"; + } + location / { + if ($request_method = 'OPTIONS') { + add_header 'Access-Control-Allow-Origin' '*' always; + add_header 'Access-Control-Allow-Methods' 'GET,POST,OPTIONS,PUT,DELETE' always; + add_header 'Access-Control-Allow-Headers' '*' always; + add_header 'Access-Control-Max-Age' 1728000 always; + add_header 'Content-Length' 0; + add_header 'Content-Type' 'text/plain; charset=utf-8'; + return 200; + } + chunked_transfer_encoding on; + root html/; + } + } +} \ No newline at end of file diff --git a/docker/conf/nginx-live.conf b/docker/conf/nginx-live.conf index e8cdfc5..0f8a18e 100644 --- a/docker/conf/nginx-live.conf +++ b/docker/conf/nginx-live.conf @@ -1,7 +1,7 @@ user root; daemon off; master_process on; -worker_processes auto; +worker_processes 1; #worker_rlimit 4g; #error_log logs/error.log; @@ -47,13 +47,13 @@ rtmp { idle_streams off; application audio { - on_play http://127.0.0.1:6080/v1/live/notify stage=start,done update=30 args=serverid=$serverid&scheme=$scheme&clietip=$remote_addr&$pargs; - on_publish http://127.0.0.1:6080/v1/live/notify stage=start,update,done update=10 args=serverid=$serverid&scheme=$scheme&clientip=$remote_addr&$pargs; - on_pull http://127.0.0.1:6080/v1/live/notify stage=start,done update=30 args=serverid=$serverid&scheme=$scheme&clientip=$remote_addr&$pargs; - on_push http://127.0.0.1:6080/v1/live/notify stage=start,done update=30 args=serverid=$serverid&scheme=$scheme&clientip=$remote_addr&invoke=push&$pargs; - on_push http://127.0.0.1:6080/v1/live/notify stage=start,done update=30 args=serverid=$serverid&scheme=$scheme&clientip=$remote_addr&invoke=record&$pargs; - on_push http://127.0.0.1:6080/v1/live/notify stage=start,done update=30 args=serverid=$serverid&scheme=$scheme&clientip=$remote_addr&invoke=transcode&$pargs; - on_push http://127.0.0.1:6080/v1/live/notify stage=start,done update=30 args=serverid=$serverid&scheme=$scheme&clientip=$remote_addr&invoke=hls&$pargs; + on_play http://127.0.0.1:6080/v1/live/notify stage=start,done update=30s args=serverid=$serverid&scheme=$scheme&clietip=$remote_addr&$pargs; + on_publish http://127.0.0.1:6080/v1/live/notify stage=start,update,done update=10s args=serverid=$serverid&scheme=$scheme&clientip=$remote_addr&$pargs; + on_pull http://127.0.0.1:6080/v1/live/notify stage=start,done update=30s args=serverid=$serverid&scheme=$scheme&clientip=$remote_addr&$pargs; + on_push http://127.0.0.1:6080/v1/live/notify stage=start,done update=30s args=serverid=$serverid&scheme=$scheme&clientip=$remote_addr&invoke=push&$pargs; + on_push http://127.0.0.1:6080/v1/live/notify stage=start,done update=30s args=serverid=$serverid&scheme=$scheme&clientip=$remote_addr&invoke=record&$pargs; + on_push http://127.0.0.1:6080/v1/live/notify stage=start,done update=30s args=serverid=$serverid&scheme=$scheme&clientip=$remote_addr&invoke=transcode&$pargs; + on_push http://127.0.0.1:6080/v1/live/notify stage=start,done update=30s args=serverid=$serverid&scheme=$scheme&clientip=$remote_addr&invoke=hls&$pargs; hls off; hls_path /tmp/hls; @@ -81,13 +81,13 @@ rtmp { } application * { - on_play http://127.0.0.1:6080/v1/live/notify stage=start,done update=30 args=serverid=$serverid&scheme=$scheme&clietip=$remote_addr&$pargs; - on_publish http://127.0.0.1:6080/v1/live/notify stage=start,update,done update=10 args=serverid=$serverid&scheme=$scheme&clientip=$remote_addr&$pargs; - on_pull http://127.0.0.1:6080/v1/live/notify stage=start,done update=30 args=serverid=$serverid&scheme=$scheme&clientip=$remote_addr&$pargs; - on_push http://127.0.0.1:6080/v1/live/notify stage=start,done update=30 args=serverid=$serverid&scheme=$scheme&clientip=$remote_addr&invoke=push&$pargs; - on_push http://127.0.0.1:6080/v1/live/notify stage=start,done update=30 args=serverid=$serverid&scheme=$scheme&clientip=$remote_addr&invoke=record&$pargs; - on_push http://127.0.0.1:6080/v1/live/notify stage=start,done update=30 args=serverid=$serverid&scheme=$scheme&clientip=$remote_addr&invoke=transcode&$pargs; - on_push http://127.0.0.1:6080/v1/live/notify stage=start,done update=30 args=serverid=$serverid&scheme=$scheme&clientip=$remote_addr&invoke=hls&$pargs; + on_play http://127.0.0.1:6080/v1/live/notify stage=start,done update=30s args=serverid=$serverid&scheme=$scheme&clietip=$remote_addr&$pargs; + on_publish http://127.0.0.1:6080/v1/live/notify stage=start,update,done update=10s args=serverid=$serverid&scheme=$scheme&clientip=$remote_addr&$pargs; + on_pull http://127.0.0.1:6080/v1/live/notify stage=start,done update=30s args=serverid=$serverid&scheme=$scheme&clientip=$remote_addr&$pargs; + on_push http://127.0.0.1:6080/v1/live/notify stage=start,done update=30s args=serverid=$serverid&scheme=$scheme&clientip=$remote_addr&invoke=push&$pargs; + on_push http://127.0.0.1:6080/v1/live/notify stage=start,done update=30s args=serverid=$serverid&scheme=$scheme&clientip=$remote_addr&invoke=record&$pargs; + on_push http://127.0.0.1:6080/v1/live/notify stage=start,done update=30s args=serverid=$serverid&scheme=$scheme&clientip=$remote_addr&invoke=transcode&$pargs; + on_push http://127.0.0.1:6080/v1/live/notify stage=start,done update=30s args=serverid=$serverid&scheme=$scheme&clientip=$remote_addr&invoke=hls&$pargs; live_record off; live_record_path /data/record; @@ -209,9 +209,18 @@ http { add_header "Access-Control-Expose-Headers" "*"; } - location / { - chunked_transfer_encoding on; - root html/; - } + location / { + if ($request_method = 'OPTIONS') { + add_header 'Access-Control-Allow-Origin' '*' always; + add_header 'Access-Control-Allow-Methods' 'GET,POST,OPTIONS,PUT,DELETE' always; + add_header 'Access-Control-Allow-Headers' '*' always; + add_header 'Access-Control-Max-Age' 1728000 always; + add_header 'Content-Length' 0; + add_header 'Content-Type' 'text/plain; charset=utf-8'; + return 200; + } + chunked_transfer_encoding on; + root html/; + } } } \ No newline at end of file diff --git a/docker/conf/nginx-record.conf b/docker/conf/nginx-record.conf index bee63e1..710ab44 100644 --- a/docker/conf/nginx-record.conf +++ b/docker/conf/nginx-record.conf @@ -1,7 +1,7 @@ user root; daemon off; master_process on; -worker_processes auto; +worker_processes 1; #worker_rlimit 4g; #error_log logs/error.log; @@ -48,14 +48,14 @@ rtmp { application * { idle_streams off; - on_publish http://127.0.0.1:6080/v1/record/notify stage=start,done update=10 args=serverid=$serverid&scheme=$scheme&clientip=$remote_addr&$pargs; + on_publish http://127.0.0.1:6080/v1/record/notify stage=start,done update=10s args=serverid=$serverid&scheme=$scheme&clientip=$remote_addr&$pargs; live on; hls2 on; mpegts_cache_time 90s; mpegts_send_all on; mpegts_low_latency off; - mpegts_one_off_send 90s; + mpegts_one_off_send 95s; hls2_fragment 2000ms; hls2_max_fragment 3000ms; hls2_playlist_length 6000ms; @@ -128,7 +128,15 @@ http { location /control { rtmp_control all; } - + location /ts { + ts_live 1935 app=live; + expires -1; + add_header 'Access-Control-Allow-Origin' '*'; + add_header "Access-Control-Allow-Credentials" "true"; + add_header "Access-Control-Allow-Methods" "*"; + add_header "Access-Control-Allow-Headers" "Content-Type,Access-Token"; + add_header "Access-Control-Expose-Headers" "*"; + } location /flv { flv_live 1935; chunked_transfer_encoding off; @@ -140,6 +148,15 @@ http { } location / { + if ($request_method = 'OPTIONS') { + add_header 'Access-Control-Allow-Origin' '*' always; + add_header 'Access-Control-Allow-Methods' 'GET,POST,OPTIONS,PUT,DELETE' always; + add_header 'Access-Control-Allow-Headers' '*' always; + add_header 'Access-Control-Max-Age' 1728000 always; + add_header 'Content-Length' 0; + add_header 'Content-Type' 'text/plain; charset=utf-8'; + return 200; + } chunked_transfer_encoding on; root html/; } diff --git a/docker/conf/nginx-transcode.conf b/docker/conf/nginx-transcode.conf index 77837de..1290520 100644 --- a/docker/conf/nginx-transcode.conf +++ b/docker/conf/nginx-transcode.conf @@ -1,7 +1,7 @@ user root; daemon off; master_process on; -worker_processes auto; +worker_processes 1; #worker_rlimit 4g; #error_log logs/error.log; @@ -47,7 +47,7 @@ rtmp { idle_streams off; application * { - on_meta http://127.0.0.1:6080/v1/transcode/notify stage=start,done update=10 args=$metadata&$pargs; + on_meta http://127.0.0.1:6080/v1/transcode/notify stage=start,done update=10s args=$metadata&$pargs; on_meta_once on; live on; @@ -130,6 +130,15 @@ http { } location / { + if ($request_method = 'OPTIONS') { + add_header 'Access-Control-Allow-Origin' '*' always; + add_header 'Access-Control-Allow-Methods' 'GET,POST,OPTIONS,PUT,DELETE' always; + add_header 'Access-Control-Allow-Headers' '*' always; + add_header 'Access-Control-Max-Age' 1728000 always; + add_header 'Content-Length' 0; + add_header 'Content-Type' 'text/plain; charset=utf-8'; + return 200; + } chunked_transfer_encoding on; root html/; } diff --git a/docker/conf/nginx.conf b/docker/conf/nginx.conf index fc48c87..45f8234 100644 --- a/docker/conf/nginx.conf +++ b/docker/conf/nginx.conf @@ -138,8 +138,17 @@ http { } location / { - chunked_transfer_encoding on; - root html/; + if ($request_method = 'OPTIONS') { + add_header 'Access-Control-Allow-Origin' '*' always; + add_header 'Access-Control-Allow-Methods' 'GET,POST,OPTIONS,PUT,DELETE' always; + add_header 'Access-Control-Allow-Headers' '*' always; + add_header 'Access-Control-Max-Age' 1728000 always; + add_header 'Content-Length' 0; + add_header 'Content-Type' 'text/plain; charset=utf-8'; + return 200; + } + chunked_transfer_encoding on; + root html/; } } } diff --git a/modules/nginx-rtmp-module/ngx_rtmp_live_module.c b/modules/nginx-rtmp-module/ngx_rtmp_live_module.c index b7f389c..688180f 100644 --- a/modules/nginx-rtmp-module/ngx_rtmp_live_module.c +++ b/modules/nginx-rtmp-module/ngx_rtmp_live_module.c @@ -714,9 +714,9 @@ ngx_rtmp_live_av(ngx_rtmp_session_t *s, ngx_rtmp_header_t *h, ngx_add_timer(&ctx->idle_evt, lacf->idle_timeout); } - ngx_log_debug2(NGX_LOG_DEBUG_RTMP, s->log, 0, - "live: %s packet timestamp=%uD", - MSG_TYPE, h->timestamp); + // ngx_log_error(NGX_LOG_INFO, s->log, 0, + // "live: %s packet timestamp=%uD", + // MSG_TYPE, h->timestamp); s->current_time = h->timestamp; diff --git a/release.sh b/release.sh index 963f72e..aeeceae 100755 --- a/release.sh +++ b/release.sh @@ -266,7 +266,7 @@ then if [ ! -d $WWW_ROOT"/h5player" ] then cd $WWW_ROOT - git clone https://github.com/pingostack/h5player.git + #git clone https://github.com/pingostack/h5player.git cd $OPWD fi fi