install
This commit is contained in:
parent
2fb90cde53
commit
b1d5ef433f
|
|
@ -7,9 +7,6 @@ if (!file_exists($jsonFile)) {
|
||||||
}
|
}
|
||||||
$data = json_decode(file_get_contents($jsonFile), true);
|
$data = json_decode(file_get_contents($jsonFile), true);
|
||||||
|
|
||||||
// ----------------------------------------------------
|
|
||||||
// ADD SERVICE
|
|
||||||
// ----------------------------------------------------
|
|
||||||
if ($_SERVER["REQUEST_METHOD"] === "POST" && $_POST["action"] === "add") {
|
if ($_SERVER["REQUEST_METHOD"] === "POST" && $_POST["action"] === "add") {
|
||||||
$new = [
|
$new = [
|
||||||
"id" => time(),
|
"id" => time(),
|
||||||
|
|
@ -25,13 +22,25 @@ if ($_SERVER["REQUEST_METHOD"] === "POST" && $_POST["action"] === "add") {
|
||||||
|
|
||||||
$data[] = $new;
|
$data[] = $new;
|
||||||
file_put_contents($jsonFile, json_encode($data, JSON_PRETTY_PRINT));
|
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";
|
echo "OK";
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
// ----------------------------------------------------
|
|
||||||
// DELETE SERVICE
|
|
||||||
// ----------------------------------------------------
|
|
||||||
if ($_SERVER["REQUEST_METHOD"] === "POST" && $_POST["action"] === "delete") {
|
if ($_SERVER["REQUEST_METHOD"] === "POST" && $_POST["action"] === "delete") {
|
||||||
$id = intval($_POST["id"]);
|
$id = intval($_POST["id"]);
|
||||||
$newData = [];
|
$newData = [];
|
||||||
|
|
@ -41,13 +50,13 @@ if ($_SERVER["REQUEST_METHOD"] === "POST" && $_POST["action"] === "delete") {
|
||||||
}
|
}
|
||||||
|
|
||||||
file_put_contents($jsonFile, json_encode($newData, JSON_PRETTY_PRINT));
|
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";
|
echo "OK";
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
// ----------------------------------------------------
|
|
||||||
// UPDATE SERVICE
|
|
||||||
// ----------------------------------------------------
|
|
||||||
if ($_SERVER["REQUEST_METHOD"] === "POST" && $_POST["action"] === "edit") {
|
if ($_SERVER["REQUEST_METHOD"] === "POST" && $_POST["action"] === "edit") {
|
||||||
$id = intval($_POST["id"]);
|
$id = intval($_POST["id"]);
|
||||||
$newData = [];
|
$newData = [];
|
||||||
|
|
@ -65,6 +74,7 @@ if ($_SERVER["REQUEST_METHOD"] === "POST" && $_POST["action"] === "edit") {
|
||||||
"audio_bitrate" => $_POST["audio_bitrate"],
|
"audio_bitrate" => $_POST["audio_bitrate"],
|
||||||
"service" => $_POST["service"]
|
"service" => $_POST["service"]
|
||||||
];
|
];
|
||||||
|
exec("sudo systemctl restart encoder@" . $id);
|
||||||
}
|
}
|
||||||
$newData[] = $row;
|
$newData[] = $row;
|
||||||
}
|
}
|
||||||
|
|
@ -178,7 +188,6 @@ if ($_SERVER["REQUEST_METHOD"] === "POST" && $_POST["action"] === "edit") {
|
||||||
|
|
||||||
<div id="popup">
|
<div id="popup">
|
||||||
<h3 id="popup_title">Add Service</h3>
|
<h3 id="popup_title">Add Service</h3>
|
||||||
|
|
||||||
<input type="hidden" id="service_id">
|
<input type="hidden" id="service_id">
|
||||||
|
|
||||||
<input type="text" id="in_udp" placeholder="Input UDP">
|
<input type="text" id="in_udp" placeholder="Input UDP">
|
||||||
|
|
@ -198,13 +207,13 @@ if ($_SERVER["REQUEST_METHOD"] === "POST" && $_POST["action"] === "edit") {
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="resolution">
|
<select id="resolution">
|
||||||
<option value="720x576">720x576</option>
|
<option value="720:576">720x576</option>
|
||||||
<option value="1280x720">1280x720</option>
|
<option value="1280:720">1280x720</option>
|
||||||
<option value="1920x1080">1920x1080</option>
|
<option value="1920:1080">1920x1080</option>
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<input type="text" id="video_bitrate" placeholder="Video Bitrate (kbps)" value="3000">
|
<input type="text" id="video_bitrate" placeholder="Video Bitrate (kbps)">
|
||||||
<input type="text" id="audio_bitrate" placeholder="Audio Bitrate (kbps)" value="256">
|
<input type="text" id="audio_bitrate" placeholder="Audio Bitrate (kbps)">
|
||||||
|
|
||||||
<select id="service">
|
<select id="service">
|
||||||
<option value="enable">Enable</option>
|
<option value="enable">Enable</option>
|
||||||
|
|
|
||||||
21
install.sh
21
install.sh
|
|
@ -125,6 +125,23 @@ network:
|
||||||
- 172.16.111.111/24
|
- 172.16.111.111/24
|
||||||
EOL
|
EOL
|
||||||
|
|
||||||
|
cat >/etc/systemd/system/encoder@.service<< 'EOL'
|
||||||
|
[Unit]
|
||||||
|
Description=Encoder Instance %i
|
||||||
|
After=network.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
User=root
|
||||||
|
ExecStart=/bin/bash /var/www/encoder/%i.sh
|
||||||
|
Restart=always
|
||||||
|
RestartSec=5
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
|
EOL
|
||||||
|
|
||||||
|
sudo mkdir /var/www/encoder
|
||||||
sudo cp -r html/* /var/www/html/
|
sudo cp -r html/* /var/www/html/
|
||||||
sudo cp backup_private.pem /var/www/
|
sudo cp backup_private.pem /var/www/
|
||||||
sudo cp backup_public.pem /var/www/
|
sudo cp backup_public.pem /var/www/
|
||||||
|
|
@ -160,3 +177,7 @@ sudo ufw allow from 172.16.111.112 to 172.16.111.111 port 443
|
||||||
sudo ufw --force enable
|
sudo ufw --force enable
|
||||||
DEVICE_ID="$(sudo cat /sys/class/dmi/id/product_uuid | tr -d '\n')"
|
DEVICE_ID="$(sudo cat /sys/class/dmi/id/product_uuid | tr -d '\n')"
|
||||||
sudo sed -i 's/certificatecertificatecertificatecertificate/'$DEVICE_ID'/g' /var/www/html/certification.html
|
sudo sed -i 's/certificatecertificatecertificatecertificate/'$DEVICE_ID'/g' /var/www/html/certification.html
|
||||||
|
|
||||||
|
sudo chmod 777 -R /var/www
|
||||||
|
sudo chown -R www-data:www-data /var/www
|
||||||
|
sudo systemctl daemon-reload
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue