From b1d5ef433f76e9e6d4fb20aac7d54b635de0bf4a Mon Sep 17 00:00:00 2001 From: devdatt Date: Thu, 8 Jan 2026 09:47:01 +0530 Subject: [PATCH] install --- html/input.php | 39 ++++++++++++++++++++++++--------------- install.sh | 23 ++++++++++++++++++++++- 2 files changed, 46 insertions(+), 16 deletions(-) diff --git a/html/input.php b/html/input.php index f2f0c0b..fada12a 100644 --- a/html/input.php +++ b/html/input.php @@ -7,9 +7,6 @@ if (!file_exists($jsonFile)) { } $data = json_decode(file_get_contents($jsonFile), true); -// ---------------------------------------------------- -// ADD SERVICE -// ---------------------------------------------------- if ($_SERVER["REQUEST_METHOD"] === "POST" && $_POST["action"] === "add") { $new = [ "id" => time(), @@ -25,13 +22,25 @@ if ($_SERVER["REQUEST_METHOD"] === "POST" && $_POST["action"] === "add") { $data[] = $new; file_put_contents($jsonFile, json_encode($data, JSON_PRETTY_PRINT)); + $ffmpeg = "ffmpeg -fflags +genpts+discardcorrupt -i udp://@" . $new["input_udp"] . "?overrun_nonfatal=1&fifo_size=50000000 "; + switch ($new["video_format"]) { + case "mpeg2video": + $ffmpeg .= " -vf scale=" . $new["resolution"] . " -c:v mpeg2video -pix_fmt yuv420p -b:v " . $new["video_bitrate"] . " -maxrate " . $new["video_bitrate"] . " -minrate " . $new["video_bitrate"] . " -bufsize " . $new["video_bitrate"]; + break; + case "h264": + $ffmpeg .= " -vf scale=" . $new["resolution"] . " -c:v h264 -pix_fmt yuv420p -b:v " . $new["video_bitrate"] . " -maxrate " . $new["video_bitrate"] . " -minrate " . $new["video_bitrate"] . " -bufsize " . $new["video_bitrate"]; + break; + case "h265": + $ffmpeg .= " -vf scale=" . $new["resolution"] . " -c:v h265 -pix_fmt yuv420p -b:v " . $new["video_bitrate"] . " -maxrate " . $new["video_bitrate"] . " -minrate " . $new["video_bitrate"] . " -bufsize " . $new["video_bitrate"]; + break; + } + $ffmpeg .= " -c:a " . $new["audio_format"] . " -b:a " . $new["audio_bitrate"] . " -ar 48000 -ac 2 -f mpegts udp://@" . $new["output_udp"]; + exec("sudo systemctl enable encoder@" . $new["id"]); + exec("sudo systemctl restart encoder@" . $new["id"]); echo "OK"; exit; } -// ---------------------------------------------------- -// DELETE SERVICE -// ---------------------------------------------------- if ($_SERVER["REQUEST_METHOD"] === "POST" && $_POST["action"] === "delete") { $id = intval($_POST["id"]); $newData = []; @@ -41,13 +50,13 @@ if ($_SERVER["REQUEST_METHOD"] === "POST" && $_POST["action"] === "delete") { } file_put_contents($jsonFile, json_encode($newData, JSON_PRETTY_PRINT)); + exec("sudo systemctl stop encoder@" . $id); + exec("sudo systemctl disable encoder@" . $id); + unlink("/var/www/encoder/" . $id); echo "OK"; exit; } -// ---------------------------------------------------- -// UPDATE SERVICE -// ---------------------------------------------------- if ($_SERVER["REQUEST_METHOD"] === "POST" && $_POST["action"] === "edit") { $id = intval($_POST["id"]); $newData = []; @@ -65,6 +74,7 @@ if ($_SERVER["REQUEST_METHOD"] === "POST" && $_POST["action"] === "edit") { "audio_bitrate" => $_POST["audio_bitrate"], "service" => $_POST["service"] ]; + exec("sudo systemctl restart encoder@" . $id); } $newData[] = $row; } @@ -178,7 +188,6 @@ if ($_SERVER["REQUEST_METHOD"] === "POST" && $_POST["action"] === "edit") {