init version
This commit is contained in:
parent
676d6bcd04
commit
11d7e0162b
|
@ -0,0 +1,8 @@
|
||||||
|
osp_edge_http_user: "http"
|
||||||
|
osp_edge_http_group: "http"
|
||||||
|
osp_edge_http_path: "/var/www"
|
||||||
|
osp_edge_allow:
|
||||||
|
- "::1"
|
||||||
|
- "127.0.0.1"
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
- name: reload nginx
|
||||||
|
systemd:
|
||||||
|
name: nginx
|
||||||
|
state: reloaded
|
|
@ -0,0 +1,2 @@
|
||||||
|
dependencies:
|
||||||
|
- kewlfft.aur
|
|
@ -0,0 +1,56 @@
|
||||||
|
- name: Workaround ansible switch between users
|
||||||
|
file:
|
||||||
|
path: "/tmp/ansible/"
|
||||||
|
mode: 0777
|
||||||
|
state: directory
|
||||||
|
|
||||||
|
- name: Install dependencies
|
||||||
|
package:
|
||||||
|
name:
|
||||||
|
- ffmpeg
|
||||||
|
- base-devel
|
||||||
|
- yay
|
||||||
|
|
||||||
|
- name: Create AUR User for build
|
||||||
|
user:
|
||||||
|
name: aur_builder
|
||||||
|
|
||||||
|
- name: Add sudo permission to aur user
|
||||||
|
lineinfile:
|
||||||
|
path: /etc/sudoers.d/11-install-aur_builder
|
||||||
|
line: 'aur_builder ALL=(ALL) NOPASSWD: /usr/bin/pacman'
|
||||||
|
create: yes
|
||||||
|
validate: 'visudo -cf %s'
|
||||||
|
|
||||||
|
- name: Install nginx with rtmp
|
||||||
|
become: yes
|
||||||
|
become_user: aur_builder
|
||||||
|
aur:
|
||||||
|
name: nginx-rtmp-sergey-git
|
||||||
|
|
||||||
|
- name: Configure NGINX
|
||||||
|
notify: reload nginx
|
||||||
|
template:
|
||||||
|
src: "{{ item }}"
|
||||||
|
dest: "/etc/nginx/{{ item }}"
|
||||||
|
loop:
|
||||||
|
- nginx.conf
|
||||||
|
- osp-rtmp.conf
|
||||||
|
- osp-redirects.conf
|
||||||
|
|
||||||
|
- name: Create www directory
|
||||||
|
file:
|
||||||
|
path: "{{osp_edge_http_path }}/{{item}}"
|
||||||
|
owner: "{{ osp_edge_http_user }}"
|
||||||
|
group: "{{ osp_edge_http_group }}"
|
||||||
|
state: directory
|
||||||
|
loop:
|
||||||
|
- .
|
||||||
|
- live
|
||||||
|
- live-adapt
|
||||||
|
|
||||||
|
- name: Nginx
|
||||||
|
systemd:
|
||||||
|
name: nginx
|
||||||
|
state: started
|
||||||
|
enabled: yes
|
|
@ -0,0 +1,100 @@
|
||||||
|
user {{ osp_edge_http_user }};
|
||||||
|
worker_processes auto;
|
||||||
|
|
||||||
|
# pid in nginx.service
|
||||||
|
# pid /run/nginx.pid;
|
||||||
|
|
||||||
|
events {
|
||||||
|
worker_connections 1024;
|
||||||
|
multi_accept on;
|
||||||
|
use epoll;
|
||||||
|
}
|
||||||
|
|
||||||
|
http {
|
||||||
|
types_hash_max_size 2048;
|
||||||
|
types_hash_bucket_size 128;
|
||||||
|
|
||||||
|
include mime.types;
|
||||||
|
default_type application/octet-stream;
|
||||||
|
|
||||||
|
proxy_cache_path /tmp/osp levels=1:2 keys_zone=auth_cache:5m max_size=1g inactive=24h;
|
||||||
|
|
||||||
|
sendfile on;
|
||||||
|
tcp_nopush on;
|
||||||
|
gzip on;
|
||||||
|
gzip_comp_level 5;
|
||||||
|
gzip_min_length 256;
|
||||||
|
gzip_proxied any;
|
||||||
|
gzip_vary on;
|
||||||
|
|
||||||
|
gzip_types
|
||||||
|
application/atom+xml
|
||||||
|
application/javascript
|
||||||
|
application/json
|
||||||
|
application/ld+json
|
||||||
|
application/manifest+json
|
||||||
|
application/rss+xml
|
||||||
|
application/vnd.geo+json
|
||||||
|
application/vnd.ms-fontobject
|
||||||
|
application/x-font-ttf
|
||||||
|
application/x-web-app-manifest+json
|
||||||
|
application/xhtml+xml
|
||||||
|
application/xml
|
||||||
|
font/opentype
|
||||||
|
image/bmp
|
||||||
|
image/svg+xml
|
||||||
|
image/x-icon
|
||||||
|
image/gif
|
||||||
|
image/png
|
||||||
|
video/mp4
|
||||||
|
video/mpeg
|
||||||
|
video/x-flv
|
||||||
|
text/cache-manifest
|
||||||
|
text/css
|
||||||
|
text/plain
|
||||||
|
text/vcard
|
||||||
|
text/vnd.rim.location.xloc
|
||||||
|
text/vtt
|
||||||
|
text/x-component
|
||||||
|
text/x-cross-domain-policy;
|
||||||
|
|
||||||
|
|
||||||
|
keepalive_timeout 65;
|
||||||
|
|
||||||
|
server {
|
||||||
|
listen 9000;
|
||||||
|
|
||||||
|
allow 127.0.0.1; # keep save there is one allowed
|
||||||
|
{% for h in osp_edge_allow %}
|
||||||
|
allow {{ h }};
|
||||||
|
{% endfor %}
|
||||||
|
deny all;
|
||||||
|
|
||||||
|
location /stat {
|
||||||
|
rtmp_stat all;
|
||||||
|
rtmp_stat_stylesheet stat.xsl;
|
||||||
|
}
|
||||||
|
|
||||||
|
location /stat.xsl {
|
||||||
|
root /opt/osp/static;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
server {
|
||||||
|
listen 80;
|
||||||
|
listen [::]:80;
|
||||||
|
|
||||||
|
# set client body size to 16M #
|
||||||
|
client_max_body_size 16M;
|
||||||
|
|
||||||
|
include osp-redirects.conf;
|
||||||
|
|
||||||
|
# redirect server error pages to the static page /50x.html
|
||||||
|
error_page 500 502 503 504 /50x.html;
|
||||||
|
location = /50x.html {
|
||||||
|
root html;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
include osp-rtmp.conf;
|
|
@ -0,0 +1,17 @@
|
||||||
|
location /live-adapt {
|
||||||
|
add_header 'Access-Control-Allow-Origin' "*" always;
|
||||||
|
valid_referers server_names ~.;
|
||||||
|
if ($invalid_referer) {
|
||||||
|
return 403;
|
||||||
|
}
|
||||||
|
alias {{ osp_edge_http_path }}/live-adapt;
|
||||||
|
}
|
||||||
|
|
||||||
|
location /live {
|
||||||
|
add_header 'Access-Control-Allow-Origin' "*" always;
|
||||||
|
valid_referers server_names ~.;
|
||||||
|
if ($invalid_referer) {
|
||||||
|
return 403;
|
||||||
|
}
|
||||||
|
alias {{osp_edge_http_path}}/live;
|
||||||
|
}
|
|
@ -0,0 +1,79 @@
|
||||||
|
rtmp_auto_push on;
|
||||||
|
rtmp_auto_push_reconnect 1s;
|
||||||
|
|
||||||
|
rtmp {
|
||||||
|
server {
|
||||||
|
#listen 1935;
|
||||||
|
listen [::]:1935;
|
||||||
|
chunk_size 4096;
|
||||||
|
|
||||||
|
application stream-data {
|
||||||
|
live on;
|
||||||
|
|
||||||
|
{% for h in osp_edge_allow %}
|
||||||
|
allow publish {{ h }};
|
||||||
|
{% endfor %}
|
||||||
|
#deny publish all;
|
||||||
|
allow play 127.0.0.1;
|
||||||
|
|
||||||
|
push rtmp://127.0.0.1:1935/live/;
|
||||||
|
|
||||||
|
hls on;
|
||||||
|
hls_path {{ osp_edge_http_path }}/live;
|
||||||
|
hls_fragment 1;
|
||||||
|
hls_playlist_length 30s;
|
||||||
|
|
||||||
|
hls_nested on;
|
||||||
|
hls_fragment_naming system;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
application stream-data-adapt {
|
||||||
|
live on;
|
||||||
|
|
||||||
|
{% for h in osp_edge_allow %}
|
||||||
|
allow publish {{ h }};
|
||||||
|
{% endfor %}
|
||||||
|
#deny publish all;
|
||||||
|
allow play 127.0.0.1;
|
||||||
|
|
||||||
|
push rtmp://127.0.0.1:1935/live/;
|
||||||
|
|
||||||
|
exec ffmpeg -i rtmp://127.0.0.1:1935/live/$name
|
||||||
|
-c:v libx264 -c:a aac -b:a 192k -vf "scale=-2:1080" -vsync 1 -copyts -start_at_zero -sws_flags lanczos -r 30 -g 30 -keyint_min 30 -force_key_frames "expr:gte(t,n_forced*1)" -tune zerolatency -preset ultrafast -crf 28 -maxrate 4192k -bufsize 8384k -threads 4 -f flv rtmp://localhost:1935/show/$name_1080
|
||||||
|
-c:v libx264 -c:a aac -b:a 128k -vf "scale=-2:720" -vsync 1 -copyts -start_at_zero -sws_flags lanczos -r 30 -g 30 -keyint_min 30 -force_key_frames "expr:gte(t,n_forced*1)" -tune zerolatency -preset ultrafast -crf 28 -maxrate 2096k -bufsize 4192k -threads 4 -f flv rtmp://localhost:1935/show/$name_720
|
||||||
|
-c:v libx264 -c:a aac -b:a 96k -vf "scale=-2:480" -vsync 1 -copyts -start_at_zero -sws_flags lanczos -r 30 -g 30 -keyint_min 30 -force_key_frames "expr:gte(t,n_forced*1)" -tune zerolatency -preset ultrafast -crf 28 -maxrate 1200k -bufsize 2400k -threads 4 -f flv rtmp://localhost:1935/show/$name_480;
|
||||||
|
# -c copy -f flv rtmp://localhost:1935/show/$name_src;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
application show {
|
||||||
|
live on;
|
||||||
|
allow publish 127.0.0.1;
|
||||||
|
allow play 127.0.0.1;
|
||||||
|
|
||||||
|
hls on;
|
||||||
|
hls_path {{ osp_edge_http_path }}/live-adapt;
|
||||||
|
hls_nested on;
|
||||||
|
hls_fragment 1;
|
||||||
|
hls_playlist_length 30s;
|
||||||
|
|
||||||
|
hls_fragment_naming system;
|
||||||
|
|
||||||
|
record off;
|
||||||
|
|
||||||
|
# Instruct clients to adjust resolution according to bandwidth
|
||||||
|
hls_variant _480 BANDWIDTH=1200000; # Medium bitrate, SD resolution
|
||||||
|
hls_variant _720 BANDWIDTH=2048000; # High bitrate, HD 720p resolution
|
||||||
|
hls_variant _1080 BANDWIDTH=4096000; # FHB 1080p
|
||||||
|
#hls_variant _src BANDWIDTH=4096000; # Source bitrate, source resolution
|
||||||
|
}
|
||||||
|
|
||||||
|
application live {
|
||||||
|
live on;
|
||||||
|
drop_idle_publisher 30s;
|
||||||
|
allow publish 127.0.0.1;
|
||||||
|
allow play all;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue