mirror of
https://github.com/blakeblackshear/frigate.git
synced 2024-11-21 19:07:46 +01:00
parent
4bb5785d89
commit
edbdbb7f07
@ -39,15 +39,19 @@ ffmpeg:
|
|||||||
hwaccel_args: preset-vaapi
|
hwaccel_args: preset-vaapi
|
||||||
```
|
```
|
||||||
|
|
||||||
### NVIDIA GPU
|
### NVIDIA GPUs
|
||||||
|
|
||||||
[Supported Nvidia GPUs for Decoding](https://developer.nvidia.com/video-encode-and-decode-gpu-support-matrix-new)
|
While older GPUs may work, it is recommended to use modern, supported GPUs. NVIDIA provides a [matrix of supported GPUs and features](https://developer.nvidia.com/video-encode-and-decode-gpu-support-matrix-new). If your card is on the list and supports CUVID/NVDEC, it will most likely work with Frigate for decoding. However, you must also use [a driver version that will work with FFmpeg](https://github.com/FFmpeg/nv-codec-headers/blob/master/README). Older driver versions may be missing symbols and fail to work, and older cards are not supported by newer driver versions. The only way around this is to [provide your own FFmpeg](/configuration/advanced#custom-ffmpeg-build) that will work with your driver version, but this is unsupported and may not work well if at all.
|
||||||
|
|
||||||
These instructions are based on the [jellyfin documentation](https://jellyfin.org/docs/general/administration/hardware-acceleration.html#nvidia-hardware-acceleration-on-docker-linux)
|
A more complete list of cards and ther compatible drivers is available in the [driver release readme](https://download.nvidia.com/XFree86/Linux-x86_64/525.85.05/README/supportedchips.html).
|
||||||
|
|
||||||
Additional configuration is needed for the docker container to be able to access the Nvidia GPU and this depends on how docker is being run:
|
If your distribution does not offer NVIDIA driver packages, you can [download them here](https://www.nvidia.com/en-us/drivers/unix/).
|
||||||
|
|
||||||
#### Docker Compose
|
#### Docker Configuration
|
||||||
|
|
||||||
|
Additional configuration is needed for the Docker container to be able to access the NVIDIA GPU. The supported method for this is to install the [NVIDIA Container Toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#docker) and specify the GPU to Docker. How you do this depends on how Docker is being run:
|
||||||
|
|
||||||
|
##### Docker Compose
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
services:
|
services:
|
||||||
@ -64,7 +68,7 @@ services:
|
|||||||
capabilities: [gpu]
|
capabilities: [gpu]
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Docker Run CLI
|
##### Docker Run CLI
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker run -d \
|
docker run -d \
|
||||||
@ -78,9 +82,9 @@ docker run -d \
|
|||||||
|
|
||||||
The decoder you need to pass in the `hwaccel_args` will depend on the input video.
|
The decoder you need to pass in the `hwaccel_args` will depend on the input video.
|
||||||
|
|
||||||
A list of supported codecs (you can use `ffmpeg -decoders | grep cuvid` in the container to get a list)
|
A list of supported codecs (you can use `ffmpeg -decoders | grep cuvid` in the container to get the ones your card supports)
|
||||||
|
|
||||||
```shell
|
```
|
||||||
V..... h263_cuvid Nvidia CUVID H263 decoder (codec h263)
|
V..... h263_cuvid Nvidia CUVID H263 decoder (codec h263)
|
||||||
V..... h264_cuvid Nvidia CUVID H264 decoder (codec h264)
|
V..... h264_cuvid Nvidia CUVID H264 decoder (codec h264)
|
||||||
V..... hevc_cuvid Nvidia CUVID HEVC decoder (codec hevc)
|
V..... hevc_cuvid Nvidia CUVID HEVC decoder (codec hevc)
|
||||||
@ -101,12 +105,12 @@ ffmpeg:
|
|||||||
```
|
```
|
||||||
|
|
||||||
If everything is working correctly, you should see a significant improvement in performance.
|
If everything is working correctly, you should see a significant improvement in performance.
|
||||||
Verify that hardware decoding is working by running `nvidia-smi`, which should show the ffmpeg
|
Verify that hardware decoding is working by running `nvidia-smi`, which should show `ffmpeg`
|
||||||
processes:
|
processes:
|
||||||
|
|
||||||
:::note
|
:::note
|
||||||
|
|
||||||
nvidia-smi may not show ffmpeg processes when run inside the container [due to docker limitations](https://github.com/NVIDIA/nvidia-docker/issues/179#issuecomment-645579458)
|
`nvidia-smi` may not show `ffmpeg` processes when run inside the container [due to docker limitations](https://github.com/NVIDIA/nvidia-docker/issues/179#issuecomment-645579458).
|
||||||
|
|
||||||
:::
|
:::
|
||||||
|
|
||||||
@ -137,3 +141,7 @@ nvidia-smi may not show ffmpeg processes when run inside the container [due to d
|
|||||||
| 0 N/A N/A 12827 C ffmpeg 417MiB |
|
| 0 N/A N/A 12827 C ffmpeg 417MiB |
|
||||||
+-----------------------------------------------------------------------------+
|
+-----------------------------------------------------------------------------+
|
||||||
```
|
```
|
||||||
|
|
||||||
|
If you do not see these processes, check the `docker logs` for the container and look for decoding errors.
|
||||||
|
|
||||||
|
These instructions were originally based on the [Jellyfin documentation](https://jellyfin.org/docs/general/administration/hardware-acceleration.html#nvidia-hardware-acceleration-on-docker-linux).
|
||||||
|
Loading…
Reference in New Issue
Block a user