Init streaming config

master
Yuri van Midden 4 years ago
commit 8d86aad759
  1. 39
      docker-compose.yml
  2. 97
      nginx.conf
  3. 97
      nginx.conf.copy

@ -0,0 +1,39 @@
version: "3.5"
services:
nginx-streamer:
image: alfg/nginx-rtmp
restart: unless-stopped
ports:
- 1935:1935
- 8080:80
- 8443:443
environment:
- HTTP_PORT=80
- RTMP_PORT=1935
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf.template
- /data/teampresentaties_recording:/data
htc_page:
build: ./harambee-tv
restart: unless-stopped
container_name: htc_page
volumes:
- ./harambee-tv/site:/usr/local/apache2/htdocs
ports:
- 80:80
# proxy:
# image: jwilder/nginx-proxy:alpine
# container_name: pre-u-db-proxy
# volumes:
# - /var/run/docker.sock:/tmp/docker.sock:ro
# - ./dev/certs:/etc/nginx/certs
# - ./docker/nginx/vhost.d:/etc/nginx/vhost.d
# environment:
# - TZ=Europe/Amsterdam
# - DEFAULT_HOST=harambee-woest.student.utwente.nl
# - SSL_POLICY=Mozilla-Modern
# ports:
# - "80:80"
# - "443:443"

@ -0,0 +1,97 @@
daemon off;
error_log /dev/stdout info;
events {
worker_connections 1024;
}
rtmp {
server {
listen 1935;
chunk_size 4000;
application stream {
live on;
exec ffmpeg -i rtmp://localhost:1935/stream/$name
-c:a libfdk_aac -b:a 128k -c:v libx264 -b:v 10000k -f flv -g 60 -r 60 -s 1920x1080 -preset fast -profile:v baseline rtmp://localhost:1935/hls/$name_1080p60_10128kbs
-c:a libfdk_aac -b:a 128k -c:v libx264 -b:v 8000k -f flv -g 30 -r 30 -s 1920x1080 -preset fast -profile:v baseline rtmp://localhost:1935/hls/$name_1080p8128kbs
-c:a libfdk_aac -b:a 128k -c:v libx264 -b:v 4000k -f flv -g 30 -r 30 -s 1280x720 -preset veryfast -profile:v baseline rtmp://localhost:1935/hls/$name_720p4128kbs
-c:a libfdk_aac -b:a 128k -c:v libx264 -b:v 8000k -f flv -g 60 -r 60 -s 1280x720 -preset veryfast -profile:v baseline rtmp://localhost:1935/hls/$name_720p60_4128kbs
-c:a libfdk_aac -b:a 128k -c:v libx264 -b:v 1000k -f flv -g 30 -r 30 -s 854x480 -preset superfast -profile:v baseline rtmp://localhost:1935/hls/$name_480p1128kbs
-c:a libfdk_aac -b:a 128k -c:v libx264 -b:v 750k -f flv -g 30 -r 30 -s 640x360 -preset superfast -profile:v baseline rtmp://localhost:1935/hls/$name_360p878kbs;
}
application hls {
live on;
hls on;
hls_fragment_naming system;
hls_fragment 5;
hls_playlist_length 10;
hls_path /opt/data/hls;
hls_nested on;
hls_variant _1080p60_10128kbs BANDWIDTH=10128000,RESOLUTION=1920x1080;
hls_variant _1080p8128kbs BANDWIDTH=8128000,RESOLUTION=1920x1080;
hls_variant _720p4128kbs BANDWIDTH=4128000,RESOLUTION=1280x720;
hls_variant _720p60_4128kbs BANDWIDTH=8128000,RESOLUTION=1280x720;
hls_variant _480p1128kbs BANDWIDTH=1128000,RESOLUTION=854x480;
hls_variant _360p878kbs BANDWIDTH=878000,RESOLUTION=640x360;
}
}
}
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;
# 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 /live {
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 static/stat.xsl;
}
location /static {
alias /www/static;
}
location = /crossdomain.xml {
root /www/static;
default_type text/xml;
expires 24h;
}
}
}

@ -0,0 +1,97 @@
daemon off;
error_log /dev/stdout info;
events {
worker_connections 1024;
}
rtmp {
server {
listen 1935;
chunk_size 4000;
application stream {
live on;
exec ffmpeg -i rtmp://localhost:1935/stream/$name
-c:a libfdk_aac -b:a 128k -c:v libx264 -b:v 8000k -f flv -g 30 -r 30 -s 1920x1080 -preset fast -profile:v baseline rtmp://localhost:1935/hls/$name_1080p8128kbs
-c:a libfdk_aac -b:a 128k -c:v libx264 -b:v 2500k -f flv -g 30 -r 30 -s 1280x720 -preset superfast -profile:v baseline rtmp://localhost:1935/hls/$name_720p2628kbs
-c:a libfdk_aac -b:a 128k -c:v libx264 -b:v 1000k -f flv -g 30 -r 30 -s 854x480 -preset superfast -profile:v baseline rtmp://localhost:1935/hls/$name_480p1128kbs
-c:a libfdk_aac -b:a 128k -c:v libx264 -b:v 750k -f flv -g 30 -r 30 -s 640x360 -preset superfast -profile:v baseline rtmp://localhost:1935/hls/$name_360p878kbs
-c:a libfdk_aac -b:a 128k -c:v libx264 -b:v 400k -f flv -g 30 -r 30 -s 426x240 -preset superfast -profile:v baseline rtmp://localhost:1935/hls/$name_240p528kbs
-c:a libfdk_aac -b:a 64k -c:v libx264 -b:v 200k -f flv -g 15 -r 15 -s 426x240 -preset superfast -profile:v baseline rtmp://localhost:1935/hls/$name_240p264kbs;
}
application hls {
live on;
hls on;
hls_fragment_naming system;
hls_fragment 5;
hls_playlist_length 10;
hls_path /opt/data/hls;
hls_nested on;
hls_variant _1080p8128kbs BANDWIDTH=8128000,RESOLUTION=1920x1080;
hls_variant _720p2628kbs BANDWIDTH=2628000,RESOLUTION=1280x720;
hls_variant _480p1128kbs BANDWIDTH=1128000,RESOLUTION=854x480;
hls_variant _360p878kbs BANDWIDTH=878000,RESOLUTION=640x360;
hls_variant _240p528kbs BANDWIDTH=528000,RESOLUTION=426x240;
hls_variant _240p264kbs BANDWIDTH=264000,RESOLUTION=426x240;
}
}
}
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;
# 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 /live {
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 static/stat.xsl;
}
location /static {
alias /www/static;
}
location = /crossdomain.xml {
root /www/static;
default_type text/xml;
expires 24h;
}
}
}
Loading…
Cancel
Save