streaming-cdn/streaming-server.conf

130 lines
3.2 KiB
Plaintext

user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;
events {
worker_connections 768;
# multi_accept on;
}
rtmp {
hls_playlist_length 30m;
server {
listen 1935;
chunk_size 4000;
application stream {
live on;
#record all;
#record_path /tmp/av;
#record_max_size 1M;
#record_unique on;
#allow publish 192.168.*.*;
#deny publish all;
exec ffmpeg -re -i rtmp://localhost:1935/$app/$name -vcodec flv -acodec copy -s 1920x1080
-vcodec h264_nvenc -s 1920x1080 -vprofile baseline -acodec copy -f flv rtmp://localhost:1935/hls/$name_1080p
-vcodec h264_nvenc -s 1280x720 -vprofile baseline -acodec copy -f flv rtmp://localhost:1935/hls/$name_720p
-vcodec h264_nvenc -s 848x480 -vprofile baseline -acodec copy -f flv rtmp://localhost:1935/hls/$name_480p
;
# exec ffmpeg -re -i rtmp://localhost:1935/$app/$name -vcodec flv -acodec copy -s 1280x720
# -f flv rtmp://localhost:1935/720p/${name}
# -vcodec h264_nvenc -s 1280x720 -vprofile baseline -acodec copy -f flv rtmp://localhost:1935/hls/720p
# -f flv rtmp://localhost:1935/dash/720p;
#
# exec ffmpeg -re -i rtmp://localhost:1935/$app/$name -vcodec flv -acodec copy -s 848x480
# -f flv rtmp://localhost:1935/480p/${name}
# -vcodec h264_nvenc -s 848x480 -vprofile baseline -acodec copy -f flv rtmp://localhost:1935/hls/480p
# -f flv rtmp://localhost:1935/dash/480p;
#
# exec ffmpeg -re -i rtmp://localhost:1935/$app/$name -vcodec flv -acodec copy -s 32x32
# -f flv rtmp://localhost:1935/small/${name};
}
# application 1080p {
# live on;
# }
#
# application 720p {
# live on;
# }
#
# application 480p {
# live on;
# }
#
# application small {
# live on;
# }
application hls {
live on;
hls on;
hls_path /tmp/hls;
hls_nested on;
hls_variant _480p RESOLUTION=848x480;
hls_variant _720p RESOLUTION=1280x720;
hls_variant _1080p RESOLUTION=1920x1080;
}
application dash {
live on;
dash on;
dash_path /tmp/dash;
}
}
}
http {
server {
listen 8080;
listen [::]:8080;
# This URL provides RTMP statistics in XML
location /stat {
rtmp_stat all;
# Use this stylesheet to view XML as web page
# in browser
rtmp_stat_stylesheet stat.xsl;
}
location /stat.xsl {
# XML stylesheet to view RTMP stats.
# Copy stat.xsl wherever you want
# and put the full directory path here
root /var/www/;
}
location /hls {
# Serve HLS fragments
types {
application/vnd.apple.mpegurl m3u8;
video/mp2t ts;
}
root /tmp;
add_header Cache-Control no-cache;
}
location /hls/main.m3u8 {
root /var/www/;
}
location /dash {
# Serve DASH fragments
root /tmp;
add_header Cache-Control no-cache;
}
location / {
# Serve static html files
root /var/www/html;
}
}
}