From bdc6212d95edb16cb998a0eed215c84d6918a695 Mon Sep 17 00:00:00 2001 From: devdatt Date: Fri, 28 Nov 2025 13:38:13 +0530 Subject: [PATCH] update --- encoder/static.php | 161 +++++++++++++++++++++++++-------------------- install.sh | 1 + 2 files changed, 91 insertions(+), 71 deletions(-) diff --git a/encoder/static.php b/encoder/static.php index ef406ac..e8f31c2 100755 --- a/encoder/static.php +++ b/encoder/static.php @@ -1,54 +1,17 @@ 'live', ], 'srt' => [ - 'stream_id_1' => 'har', - 'stream_id_2' => 'har', - 'stream_id_3' => 'mahadev', + 'stream_id_1' => 'pass1', + 'stream_id_2' => 'pass2', + 'stream_id_3' => 'pass3', ], 'udp' => 'udp://@224.1.1.1:8000', 'custom' => '', @@ -80,15 +43,11 @@ function update_service($which_service) } $input_source = $data['input']; - $input_rtmp_port = $data['rtmp']['port']; $input_rtmp_mount = $data['rtmp']['mount']; $input_rtmp_pass = $data['rtmp']['password']; - $input_port_srt = $data['srt']['port']; - - if ($input_rtmp_port === "80" || $input_rtmp_port === "443" || $input_port_srt === "80" || $input_port_srt === "443") { - echo ''; - die(); - } + $srt_pass1 = $data['stream_id_1']['pass1']; + $srt_pass2 = $data['stream_id_2']['pass2']; + $srt_pass3 = $data['stream_id_3']['pass3']; switch ($input_source) { case "hdmi": @@ -99,14 +58,13 @@ function update_service($which_service) $input .= "ffmpeg -hwaccel auto -stream_loop -1 -re -i " . $data['url']; break; case "udp": - $input .= 'ffmpeg -hwaccel auto -stream_loop -1 -re -i "' . $data['udp']."?reuse=1&fifo_size=1000000&overrun_nonfatal=1".'"'; + $input .= 'ffmpeg -hwaccel auto -stream_loop -1 -re -i "' . $data['udp']; break; case "rtmp": $input .= "ffmpeg -hwaccel auto -stream_loop -1 -re -i rtmp://127.0.0.1:1935/" . $$input_rtmp_mount . "/" . $input_rtmp_pass; break; case "srt": - $input .= "-stream_loop -1 -re -i srt://127.0.0.1:1937/" . $data['srt']['stream_id_1'] . "/" . $data['srt']['stream_id_2'] . "/" . $data['srt']['stream_id_3']; - $input_port_srt = $data['srt']['port']; + $input .= "ffmpeg -hwaccel auto -stream_loop -1 -re -i srt://127.0.0.1:1937/" . $srt_pass1 . "/" . $srt_pass2 . "/" . $srt_pass3; break; } $input .= " "; @@ -166,19 +124,19 @@ function update_service($which_service) $rtmp_multiple = $data['rtmp_multiple']; $srt_multiple = $data['srt_multiple']; - $input .= ' -c:v h264_qsv -b:v ' . $data['video']['data_rate'] . ' -maxrate ' . $data['video']['data_rate'] . ' -bufsize 10M -g ' . $data['video']['gop'] . ' -af "aresample=async=1:first_pts=0" ' . - ' -c:a ' . $data['audio']['format'] . ' -ar ' . $data['audio']['sample_rate'] . ' -b:a ' . $data['audio']['bit_rate'] . ' -f mpegts udp://127.0.0.1:39000'; - - $service = $input; - $file = "/var/www/encoder-main.sh"; - if (file_put_contents($file, $service) !== false) { - echo "File saved."; - } else { - echo "Error writing file."; - } switch ($which_service) { case 'input': + $input .= ' -c:v h264_qsv -b:v ' . $data['video']['data_rate'] . ' -maxrate ' . $data['video']['data_rate'] . ' -bufsize 11M -g ' . $data['video']['gop'] . ' -af "aresample=async=1:first_pts=0" ' . + ' -c:a ' . $data['audio']['format'] . ' -ar ' . $data['audio']['sample_rate'] . ' -b:a ' . $data['audio']['bit_rate'] . ' -f mpegts udp://@239.255.254.254:39000'; + + $service = $input; + $file = "/var/www/encoder-main.sh"; + if (file_put_contents($file, $service) !== false) { + echo "File saved."; + } else { + echo "Error writing file."; + } exec('sudo systemctl restart encoder-main'); break; case 'display'; @@ -205,8 +163,6 @@ function update_service($which_service) "; } - if (empty($input_rtmp_port)) - $input_rtmp_port = "1935"; $rtmp_push = ""; @@ -299,28 +255,91 @@ http { file_put_contents($file, $nginx); if ($service_rtmp_multiple === "enable") { - $rtmp = 'ffmpeg -fflags nobuffer -i "udp://127.0.0.1:39000?fifo_size=5000000&overrun_nonfatal=1" -c:v copy -c:a aac -f flv rtmp://127.0.0.1:1935/shree/bhattji'; + $rtmp = 'ffmpeg -fflags nobuffer -i "udp://@239.255.254.254:39000?fifo_size=5000000&overrun_nonfatal=1" -c:v copy -c:a aac -f flv rtmp://127.0.0.1:1935/shree/bhattji'; $file = "/var/www/encoder-rtmp.sh"; file_put_contents($file, $rtmp); exec('sudo cp /var/www/nginx.conf /etc/nginx/nginx.conf'); exec("sudo nginx -t 2>&1", $output, $status); - if ($status == 0) { - error_log("nginx tested fine "); + if ($status === 0) { exec("sudo systemctl restart nginx 2>&1", $o, $s); exec('sudo systemctl enable encoder-rtmp'); exec('sudo systemctl restart encoder-rtmp'); } else { - error_log("Error Nginx default"); exec('sudo cp /var/www/nginx.conf /etc/nginx/'); exec("sudo systemctl restart nginx"); exec('sudo systemctl stop encoder-rtmp'); exec('sudo systemctl disable encoder-rtmp'); } - } { + } else { + exec('sudo systemctl stop encoder-rtmp'); + exec('sudo systemctl disable encoder-rtmp'); } - break; case "srt"; + if ($service_srt_multiple) { + + $srt_push = ""; + + for ($i = 1; $i <= 11; $i++) { + if ($srt_multiple[$i]['enabled'] == 1) { + $srt_push .= " " . $srt_multiple[$i]['url']; + } + } + + + + $sls = " +srt { + + worker_threads 64; + worker_connections 500; + + log_file /tmp/logs/error.log ; + log_level info; + + server { + listen 1937; + latency 1000; #ms + + domain_player shree; + domain_publisher " . $srt_pass1 . " ; + backlog 100; + idle_streams_timeout 10; + app { + app_player bhatt ; + app_publisher " . $srt_pass2 . " ; + + record_hls off; + record_hls_segment_duration 10; + + relay { + type push; + mode all; #all; hash + reconnect_interval 10; + idle_streams_timeout -1; + upstreams " . $srt_push . " ; + } + } + } +} +"; + $service = 'ffmpeg -fflags nobuffer -i "udp://@239.255.254.254:39000?fifo_size=5000000&overrun_nonfatal=1" -c copy -f mpeg srt://127.0.0.1/shree/bhatt/ji'; + $file = "/var/www/encoder-srt.sh"; + file_put_contents($file, $service); + + $file = "/var/www/sls.conf"; + file_put_contents($file, $sls); + exec('sudo systemctl enable srt'); + exec('sudo systemctl restart srt'); + exec('sudo systemctl enable encoder-srt'); + exec('sudo systemctl restart encoder-srt'); + } else { + exec('sudo systemctl disable srt'); + exec('sudo systemctl stop srt'); + exec('sudo systemctl disable encoder-srt'); + exec('sudo systemctl stop encoder-srt'); + } + break; case "udp"; break; diff --git a/install.sh b/install.sh index e9de6ae..28d0175 100755 --- a/install.sh +++ b/install.sh @@ -342,3 +342,4 @@ sudo chmod 777 -R /var/www sudo chown -R www-data:www-data /var/www sudo ufw allow proto udp to 224.0.0.0/4 sudo ufw route allow proto udp to 224.0.0.0/4 +sudo ufw deny out to 239.255.254.254 port 39000 proto udp