diff --git a/frigate/ffmpeg_presets.py b/frigate/ffmpeg_presets.py index 9ffd4e022..5aa664c6f 100644 --- a/frigate/ffmpeg_presets.py +++ b/frigate/ffmpeg_presets.py @@ -13,26 +13,75 @@ PRESETS_HW_ACCEL_DECODE = { "preset-rpi-32-h264": ["-c:v", "h264_v4l2m2m"], "preset-rpi-64-h264": ["-c:v", "h264_v4l2m2m"], "preset-intel-vaapi": [ + "-hwaccel_flags", + "allow_profile_mismatch", "-hwaccel", "vaapi", "-hwaccel_device", "/dev/dri/renderD128", "-hwaccel_output_format", - "yuv420p", + "vaapi", + ], + "preset-intel-qsv-h264": [ + "-hwaccel", + "qsv", + "-qsv_device", + "/dev/dri/renderD128", + "-hwaccel_output_format", + "qsv", + "-c:v", + "h264_qsv", + ], + "preset-intel-qsv-h265": [ + "-hwaccel", + "qsv", + "-qsv_device", + "/dev/dri/renderD128", + "-hwaccel_output_format", + "qsv", + "-c:v", + "hevc_qsv", ], - "preset-intel-qsv-h264": ["-c:v", "h264_qsv"], - "preset-intel-qsv-h265": ["-c:v", "hevc_qsv"], "preset-amd-vaapi": [ + "-hwaccel_flags", + "allow_profile_mismatch", "-hwaccel", "vaapi", "-hwaccel_device", "/dev/dri/renderD128", "-hwaccel_output_format", - "yuv420p", + "vaapi", + ], + "preset-nvidia-h264": [ + "-hwaccel", + "cuda", + "-hwaccel_output_format", + "cuda", + "-extra_hw_frames", + "2", + "-c:v", + "h264_cuvid", + ], + "preset-nvidia-h265": [ + "-hwaccel", + "cuda", + "-hwaccel_output_format", + "cuda", + "-extra_hw_frames", + "2", + "-c:v", + "hevc_cuvid", + ], + "preset-nvidia-mjpeg": [ + "-hwaccel", + "cuda", + "-hwaccel_output_format", + "cuda", + "-extra_hw_frames", + "2", + "-c:v", + "mjpeg_cuvid", ], - "preset-nvidia-h264": ["-c:v", "h264_cuvid"], - "preset-nvidia-h265": ["-c:v", "hevc_cuvid"], - "preset-nvidia-mjpeg": ["-c:v", "mjpeg_cuvid"], } PRESETS_HW_ACCEL_SCALE = {