Add ffmpeg flag to allow Nvidia roation

This commit is contained in:
Galindo, Alex 2023-03-07 16:17:03 +01:00
parent f306fe02dd
commit 082e104e69
2 changed files with 12 additions and 10 deletions

View File

@ -151,12 +151,12 @@ PRESETS_HW_ACCEL_SCALE_ROTATION = {
"record": " -vf vpp_qsv=transpose={0}", "record": " -vf vpp_qsv=transpose={0}",
}, },
"preset-nvidia-h264": { "preset-nvidia-h264": {
"detect": "transpose={0},", "detect": "hwdownload,format=nv12,transpose={0},hwupload,", # Currently SW rotation
"record": " -vf transpose={0}", "record": " -vf hwdownload,format=nv12,transpose={0},hwupload", # Currently SW rotation
}, },
"preset-nvidia-h265": { "preset-nvidia-h265": {
"detect": "transpose={0},", "detect": "hwdownload,format=nv12,transpose={0},hwupload,", # Currently SW rotation
"record": " -vf transpose={0}", "record": " -vf hwdownload,format=nv12,transpose={0},hwupload", # Currently SW rotation
}, },
"default": { "default": {
"detect": " -vf transpose={0}", "detect": " -vf transpose={0}",

View File

@ -101,7 +101,7 @@ class TestFfmpegPresets(unittest.TestCase):
" ".join(frigate_config.cameras["back"].ffmpeg_cmds[0]["cmd"]) " ".join(frigate_config.cameras["back"].ffmpeg_cmds[0]["cmd"])
) )
assert ( assert (
"fps=10,transpose=clock,scale_cuda=w=2560:h=1920:format=nv12,hwdownload,format=nv12,format=yuv420p" "fps=10,hwdownload,format=nv12,transpose=clock,hwupload,scale_cuda=w=2560:h=1920:format=nv12,hwdownload,format=nv12,format=yuv420p"
in (" ".join(frigate_config.cameras["back"].ffmpeg_cmds[0]["cmd"])) in (" ".join(frigate_config.cameras["back"].ffmpeg_cmds[0]["cmd"]))
) )
@ -180,7 +180,7 @@ class TestFfmpegPresets(unittest.TestCase):
" ".join(frigate_config.cameras["back"].ffmpeg_cmds[0]["cmd"]) " ".join(frigate_config.cameras["back"].ffmpeg_cmds[0]["cmd"])
) )
assert ( assert (
"fps=10,transpose=cclock,scale_cuda=w=2560:h=1920:format=nv12,hwdownload,format=nv12,format=yuv420p" "fps=10,hwdownload,format=nv12,transpose=cclock,hwupload,scale_cuda=w=2560:h=1920:format=nv12,hwdownload,format=nv12,format=yuv420p"
in (" ".join(frigate_config.cameras["back"].ffmpeg_cmds[0]["cmd"])) in (" ".join(frigate_config.cameras["back"].ffmpeg_cmds[0]["cmd"]))
) )
@ -288,8 +288,9 @@ class TestFfmpegPresets(unittest.TestCase):
assert "preset-record-generic-audio-aac" not in ( assert "preset-record-generic-audio-aac" not in (
" ".join(frigate_config.cameras["back"].ffmpeg_cmds[0]["cmd"]) " ".join(frigate_config.cameras["back"].ffmpeg_cmds[0]["cmd"])
) )
assert "-vf transpose=clock -c:v h264_nvenc -c:a aac" in ( assert (
" ".join(frigate_config.cameras["back"].ffmpeg_cmds[0]["cmd"]) "-vf hwdownload,format=nv12,transpose=clock,hwupload -c:v h264_nvenc -c:a aac"
in (" ".join(frigate_config.cameras["back"].ffmpeg_cmds[0]["cmd"]))
) )
def test_ffmpeg_output_record_rotate_180_preset(self): def test_ffmpeg_output_record_rotate_180_preset(self):
@ -356,8 +357,9 @@ class TestFfmpegPresets(unittest.TestCase):
assert "preset-nvidia-h264" not in ( assert "preset-nvidia-h264" not in (
" ".join(frigate_config.cameras["back"].ffmpeg_cmds[0]["cmd"]) " ".join(frigate_config.cameras["back"].ffmpeg_cmds[0]["cmd"])
) )
assert "-vf transpose=cclock -c:v h264_nvenc -c:a aac" in ( assert (
" ".join(frigate_config.cameras["back"].ffmpeg_cmds[0]["cmd"]) "-vf hwdownload,format=nv12,transpose=cclock,hwupload -c:v h264_nvenc -c:a aac"
in (" ".join(frigate_config.cameras["back"].ffmpeg_cmds[0]["cmd"]))
) )
def test_ffmpeg_output_record_rotate_wrong_preset(self): def test_ffmpeg_output_record_rotate_wrong_preset(self):