rtmp_auto_push on; rtmp_auto_push_reconnect 1s; rtmp { server { #listen 1935; listen [::]:1935; chunk_size 4096; ping 30s; ping_timeout 15s; drop_idle_publisher 15s; application edge-data { live on; {% for h in osp_edge_allow %} allow publish {{ h }}; {% endfor %} deny publish all; allow play ::1; allow play 127.0.0.1; deny play all; 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_playlist_length 30m; hls_nested on; hls_fragment_naming sequential; } application edge-data-adapt { live on; {% for h in osp_edge_allow %} allow publish {{ h }}; {% endfor %} deny publish all; allow play ::1; allow play 127.0.0.1; deny play all; push rtmp://127.0.0.1:1935/live/; exec ffmpeg -i rtmp://127.0.0.1:1935/edge-data-adapt/$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://127.0.0.1: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://127.0.0.1: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://127.0.0.1:1935/show/$name_480; # -c copy -f flv rtmp://127.0.0.1:1935/show/$name_src; } application show { live on; allow publish ::1; allow publish 127.0.0.1; deny publish all; allow play ::1; allow play 127.0.0.1; deny play all; hls on; hls_path {{ osp_edge_http_path }}/live-adapt; hls_nested on; hls_fragment 1; #hls_playlist_length 30s; hls_playlist_length 30m; hls_fragment_naming sequential; 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 ::1; allow publish 127.0.0.1; deny publish all; allow play all; } } }