This commit is contained in:
devdatt 2025-12-27 11:31:08 +05:30
parent 72438fe3a6
commit 3d086efb9e
2 changed files with 64 additions and 23 deletions

View File

@ -100,6 +100,7 @@ $defaults = [
'display_resolution' => '720x576', 'display_resolution' => '720x576',
'display_audio' => '0,3', 'display_audio' => '0,3',
'display_hdmi_sdi' => 'disable',
'custom_output' => '' 'custom_output' => ''
]; ];
@ -145,7 +146,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$new['display_resolution'] = $get('display_resolution', $defaults['display_resolution']); $new['display_resolution'] = $get('display_resolution', $defaults['display_resolution']);
$new['display_audio'] = $get('display_audio', $defaults['display_audio']); $new['display_audio'] = $get('display_audio', $defaults['display_audio']);
$new['display_hdmi_sdi'] = $get('display_hdmi_sdi', $defaults['display_hdmi_sdi']);
$new['rtmp0']['resolution'] = $get('rtmp0_resolution', $defaults['rtmp0']['resolution']); $new['rtmp0']['resolution'] = $get('rtmp0_resolution', $defaults['rtmp0']['resolution']);
$new['rtmp0']['data_rate'] = $get('rtmp0_data_rate', $defaults['rtmp0']['data_rate']); $new['rtmp0']['data_rate'] = $get('rtmp0_data_rate', $defaults['rtmp0']['data_rate']);
@ -309,6 +310,15 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
</select> </select>
</div> </div>
</div> </div>
<div class="dropdown-container">
<span class="dropdown-label">HDMI to SDI :</span>
<div class="dropdown">
<select name="display_hdmi_sdi" id="display_hdmi_sdi">
<option value="enable" <?php if ($data['display_hdmi_sdi'] == 'enable') echo 'selected'; ?>>Enable</option>
<option value="disable" <?php if ($data['display_hdmi_sdi'] == 'disable') echo 'selected'; ?>>Disable</option>
</select>
</div>
</div>
<div class="dropdown-container"> <div class="dropdown-container">
<span class="dropdown-label">Resolution :</span> <span class="dropdown-label">Resolution :</span>
<div class="dropdown"> <div class="dropdown">

View File

@ -513,7 +513,7 @@ function update_service($which_service)
break; break;
case "srt": case "srt":
update_service_backend('srt', $srt_pass1, $srt_pass2); update_service_backend('srt', $srt_pass1, $srt_pass2);
$input_transcode_every_time = "srt://127.0.0.1:1937?streamid=shree/bhatt/ji"; $input_transcode_every_time = "srt://127.0.0.1:1937?streamid=shree/bhatt/" . $srt_pass3;
break; break;
} }
break; break;
@ -521,6 +521,7 @@ function update_service($which_service)
$jsonFile = __DIR__ . '/output.json'; $jsonFile = __DIR__ . '/output.json';
$defaults = [ $defaults = [
'service_display' => 'disable', 'service_display' => 'disable',
'service_rtmp0_multiple' => 'disable', 'service_rtmp0_multiple' => 'disable',
@ -618,6 +619,7 @@ function update_service($which_service)
'display_resolution' => '720x576', 'display_resolution' => '720x576',
'display_audio' => '0,3', 'display_audio' => '0,3',
'display_hdmi_sdi' => 'disable',
'custom_output' => '' 'custom_output' => ''
]; ];
@ -792,16 +794,25 @@ function update_service($which_service)
case "srt"; case "srt";
update_service_backend('srt', $srt_pass1, $srt_pass2); update_service_backend('srt', $srt_pass1, $srt_pass2);
if ($service_srt_multiple) { if ($service_srt_multiple) {
$srt = 'ffmpeg -hwaccel auto -hide_banner -fflags +discardcorrupt -i ';
switch ($use_common_backend) {
case "copy_input":
case "use_common_backend":
$srt .= ' "udp://@239.255.254.254:39000?fifo_size=5000000&overrun_nonfatal=1&localaddr=127.0.0.1"';
break;
case "transcode_every_time":
$srt .= '"' . $input_transcode_every_time . '"';
break;
}
switch ($use_common_backend_srt) { switch ($use_common_backend_srt) {
case "enable": case "enable":
$service = 'ffmpeg -hide_banner -fflags +discardcorrupt -i "udp://@239.255.254.254:39000?fifo_size=5000000&overrun_nonfatal=1&localaddr=127.0.0.1" ' . $service = ' -c:v copy '
' -c:v copy ' . . ' -c:a copy -pkt_size 1316 -flush_packets 0 '
' -c:a copy -pkt_size 1316 -flush_packets 0 ' . . ' -f mpegts "srt://127.0.0.1:1937?streamid=' . $srt_pass1 . '/' . $srt_pass2 . '/ji&latency=2000"';
' -f mpegts "srt://127.0.0.1:1937?streamid=' . $srt_pass1 . '/' . $srt_pass2 . '/ji&latency=2000"';
break; break;
$service = 'ffmpeg -hide_banner -fflags +discardcorrupt -i "udp://@239.255.254.254:39000?fifo_size=5000000&overrun_nonfatal=1&localaddr=127.0.0.1" ' case "disable":
. ' -c:v ' . $data['srt']['formate'] $service = ' -c:v ' . $data['srt']['formate']
. ' -vf "scale=' . str_replace("x", ":", $data['srt']['resolution']) . '"' . ' -vf "scale=' . str_replace("x", ":", $data['srt']['resolution']) . '"'
. ' -b:v ' . $data['srt']['data_rate'] . ' -b:v ' . $data['srt']['data_rate']
. ' -maxrate ' . $data['srt']['data_rate'] . ' -maxrate ' . $data['srt']['data_rate']
@ -841,14 +852,14 @@ function update_service($which_service)
break; break;
case "transcode_every_time": case "transcode_every_time":
$udp0 .= $input_transcode_every_time; $udp0 .= '"' . $input_transcode_every_time . '"';
break; break;
} }
switch ($use_common_backend_udp0) { switch ($use_common_backend_udp0) {
case "enable": case "enable":
$udp0 .= ' -c:v copy ' $udp0 .= ' -c:v copy '
. ' -c:a copy ' . ' -c:a copy '
. ' -f mpegts ' . $data['udp0']['udp']; . ' -f mpegts "' . $data['udp0']['udp'] . '"';
break; break;
case "disable": case "disable":
$udp0 .= ' -c:v ' . $data['udp0']['formate'] $udp0 .= ' -c:v ' . $data['udp0']['formate']
@ -863,7 +874,7 @@ function update_service($which_service)
. ' -af "volume=' . $data['udp0']['audio_db_gain'] . '"' . ' -af "volume=' . $data['udp0']['audio_db_gain'] . '"'
. ' -ar ' . $data['udp0']['audio_sample_rate'] . ' -ar ' . $data['udp0']['audio_sample_rate']
. ' ' . $data['udp0']['extra'] . ' ' . $data['udp0']['extra']
. ' -f mpegts ' . $data['udp0']['udp']; . ' -f mpegts "' . $data['udp0']['udp'] . '"';
break; break;
} }
$file = "/var/www/encoder-udp0.sh"; $file = "/var/www/encoder-udp0.sh";
@ -877,16 +888,26 @@ function update_service($which_service)
break; break;
case "udp1"; case "udp1";
if ($service_udp1 === "enable") { if ($service_udp1 === "enable") {
$udp1 = 'ffmpeg -hwaccel auto -hide_banner -i ';
switch ($use_common_backend) {
case "copy_input":
case "use_common_backend":
$udp1 .= ' "udp://@239.255.254.254:39000?fifo_size=5000000&overrun_nonfatal=1&localaddr=127.0.0.1"';
break;
case "transcode_every_time":
$udp1 .= '"' . $input_transcode_every_time . '"';
break;
}
switch ($use_common_backend_udp1) { switch ($use_common_backend_udp1) {
case "enable": case "enable":
$udp1 = 'ffmpeg -hwaccel auto -hide_banner -i "udp://@239.255.254.254:39000?fifo_size=5000000&overrun_nonfatal=1&localaddr=127.0.0.1" ' $udp1 .= ' -c:v copy '
. ' -c:v copy '
. ' -c:a copy ' . ' -c:a copy '
. ' -f mpegts ' . $data['udp1']['udp']; . ' -f mpegts "' . $data['udp1']['udp'] . '"';
break; break;
case "disable": case "disable":
$udp1 = 'ffmpeg -hwaccel auto -hide_banner -i "udp://@239.255.254.254:39000?fifo_size=5000000&overrun_nonfatal=1&localaddr=127.0.0.1" ' $udp1 .= ' -c:v ' . $data['udp1']['formate']
. ' -c:v ' . $data['udp1']['formate']
. ' -vf "scale=' . str_replace("x", ":", $data['udp1']['resolution']) . '"' . ' -vf "scale=' . str_replace("x", ":", $data['udp1']['resolution']) . '"'
. ' -b:v ' . $data['udp1']['data_rate'] . ' -b:v ' . $data['udp1']['data_rate']
. ' -maxrate ' . $data['udp1']['data_rate'] . ' -maxrate ' . $data['udp1']['data_rate']
@ -898,7 +919,7 @@ function update_service($which_service)
. ' -af "volume=' . $data['udp1']['audio_db_gain'] . '"' . ' -af "volume=' . $data['udp1']['audio_db_gain'] . '"'
. ' -ar ' . $data['udp1']['audio_sample_rate'] . ' -ar ' . $data['udp1']['audio_sample_rate']
. ' ' . $data['udp1']['extra'] . ' ' . $data['udp1']['extra']
. ' -f mpegts ' . $data['udp1']['udp']; . ' -f mpegts "' . $data['udp1']['udp'] . '"';
break; break;
} }
$file = "/var/www/encoder-udp1.sh"; $file = "/var/www/encoder-udp1.sh";
@ -911,17 +932,27 @@ function update_service($which_service)
} }
break; break;
case "udp2"; case "udp2";
$udp2 = 'ffmpeg -hwaccel auto -hide_banner -i ';
switch ($use_common_backend) {
case "copy_input":
case "use_common_backend":
$udp2 .= ' "udp://@239.255.254.254:39000?fifo_size=5000000&overrun_nonfatal=1&localaddr=127.0.0.1"';
break;
case "transcode_every_time":
$udp2 .= '"' . $input_transcode_every_time . '"';
break;
}
if ($service_udp2 === "enable") { if ($service_udp2 === "enable") {
switch ($use_common_backend_udp2) { switch ($use_common_backend_udp2) {
case "enable": case "enable":
$udp2 = 'ffmpeg -hwaccel auto -hide_banner -i "udp://@239.255.254.254:39000?fifo_size=5000000&overrun_nonfatal=1&localaddr=127.0.0.1" ' $udp2 = ' -c:v copy '
. ' -c:v copy '
. ' -c:a copy ' . ' -c:a copy '
. ' -f mpegts ' . $data['udp2']['udp']; . ' -f mpegts "' . $data['udp2']['udp'] . '"';
break; break;
case "disable": case "disable":
$udp2 = 'ffmpeg -hwaccel auto -hide_banner -i "udp://@239.255.254.254:39000?fifo_size=5000000&overrun_nonfatal=1&localaddr=127.0.0.1" ' $udp2 = ' -c:v ' . $data['udp2']['formate']
. ' -c:v ' . $data['udp2']['formate']
. ' -vf "scale=' . str_replace("x", ":", $data['udp2']['resolution']) . '"' . ' -vf "scale=' . str_replace("x", ":", $data['udp2']['resolution']) . '"'
. ' -b:v ' . $data['udp2']['data_rate'] . ' -b:v ' . $data['udp2']['data_rate']
. ' -maxrate ' . $data['udp2']['data_rate'] . ' -maxrate ' . $data['udp2']['data_rate']
@ -933,7 +964,7 @@ function update_service($which_service)
. ' -af "volume=' . $data['udp2']['audio_db_gain'] . '"' . ' -af "volume=' . $data['udp2']['audio_db_gain'] . '"'
. ' -ar ' . $data['udp2']['audio_sample_rate'] . ' -ar ' . $data['udp2']['audio_sample_rate']
. ' ' . $data['udp2']['extra'] . ' ' . $data['udp2']['extra']
. ' -f mpegts ' . $data['udp2']['udp']; . ' -f mpegts "' . $data['udp2']['udp'] . '"';
break; break;
} }
$file = "/var/www/encoder-udp2.sh"; $file = "/var/www/encoder-udp2.sh";