blakeblackshear.frigate/docs/docs/configuration/camera_specific.md
Alex Yao a2d1bd2c67
Document JPEG streams (#2586)
* Document JPEG streams

* Update camera_specific.md
2022-02-02 07:27:22 -06:00

3.0 KiB

id title
camera_specific Camera Specific Configurations

MJPEG Cameras

The input and output parameters need to be adjusted for MJPEG cameras

input_args: -avoid_negative_ts make_zero -fflags nobuffer -flags low_delay -strict experimental -fflags +genpts+discardcorrupt -use_wallclock_as_timestamps 1

Note that mjpeg cameras require encoding the video into h264 for recording, and rtmp roles. This will use significantly more CPU than if the cameras supported h264 feeds directly.

output_args:
  record: -f segment -segment_time 10 -segment_format mp4 -reset_timestamps 1 -strftime 1 -c:v libx264 -an
  rtmp: -c:v libx264 -an -f flv

JPEG Stream Cameras

Cameras using a live changing jpeg image will need input parameters as below

input_args:
- -r
- 5 # << enter FPS here
- -stream_loop
- -1
- -f
- image2
- -avoid_negative_ts
- make_zero
- -fflags
- nobuffer
- -flags
- low_delay
- -strict
- experimental
- -fflags
- +genpts+discardcorrupt
- -use_wallclock_as_timestamps
- 1

Outputting the stream will have the same args and caveats as per MJPEG Cameras

RTMP Cameras

The input parameters need to be adjusted for RTMP cameras

ffmpeg:
  input_args: -avoid_negative_ts make_zero -fflags nobuffer -flags low_delay -strict experimental -fflags +genpts+discardcorrupt -rw_timeout 5000000 -use_wallclock_as_timestamps 1 -f live_flv

According to this discussion, the http video streams seem to be the most reliable for Reolink.

cameras:
  reolink:
    ffmpeg:
      hwaccel_args:
      input_args:
        - -avoid_negative_ts
        - make_zero
        - -fflags
        - nobuffer+genpts+discardcorrupt
        - -flags
        - low_delay
        - -strict
        - experimental
        - -analyzeduration
        - 1000M
        - -probesize
        - 1000M
        - -rw_timeout
        - "5000000"
      inputs:
        - path: http://reolink_ip/flv?port=1935&app=bcs&stream=channel0_main.bcs&user=username&password=password
          roles:
            - record
            - rtmp
        - path: http://reolink_ip/flv?port=1935&app=bcs&stream=channel0_ext.bcs&user=username&password=password
          roles:
            - detect
    detect:
      width: 640
      height: 480
      fps: 7

Resolutions

Blue Iris RTSP Cameras

You will need to remove nobuffer flag for Blue Iris RTSP cameras

ffmpeg:
  input_args: -avoid_negative_ts make_zero -flags low_delay -strict experimental -fflags +genpts+discardcorrupt -rtsp_transport tcp -stimeout 5000000 -use_wallclock_as_timestamps 1

UDP Only Cameras

If your cameras do not support TCP connections for RTSP, you can use UDP.

ffmpeg:
  input_args: -avoid_negative_ts make_zero -fflags +genpts+discardcorrupt -rtsp_transport udp -stimeout 5000000 -use_wallclock_as_timestamps 1