This commit is contained in:
devdatt 2026-02-13 14:36:07 +05:30
parent 1bfb3e6d4c
commit 8cfb3fa434
1 changed files with 16 additions and 16 deletions

View File

@ -384,17 +384,17 @@ function update_service($which_service)
case "copy_input": case "copy_input":
switch ($input_source) { switch ($input_source) {
case "hdmi": case "hdmi":
$input .= "ffmpeg -hide_banner -init_hw_device qsv=hw -filter_hw_device hw -hwaccel qsv -hwaccel_output_format qsv -c:v mjpeg_qsv -fflags +genpts -use_wallclock_as_timestamps 1 -f v4l2 -thread_queue_size 512 -input_format mjpeg " $input .= "ffmpeg -hide_banner -init_hw_device qsv=hw -filter_hw_device hw -hwaccel qsv -hwaccel_output_format qsv -c:v mjpeg_qsv -f v4l2 -thread_queue_size 128 -use_wallclock_as_timestamps 1 -input_format mjpeg "
. " -video_size " . $data['hdmi']['resolution'] . " -video_size " . $data['hdmi']['resolution']
. " -framerate " . $data['hdmi']['framerate'] . " -framerate " . $data['hdmi']['framerate']
. " -i /dev/video0" . " -i /dev/video0"
. " -f alsa -thread_queue_size 2048 -i " . $data['hdmi']['audio_source'] . " -f alsa -thread_queue_size 2048 -i " . $data['hdmi']['audio_source']
. " -c:v h264_qsv -profile:v high -level:v 4.2 -b:v 6M -maxrate 6M -bufsize 12M " . " -c:v h264_qsv -profile:v high -level:v 4.2 -async_depth 4 -b:v 6M -maxrate 6M -bufsize 12M "
. " -c:a aac -b:a 265k -ar 48000 -muxrate 0 -pat_period 0.1 -pkt_size 1316 "; . " -c:a aac -b:a 265k -ar 48000 -async 1 -muxrate 0 -pat_period 0.1 -pkt_size 1316 ";
if ($hdmi_delay_video != "") if ($hdmi_delay_video != "")
$input .= ' -vf "vpp_qsv=format=nv12:in_range=full:out_range=full,scale_qsv=' . $common_backend_resolution . ',' . setptsFromMs($hdmi_delay_video) . '"'; $input .= ' -vf "vpp_qsv=format=nv12,scale_qsv=' . $common_backend_resolution . ',' . setptsFromMs($hdmi_delay_video) . '"';
else else
$input .= ' -vf "vpp_qsv=format=nv12:in_range=full:out_range=full,scale_qsv=' . $common_backend_resolution . '"'; $input .= ' -vf "vpp_qsv=format=nv12,scale_qsv=' . $common_backend_resolution . '"';
if ($hdmi_delay_audio != "") if ($hdmi_delay_audio != "")
$input .= adelayFromMs($hdmi_delay_audio, 2); $input .= adelayFromMs($hdmi_delay_audio, 2);
@ -417,25 +417,25 @@ function update_service($which_service)
case "use_common_backend": case "use_common_backend":
switch ($input_source) { switch ($input_source) {
case "hdmi": case "hdmi":
$input .= "ffmpeg -hide_banner -init_hw_device qsv=hw -filter_hw_device hw -hwaccel qsv -hwaccel_output_format qsv -c:v mjpeg_qsv -fflags +genpts -use_wallclock_as_timestamps 1 -f v4l2 -thread_queue_size 512 -input_format mjpeg " $input .= "ffmpeg -hide_banner -init_hw_device qsv=hw -filter_hw_device hw -hwaccel qsv -hwaccel_output_format qsv -c:v mjpeg_qsv -f v4l2 -thread_queue_size 128 -use_wallclock_as_timestamps 1 -input_format mjpeg "
. " -video_size ". $data['hdmi']['resolution'] . " -video_size ". $data['hdmi']['resolution']
. " -framerate " . $data['hdmi']['framerate'] . " -i /dev/video0 -f alsa -thread_queue_size 2048 -i " . $data['hdmi']['audio_source']; . " -framerate " . $data['hdmi']['framerate'] . " -i /dev/video0 -f alsa -thread_queue_size 128 -i " . $data['hdmi']['audio_source'];
if ($data['hdmi']['resolution'] == $data['common_backend']['resolution']) { if ($data['hdmi']['resolution'] == $data['common_backend']['resolution']) {
if ($hdmi_delay_video != "") if ($hdmi_delay_video != "")
$input .= ' -vf "vpp_qsv=format=nv12:in_range=full:out_range=full,' . setptsFromMs($hdmi_delay_video) . '"'; $input .= ' -vf "vpp_qsv=format=nv12,' . setptsFromMs($hdmi_delay_video) . '"';
else else
$input .= ' -vf "vpp_qsv=format=nv12:in_range=full:out_range=full"'; $input .= ' -vf "vpp_qsv=format=nv12"';
} else { } else {
if ($hdmi_delay_video != "") if ($hdmi_delay_video != "")
$input .= ' -vf "vpp_qsv=format=nv12:in_range=full:out_range=full,scale_qsv=' . $common_backend_resolution . ',' . setptsFromMs($hdmi_delay_video) . '"'; $input .= ' -vf "vpp_qsv=format=nv12,scale_qsv=' . $common_backend_resolution . ',' . setptsFromMs($hdmi_delay_video) . '"';
else else
$input .= ' -vf "vpp_qsv=format=nv12:in_range=full:out_range=full,scale_qsv=' . $common_backend_resolution . '"'; $input .= ' -vf "vpp_qsv=format=nv12,scale_qsv=' . $common_backend_resolution . '"';
} }
$input .= " -c:v h264_qsv -profile:v high -level:v 4.2 " $input .= " -c:v h264_qsv -profile:v high -level:v 4.2 -async_depth 1 -bf 0 "
. " -b:v " . $common_backend_data_rate . " -b:v " . $common_backend_data_rate
. " -maxrate " . $common_backend_data_rate . " -maxrate " . $common_backend_data_rate
. " -bufsize 12M "; . " -bufsize 1M ";
if ($data['hdmi']['framerate'] != $data['common_backend']['framerate']) { if ($data['hdmi']['framerate'] != $data['common_backend']['framerate']) {
$input .= " -r " . $common_backend_framerate; $input .= " -r " . $common_backend_framerate;
} }
@ -447,10 +447,10 @@ function update_service($which_service)
. ' -ar ' . $common_backend_audio_sample_rate . ' -ar ' . $common_backend_audio_sample_rate
. ' ' . $common_backend_extra; . ' ' . $common_backend_extra;
if ($hdmi_delay_audio != "") if ($hdmi_delay_audio != "")
$input .= ' -af "volume=' . $common_backend_audio_db_gain . ',' . adelayFromMs($hdmi_delay_audio, 2) . '"'; $input .= ' -af "aresample=async=1:first_pts=0,volume=' . $common_backend_audio_db_gain . ',' . adelayFromMs($hdmi_delay_audio, 2) . '"';
else else
$input .= ' -af "volume=' . $common_backend_audio_db_gain . '"'; $input .= ' -af "aresample=async=1:first_pts=0,volume=' . $common_backend_audio_db_gain . '"';
$input .= " -muxrate 0 -pat_period 0.1 -pkt_size 1316 -f mpegts " $input .= " -fflags nobuffer -flags low_delay -muxrate 0 -muxpreload 0 -pkt_size 1316 -f mpegts "
. ' "udp://@239.255.254.254:39000?localaddr=127.0.0.1"'; . ' "udp://@239.255.254.254:39000?localaddr=127.0.0.1"';
break; break;
case "url": case "url":