From 9a54c8ca497ea35cce3e9eb4d762241d38da6298 Mon Sep 17 00:00:00 2001 From: Vivek Gani Date: Fri, 21 Feb 2025 18:12:37 -0600 Subject: [PATCH] Add USB Camera guidance to camera_specific.md (#16729) --- docs/docs/configuration/camera_specific.md | 35 ++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/docs/docs/configuration/camera_specific.md b/docs/docs/configuration/camera_specific.md index 212e2f3d0..9add6015c 100644 --- a/docs/docs/configuration/camera_specific.md +++ b/docs/docs/configuration/camera_specific.md @@ -231,3 +231,38 @@ ffmpeg: ### TP-Link VIGI Cameras TP-Link VIGI cameras need some adjustments to the main stream settings on the camera itself to avoid issues. The stream needs to be configured as `H264` with `Smart Coding` set to `off`. Without these settings you may have problems when trying to watch recorded footage. For example Firefox will stop playback after a few seconds and show the following error message: `The media playback was aborted due to a corruption problem or because the media used features your browser did not support.`. + +## USB Cameras (aka Webcams) + +To use a USB camera (webcam) with Frigate, the recommendation is to use go2rtc's [FFmpeg Device](https://github.com/AlexxIT/go2rtc?tab=readme-ov-file#source-ffmpeg-device) support: + +- Preparation outside of Frigate: + - Get USB camera path. Run `v4l2-ctl --list-devices` to get a listing of locally-connected cameras available. (You may need to install `v4l-utils` in a way appropriate for your Linux distribution). In the sample configuration below, we use `video=0` to correlate with a detected device path of `/dev/video0` + - Get USB camera formats & resolutions. Run `ffmpeg -f v4l2 -list_formats all -i /dev/video0` to get an idea of what formats and resolutions the USB Camera supports. In the sample configuration below, we use a width of 1024 and height of 576 in the stream and detection settings based on what was reported back. + - If using Frigate in a container (e.g. Docker on TrueNAS), ensure you have USB Passthrough support enabled, along with a specific Host Device (`/dev/video0`) + Container Device (`/dev/video0`) listed. + +- In your Frigate Configuration File, add the go2rtc stream and roles as appropriate: + +``` +go2rtc: + streams: + usb_camera: + - "ffmpeg:device?video=0&video_size=1024x576#video=h264" + +cameras: + usb_camera: + enabled: true + ffmpeg: + inputs: + - path: rtsp://127.0.0.1:8554/usb_camera + input_args: preset-rtsp-restream + roles: + - detect + - record + detect: + enabled: false # <---- disable detection until you have a working camera feed + width: 1024 + height: 576 +``` + +