diff options
author | Christian Pointner <equinox@spreadspace.org> | 2018-02-11 03:01:01 +0100 |
---|---|---|
committer | Christian Pointner <equinox@spreadspace.org> | 2018-02-11 03:01:01 +0100 |
commit | b87695c4799fec6051be5885451b67690f3f8d3c (patch) | |
tree | 7687985f3ffbda3ffa8d0d97e5239dd0aa046c7f /templates/default/kubernetes/nginx-streamer-cm.yml.j2 | |
parent | it's better to have cluster ips for flumotion worker (diff) |
added very basic support for hls
Diffstat (limited to 'templates/default/kubernetes/nginx-streamer-cm.yml.j2')
-rw-r--r-- | templates/default/kubernetes/nginx-streamer-cm.yml.j2 | 106 |
1 files changed, 106 insertions, 0 deletions
diff --git a/templates/default/kubernetes/nginx-streamer-cm.yml.j2 b/templates/default/kubernetes/nginx-streamer-cm.yml.j2 new file mode 100644 index 0000000..4171305 --- /dev/null +++ b/templates/default/kubernetes/nginx-streamer-cm.yml.j2 @@ -0,0 +1,106 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + namespace: {{ namespace }} + name: nginx-streamer-{{ worker.name }} + labels: + app: nginx + type: streamer + worker: {{ worker.name }} +data: + nginx.conf: | + worker_processes 4; + pid /srv/nginx.pid; + error_log /dev/stderr notice; + + load_module modules/ngx_rtmp_module.so; + + events { + worker_connections 768; + # multi_accept on; + } + + http { + sendfile on; + tcp_nopush on; + tcp_nodelay on; + keepalive_timeout 65; + types_hash_max_size 2048; + + server_names_hash_bucket_size 64; + + include /etc/nginx/mime.types; + default_type application/octet-stream; + + access_log /dev/null; + + server { + listen 8000 default_server; + listen [::]:8000 default_server; + server_name _; + + root /srv/www; + + location / { + types { + application/vnd.apple.mpegurl m3u8; + } + expires -1s; + add_header Cache-Control "no-store,must-revalidate,max-age=0"; + } + } + } + + rtmp { + access_log /dev/null; + + server { + listen localhost:1935; + + respawn on; + + exec_static ffmpeg -i http://flumotion-worker-{{ worker.name }}:8000/av-orig-flash-mini.flv + -acodec copy -vcodec copy -vbsf h264_mp4toannexb -f flv rtmp://localhost/hls/av-orig-mini + -acodec copy -vcodec copy -vbsf h264_mp4toannexb -f flv rtmp://localhost/dash/av-orig-mini; + exec_static ffmpeg -i http://flumotion-worker-{{ worker.name }}:8000/av-orig-flash-low.flv + -acodec copy -vcodec copy -vbsf h264_mp4toannexb -f flv rtmp://localhost/hls/av-orig-low + -acodec copy -vcodec copy -vbsf h264_mp4toannexb -f flv rtmp://localhost/dash/av-orig-low; + exec_static ffmpeg -i http://flumotion-worker-{{ worker.name }}:8000/av-orig-flash-medium.flv + -acodec copy -vcodec copy -vbsf h264_mp4toannexb -f flv rtmp://localhost/hls/av-orig-medium + -acodec copy -vcodec copy -vbsf h264_mp4toannexb -f flv rtmp://localhost/dash/av-orig-medium; + exec_static ffmpeg -i http://flumotion-worker-{{ worker.name }}:8000/av-orig-flash-high.flv + -acodec copy -vcodec copy -vbsf h264_mp4toannexb -f flv rtmp://localhost/hls/av-orig-high + -acodec copy -vcodec copy -vbsf h264_mp4toannexb -f flv rtmp://localhost/dash/av-orig-high; + + application hls { + live on; + + hls on; + hls_path /srv/www/hls; + hls_fragment 3; + hls_playlist_length 12; + hls_nested on; + hls_cleanup on; + hls_fragment_naming timestamp; + hls_fragment_slicing aligned; + hls_type live; + hls_base_url http://localhost:8000/hls/; + + hls_variant -mini BANDWIDTH=350000; + hls_variant -low BANDWIDTH=700000; + hls_variant -medium BANDWIDTH=1200000; + hls_variant -high BANDWIDTH=2000000; + } + + application dash { + live on; + + dash on; + dash_path /srv/www/dash; + dash_fragment 3; + dash_playlist_length 12; + dash_nested on; + dash_cleanup on; + } + } + } |