This commit is contained in:
devdatt 2025-12-07 02:57:39 +05:30
parent 62c48e3e00
commit 32ebed41cf
3 changed files with 108 additions and 108 deletions

View File

@ -17,79 +17,79 @@ $defaults = [
'service_srt_multiple' => 'disable', 'service_srt_multiple' => 'disable',
'service_custom' => 'disable', 'service_custom' => 'disable',
'rtmp0_multiple' => [], 'rtmp_multiple0' => [],
'rtmp1_multiple' => [], 'rtmp_multiple1' => [],
'srt_multiple' => [], 'srt_multiple' => [],
'rtmp0' => [ 'rtmp0' => [
'resolution' => '', 'resolution' => '1920x1080',
'data_rate' => '', 'data_rate' => '6M',
'framerate' => '', 'framerate' => '30',
'gop' => '', 'gop' => '30',
'extra' => '', 'extra' => '',
'audio_data_rate' => '', 'audio_data_rate' => '128k',
'audio_db_gain' => '', 'audio_db_gain' => '0dB',
'audio_sample_rate' => '' 'audio_sample_rate' => '48000'
], ],
'rtmp1' => [ 'rtmp1' => [
'resolution' => '', 'resolution' => '720x576',
'data_rate' => '', 'data_rate' => '1.5M',
'framerate' => '', 'framerate' => '25',
'gop' => '', 'gop' => '25',
'extra' => '', 'extra' => '',
'audio_data_rate' => '', 'audio_data_rate' => '96k',
'audio_db_gain' => '', 'audio_db_gain' => '0dB',
'audio_sample_rate' => '' 'audio_sample_rate' => '48000'
], ],
'udp0' => [ 'udp0' => [
'udp' => '', 'udp' => 'udp://@224.1.1.1:8001',
'format' => '', 'formate' => 'h264_qsv',
'resolution' => '', 'resolution' => '1280x720',
'data_rate' => '', 'data_rate' => '2.2M',
'framerate' => '', 'framerate' => '25',
'gop' => '', 'gop' => '25',
'extra' => '', 'extra' => '',
'audio_format' => '', 'audio_formate' => 'aac',
'audio_data_rate' => '', 'audio_data_rate' => '128k',
'audio_db_gain' => '', 'audio_db_gain' => '0dB',
'audio_sample_rate' => '' 'audio_sample_rate' => '48000'
], ],
'udp1' => [ 'udp1' => [
'udp' => '', 'udp' => 'udp://@224.1.1.1:8001',
'format' => '', 'formate' => 'h264_qsv',
'resolution' => '', 'resolution' => '720x576',
'data_rate' => '', 'data_rate' => '1.5M',
'framerate' => '', 'framerate' => '25',
'gop' => '', 'gop' => '25',
'extra' => '', 'extra' => '',
'audio_format' => '', 'audio_formate' => 'mp2',
'audio_data_rate' => '', 'audio_data_rate' => '128k',
'audio_db_gain' => '', 'audio_db_gain' => '0dB',
'audio_sample_rate' => '' 'audio_sample_rate' => '48000'
], ],
'udp2' => [ 'udp2' => [
'udp' => '', 'udp' => 'udp://@224.1.1.1:8002',
'format' => '', 'formate' => 'mpeg2video',
'resolution' => '', 'resolution' => '720x576',
'data_rate' => '', 'data_rate' => '3M',
'framerate' => '', 'framerate' => '25',
'gop' => '', 'gop' => '25',
'extra' => '', 'extra' => '',
'audio_format' => '', 'audio_formate' => 'mp2',
'audio_data_rate' => '', 'audio_data_rate' => '96k',
'audio_db_gain' => '', 'audio_db_gain' => '0dB',
'audio_sample_rate' => '' 'audio_sample_rate' => '48000'
], ],
'srt' => [ 'srt0' => [
'format' => '', 'formate' => 'mpeg2video',
'resolution' => '', 'resolution' => '1920x1080',
'data_rate' => '', 'data_rate' => '6M',
'framerate' => '', 'framerate' => '50',
'gop' => '', 'gop' => '50',
'extra' => '', 'extra' => '',
'audio_format' => '', 'audio_formate' => 'aac',
'audio_data_rate' => '', 'audio_data_rate' => '256k',
'audio_db_gain' => '', 'audio_db_gain' => '0dB',
'audio_sample_rate' => '' 'audio_sample_rate' => '48000'
], ],
'display' => '1920x1080@60.00', 'display' => '1920x1080@60.00',

View File

@ -117,55 +117,55 @@ function update_service($which_service)
'audio_sample_rate' => '48000' 'audio_sample_rate' => '48000'
], ],
'udp0' => [ 'udp0' => [
'udp' => '', 'udp' => 'udp://@224.1.1.1:8001',
'formate' => '', 'formate' => 'h264_qsv',
'resolution' => '', 'resolution' => '1280x720',
'data_rate' => '', 'data_rate' => '2.2M',
'framerate' => '', 'framerate' => '25',
'gop' => '', 'gop' => '25',
'extra' => '', 'extra' => '',
'audio_formate' => '', 'audio_formate' => 'aac',
'audio_data_rate' => '', 'audio_data_rate' => '128k',
'audio_db_gain' => '', 'audio_db_gain' => '0dB',
'audio_sample_rate' => '' 'audio_sample_rate' => '48000'
], ],
'udp1' => [ 'udp1' => [
'udp' => '', 'udp' => 'udp://@224.1.1.1:8001',
'formate' => '', 'formate' => 'h264_qsv',
'resolution' => '', 'resolution' => '720x576',
'data_rate' => '', 'data_rate' => '1.5M',
'framerate' => '', 'framerate' => '25',
'gop' => '', 'gop' => '25',
'extra' => '', 'extra' => '',
'audio_formate' => '', 'audio_formate' => 'mp2',
'audio_data_rate' => '', 'audio_data_rate' => '128k',
'audio_db_gain' => '', 'audio_db_gain' => '0dB',
'audio_sample_rate' => '' 'audio_sample_rate' => '48000'
], ],
'udp2' => [ 'udp2' => [
'udp' => '', 'udp' => 'udp://@224.1.1.1:8002',
'formate' => '', 'formate' => 'mpeg2video',
'resolution' => '', 'resolution' => '720x576',
'data_rate' => '', 'data_rate' => '3M',
'framerate' => '', 'framerate' => '25',
'gop' => '', 'gop' => '25',
'extra' => '', 'extra' => '',
'audio_formate' => '', 'audio_formate' => 'mp2',
'audio_data_rate' => '', 'audio_data_rate' => '96k',
'audio_db_gain' => '', 'audio_db_gain' => '0dB',
'audio_sample_rate' => '' 'audio_sample_rate' => '48000'
], ],
'srt0' => [ 'srt0' => [
'formate' => '', 'formate' => 'mpeg2video',
'resolution' => '', 'resolution' => '1920x1080',
'data_rate' => '', 'data_rate' => '6M',
'framerate' => '', 'framerate' => '50',
'gop' => '', 'gop' => '50',
'extra' => '', 'extra' => '',
'audio_formate' => '', 'audio_formate' => 'aac',
'audio_data_rate' => '', 'audio_data_rate' => '256k',
'audio_db_gain' => '', 'audio_db_gain' => '0dB',
'audio_sample_rate' => '' 'audio_sample_rate' => '48000'
], ],
'display' => '1920x1080@60.00', 'display' => '1920x1080@60.00',
@ -364,7 +364,7 @@ http {
} }
if ($service_rtmp0_multiple === "enable") { if ($service_rtmp0_multiple === "enable") {
$rtmp = 'ffmpeg -hwaccel auto -hide_banner -fflags nobuffer -i "udp://@239.255.254.254:39000?fifo_size=5000000&overrun_nonfatal=1&localaddr=127.0.0.1" ' $rtmp = 'ffmpeg -hwaccel auto -hide_banner -fflags nobuffer -flags low_delay -tune zerolatency -i "udp://@239.255.254.254:39000?fifo_size=5000000&overrun_nonfatal=1&localaddr=127.0.0.1" '
. ' -c:v h264_qsv ' . ' -c:v h264_qsv '
. ' -vf "scale=' . str_replace("x", ":", $data['rtmp0']['resolution']) . ' -vf "scale=' . str_replace("x", ":", $data['rtmp0']['resolution'])
. '" -b:v ' . $data['rtmp0']['data_rate'] . '" -b:v ' . $data['rtmp0']['data_rate']
@ -373,7 +373,7 @@ http {
. ' -r ' . $data['rtmp0']['framerate'] . ' -r ' . $data['rtmp0']['framerate']
. ' -g ' . $data['rtmp0']['gop'] . ' -g ' . $data['rtmp0']['gop']
. ' -c:a aac -b:a ' . $data['rtmp0']['audio_data_rate'] . ' -c:a aac -b:a ' . $data['rtmp0']['audio_data_rate']
. ' ' . $data['rtmp0']['audio_db_gain'] . ' -af "volume=' . $data['rtmp0']['audio_db_gain'] . '"'
. ' -ar ' . $data['rtmp0']['audio_sample_rate'] . ' -ar ' . $data['rtmp0']['audio_sample_rate']
. ' ' . $data['rtmp0']['extra'] . ' ' . $data['rtmp0']['extra']
. ' -f flv rtmp://127.0.0.1/shree/bhattji'; . ' -f flv rtmp://127.0.0.1/shree/bhattji';
@ -397,7 +397,7 @@ http {
. ' -r ' . $data['rtmp1']['framerate'] . ' -r ' . $data['rtmp1']['framerate']
. ' -g ' . $data['rtmp1']['gop'] . ' -g ' . $data['rtmp1']['gop']
. ' -c:a aac -b:a ' . $data['rtmp1']['audio_data_rate'] . ' -c:a aac -b:a ' . $data['rtmp1']['audio_data_rate']
. ' ' . $data['rtmp1']['audio_db_gain'] . ' -af "volume=' . $data['rtmp1']['audio_db_gain'] . '"'
. ' -ar ' . $data['rtmp1']['audio_sample_rate'] . ' -ar ' . $data['rtmp1']['audio_sample_rate']
. ' ' . $data['rtmp1']['extra'] . ' ' . $data['rtmp1']['extra']
. ' -f flv rtmp://127.0.0.1/shreeshree/bhattji'; . ' -f flv rtmp://127.0.0.1/shreeshree/bhattji';
@ -457,7 +457,7 @@ srt {
} }
} }
"; ";
$service = 'ffmpeg -hwaccel auto -fflags nobuffer -i udp://@239.255.254.254:39000 -c copy -f mpeg srt://127.0.0.1/' . $srt_pass1 . '/' . $srt_pass2 . '/ji'; $service = 'ffmpeg -hwaccel auto -fflags nobuffer -i udp://@239.255.254.254:39000 -c copy -f mpegts srt://127.0.0.1/' . $srt_pass1 . '/' . $srt_pass2 . '/ji';
$file = "/var/www/encoder-srt.sh"; $file = "/var/www/encoder-srt.sh";
file_put_contents($file, $service); file_put_contents($file, $service);
@ -487,7 +487,7 @@ srt {
. ' -g ' . $data['udp0']['gop'] . ' -g ' . $data['udp0']['gop']
. ' -c:a ' . $data['udp0']['audio_formate'] . ' -c:a ' . $data['udp0']['audio_formate']
. ' -b:a ' . $data['udp0']['audio_data_rate'] . ' -b:a ' . $data['udp0']['audio_data_rate']
. ' ' . $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'];
@ -512,7 +512,7 @@ srt {
. ' -g ' . $data['udp1']['gop'] . ' -g ' . $data['udp1']['gop']
. ' -c:a ' . $data['udp1']['audio_formate'] . ' -c:a ' . $data['udp1']['audio_formate']
. ' -b:a ' . $data['udp1']['audio_data_rate'] . ' -b:a ' . $data['udp1']['audio_data_rate']
. ' ' . $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'];
@ -537,7 +537,7 @@ srt {
. ' -g ' . $data['udp2']['gop'] . ' -g ' . $data['udp2']['gop']
. ' -c:a ' . $data['udp2']['audio_formate'] . ' -c:a ' . $data['udp2']['audio_formate']
. ' -b:a ' . $data['udp2']['audio_data_rate'] . ' -b:a ' . $data['udp2']['audio_data_rate']
. ' ' . $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'];

View File

@ -26,16 +26,16 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
case 'rtmp0': case 'rtmp0':
switch ($data[1]) { switch ($data[1]) {
case 'restart': case 'restart':
exec('sudo systemctl enable encoder-rtmp'); exec('sudo systemctl enable encoder-rtmp0');
exec('sudo systemctl restart encoder-rtmp'); exec('sudo systemctl restart encoder-rtmp0');
break; break;
case 'enable': case 'enable':
exec('sudo systemctl enable encoder-rtmp'); exec('sudo systemctl enable encoder-rtmp0');
exec('sudo systemctl restart encoder-rtmp'); exec('sudo systemctl restart encoder-rtmp0');
break; break;
case 'disable': case 'disable':
exec('sudo systemctl stop encoder-rtmp'); exec('sudo systemctl stop encoder-rtmp0');
exec('sudo systemctl disable encoder-rtmp'); exec('sudo systemctl disable encoder-rtmp0');
break; break;
} }
break; break;