mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-02-03 17:55:21 +03:00
Use hwaccel presets
This commit is contained in:
parent
3ea50c9584
commit
911fc2d08e
@ -25,6 +25,7 @@ from frigate.util import (
|
|||||||
load_config_with_no_duplicates,
|
load_config_with_no_duplicates,
|
||||||
load_labels,
|
load_labels,
|
||||||
)
|
)
|
||||||
|
from frigate.ffmpeg_presets import parse_preset_hardware_acceleration
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
@ -689,7 +690,7 @@ class CameraConfig(FrigateBaseModel):
|
|||||||
return None
|
return None
|
||||||
|
|
||||||
global_args = ffmpeg_input.global_args or self.ffmpeg.global_args
|
global_args = ffmpeg_input.global_args or self.ffmpeg.global_args
|
||||||
hwaccel_args = ffmpeg_input.hwaccel_args or self.ffmpeg.hwaccel_args
|
hwaccel_args = ffmpeg_input.hwaccel_args or parse_preset_hardware_acceleration(self.ffmpeg.hwaccel_args) or self.ffmpeg.hwaccel_args
|
||||||
input_args = ffmpeg_input.input_args or self.ffmpeg.input_args
|
input_args = ffmpeg_input.input_args or self.ffmpeg.input_args
|
||||||
|
|
||||||
global_args = (
|
global_args = (
|
||||||
|
|||||||
@ -1,12 +1,22 @@
|
|||||||
"""Handles inserting and maintaining ffmpeg presets."""
|
"""Handles inserting and maintaining ffmpeg presets."""
|
||||||
|
|
||||||
|
from typing import Any
|
||||||
|
|
||||||
|
|
||||||
PRESETS_HW_ACCEL = {
|
PRESETS_HW_ACCEL = {
|
||||||
"preset-rpi-32": "-c:v h264_v4l2m2m",
|
"preset-rpi-32-h264": "-c:v h264_v4l2m2m",
|
||||||
"preset-rpi-64": "-c:v h264_v4l2m2m",
|
"preset-rpi-64-h264": "-c:v h264_v4l2m2m",
|
||||||
"preset-intel-vaapi": "-hwaccel vaapi -hwaccel_device /dev/dri/renderD128 -hwaccel_output_format yuv420p",
|
"preset-intel-vaapi": "-hwaccel vaapi -hwaccel_device /dev/dri/renderD128 -hwaccel_output_format yuv420p",
|
||||||
"preset-intel-qsv-h264": "-c:v h264_qsv",
|
"preset-intel-qsv-h264": "-c:v h264_qsv",
|
||||||
"preset-intel-qsv-h265": "-c:v hevc_qsv",
|
"preset-intel-qsv-h265": "-c:v hevc_qsv",
|
||||||
"preset-amd-vaapi": "-hwaccel vaapi -hwaccel_device /dev/dri/renderD128 -hwaccel_output_format yuv420p",
|
"preset-amd-vaapi": "-hwaccel vaapi -hwaccel_device /dev/dri/renderD128 -hwaccel_output_format yuv420p",
|
||||||
"preset-nvidia-h264": "-c:v h264_cuvid",
|
"preset-nvidia-h264": "-c:v h264_cuvid",
|
||||||
"preset-nvidia-h265": "-c:v hevc_cuvid",
|
"preset-nvidia-h265": "-c:v hevc_cuvid",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
def parse_preset_hardware_acceleration(arg: Any) -> str:
|
||||||
|
"""Return the correct preset if in preset format otherwise return raw input."""
|
||||||
|
if not isinstance(arg, str):
|
||||||
|
return None
|
||||||
|
|
||||||
|
return PRESETS_HW_ACCEL.get(arg, None)
|
||||||
Loading…
Reference in New Issue
Block a user