mirror of
https://github.com/blakeblackshear/frigate.git
synced 2024-11-21 19:07:46 +01:00
Add ffmpeg presets docs and update nvidia-smi docs (#4928)
* Add tables for ffmpeg presets and how to use them * Make it clear that ffmepg processes may not show when nvidia-smi is run inside the container * Add specific example of mixed input arg presets * Update docs/docs/configuration/ffmpeg_presets.md Co-authored-by: Nate Meyer <Nate.Devel@gmail.com> * typos Co-authored-by: Nate Meyer <Nate.Devel@gmail.com> Co-authored-by: Blake Blackshear <blakeb@blakeshome.com>
This commit is contained in:
parent
e645c8e007
commit
740d932848
@ -5,6 +5,71 @@ title: FFmpeg presets
|
|||||||
|
|
||||||
Some presets of FFmpeg args are provided by default to make the configuration easier. All presets can be seen in [this file](https://github.com/blakeblackshear/frigate/blob/master/frigate/ffmpeg_presets.py).
|
Some presets of FFmpeg args are provided by default to make the configuration easier. All presets can be seen in [this file](https://github.com/blakeblackshear/frigate/blob/master/frigate/ffmpeg_presets.py).
|
||||||
|
|
||||||
<!--
|
### Hwaccel Presets
|
||||||
TODO: Use [markdown-magic](https://github.com/DavidWells/markdown-magic) to generate this list from the source code.
|
|
||||||
-->
|
It is highly recommended to use hwaccel presets in the config. These presets not only replace the longer args, but they also give frigate hints of what hardware is available and allows frigate to make other optimizations using the GPU such as when encoding the birdseye restream or when scaling a stream that has a size different than the native stream size.
|
||||||
|
|
||||||
|
See [the hwaccel docs](/configuration/hardware_acceleration.md) for more info on how to setup hwaccel for your GPU / iGPU.
|
||||||
|
|
||||||
|
| Preset | Usage | Other Notes |
|
||||||
|
| --------------------- | ---------------------------- | ----------------------------------------------------- |
|
||||||
|
| preset-rpi-32-h264 | 32 bit Rpi with h264 stream | |
|
||||||
|
| preset-rpi-64-h264 | 64 bit Rpi with h264 stream | |
|
||||||
|
| preset-vaapi | Intel & AMD VAAPI | Check hwaccel docs to ensure correct driver is chosen |
|
||||||
|
| preset-intel-qsv-h264 | Intel QSV with h264 stream | If issues occur recommend using vaapi preset instead |
|
||||||
|
| preset-intel-qsv-h265 | Intel QSV with h265 stream | If issues occur recommend using vaapi preset instead |
|
||||||
|
| preset-nvidia-h264 | Nvidia GPU with h264 stream | |
|
||||||
|
| preset-nvidia-h265 | Nvidia GPU with h265 stream | |
|
||||||
|
| preset-nvidia-mjpeg | Nvidia GPU with mjpeg stream | Recommend restreaming mjpeg and using nvidia-h264 |
|
||||||
|
|
||||||
|
### Input Args Presets
|
||||||
|
|
||||||
|
Input args presets help make the config more readable and handle use cases for different types of streams to ensure maximum compatibility.
|
||||||
|
|
||||||
|
See [the camera specific docs](/configuration/camera_specific.md) for more info on non-standard cameras and recommendations for using them in frigate.
|
||||||
|
|
||||||
|
| Preset | Usage | Other Notes |
|
||||||
|
| ------------------------- | ----------------------- | --------------------------------------------------- |
|
||||||
|
| preset-http-jpeg-generic | HTTP Live Jpeg | Recommend restreaming live jpeg instead |
|
||||||
|
| preset-http-mjpeg-generic | HTTP Mjpeg Stream | Recommend restreaming mjpeg stream instead |
|
||||||
|
| preset-http-reolink | Reolink HTTP-FLV Stream | Only for reolink http, not when restreaming as rtsp |
|
||||||
|
| preset-rtmp-generic | RTMP Stream | |
|
||||||
|
| preset-rtsp-generic | RTSP Stream | This is the default when nothing is specified |
|
||||||
|
| preset-rtsp-udp | RTSP Stream via UDP | Use when camera is UDP only |
|
||||||
|
| preset-rtsp-blue-iris | Blue Iris RTSP Stream | Use when consuming a stream from Blue Iris |
|
||||||
|
|
||||||
|
:::caution
|
||||||
|
|
||||||
|
It is important to be mindful of input args when using restream because you can have a mix of protocols. `http` and `rtmp` presets cannot be used with `rtsp` streams. For example, when using a reolink cam with the rtsp restream as a source for record the preset-http-reolink will cause a crash. In this case presets will need to be set at the stream level. See the example below.
|
||||||
|
|
||||||
|
:::
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
cameras:
|
||||||
|
reolink_cam:
|
||||||
|
ffmpeg:
|
||||||
|
inputs:
|
||||||
|
- path: http://192.168.0.139/flv?port=1935&app=bcs&stream=channel0_ext.bcs&user=admin&password={FRIGATE_CAM_PASSWORD}
|
||||||
|
input_args: preset-http-reolink
|
||||||
|
roles:
|
||||||
|
- detect
|
||||||
|
- path: rtsp://192.168.0.10:8554/garage
|
||||||
|
input_args: preset-rtsp-generic
|
||||||
|
roles:
|
||||||
|
- record
|
||||||
|
- path: http://192.168.0.139/flv?port=1935&app=bcs&stream=channel0_main.bcs&user=admin&password={FRIGATE_CAM_PASSWORD}
|
||||||
|
roles:
|
||||||
|
- restream
|
||||||
|
```
|
||||||
|
|
||||||
|
### Output Args Presets
|
||||||
|
|
||||||
|
Output args presets help make the config more readable and handle use cases for different types of streams to ensure consistent recordings.
|
||||||
|
|
||||||
|
| Preset | Usage | Other Notes |
|
||||||
|
| --------------------------- | --------------------------------- | --------------------------------------------- |
|
||||||
|
| preset-record-generic | Record WITHOUT audio | This is the default when nothing is specified |
|
||||||
|
| preset-record-generic-audio | Record WITH audio | Use this to enable audio in recordings |
|
||||||
|
| preset-record-mjpeg | Record an mjpeg stream | Recommend restreaming mjpeg stream instead |
|
||||||
|
| preset-record-jpeg | Record live jpeg | Recommend restreaming live jpeg instead |
|
||||||
|
| preset-record-ubiquiti | Record ubiquiti stream with audio | Recordings with ubiquiti non-standard audio |
|
||||||
|
@ -93,9 +93,15 @@ 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 `docker exec -it frigate nvidia-smi`, which should show the ffmpeg
|
Verify that hardware decoding is working by running `nvidia-smi`, which should show the ffmpeg
|
||||||
processes:
|
processes:
|
||||||
|
|
||||||
|
:::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 455.38 Driver Version: 455.38 CUDA Version: 11.1 |
|
| NVIDIA-SMI 455.38 Driver Version: 455.38 CUDA Version: 11.1 |
|
||||||
|
Loading…
Reference in New Issue
Block a user