Skip to content

摄像头品牌特定配置 ​

NOTE

本页面使用了 FFmpeg 参数的预设。有关预设的更多信息,请参阅FFmpeg 预设页面。

NOTE

许多摄像头支持影响实时视图体验的编码选项,更多信息请参阅实时视图页面。

Safari 浏览器下的 H.265 摄像头支持 ​

部分摄像头虽然支持 H.265 编码,但可能采用不同的封装格式。需注意 Safari 浏览器仅支持 annexb 格式的 H.265 流。当使用 H.265 摄像头进行录像且需要兼容 Safari 浏览器设备时,应当启用apple_compatibility配置选项。

在摄像头配置的**视频流(FFmpeg)**部分开启 Apple 兼容性,让录制出的流可以在 macOS / iPhone 上正常播放。

步骤 1 / 5打开设置
设置

视频流(FFmpeg)

摄像头视频流和 FFmpeg 编解码相关设置,包含可执行文件路径、命令行参数、硬件加速,以及按不同功能划分的输出参数。

阅读文档
摄像头输入视频流

该摄像头的所有输入流配置列表(包含路径和功能)。

摄像头特定的 FFmpeg 参数
输入参数

应用于 FFmpeg 输入视频流的输入参数。

硬件加速参数

用于 FFmpeg 的硬件加速参数。建议使用对应硬件厂商的预设配置。

检测输出参数

检测功能视频流的默认输出参数。

录制输出参数

录制功能视频流的默认输出参数。

Apple 兼容性

录制 H.265 视频时启用 HEVC 标记,以提升对 Apple 设备播放的兼容性。

高级设置 (3)

MJPEG 摄像头 ​

注意 MJPEG 摄像头需要将视频编码为 H264 才能用于录制和转流角色。这将比直接支持 H264 的摄像头消耗更多 CPU 资源。建议使用转流角色创建 H264 转流,然后将其作为 ffmpeg 的输入源。

yaml
go2rtc:
  streams:
    mjpeg_cam: "ffmpeg:http://your_mjpeg_stream_url#video=h264#hardware" # <- 使用硬件加速创建可用于其他组件的H264流

cameras:
  ...
  mjpeg_cam:
    ffmpeg:
      inputs:
        - path: rtsp://127.0.0.1:8554/mjpeg_cam
          roles:
            - detect
            - record

JPEG 流摄像头 ​

使用实时变化 JPEG 图像的摄像头需要如下输入参数

在摄像头配置的**视频流(FFmpeg)**部分,把 输入参数 设置为 preset-http-jpeg-generic。

步骤 1 / 5打开设置
设置

视频流(FFmpeg)

摄像头视频流和 FFmpeg 编解码相关设置,包含可执行文件路径、命令行参数、硬件加速,以及按不同功能划分的输出参数。

阅读文档
摄像头输入视频流

该摄像头的所有输入流配置列表(包含路径和功能)。

摄像头特定的 FFmpeg 参数
输入参数

应用于 FFmpeg 输入视频流的输入参数。

硬件加速参数

用于 FFmpeg 的硬件加速参数。建议使用对应硬件厂商的预设配置。

检测输出参数

检测功能视频流的默认输出参数。

录制输出参数

录制功能视频流的默认输出参数。

Apple 兼容性

录制 H.265 视频时启用 HEVC 标记,以提升对 Apple 设备播放的兼容性。

高级设置 (3)

流输出参数和注意事项与MJPEG 摄像头相同

RTMP 摄像头 ​

RTMP 摄像头需要调整输入参数

在摄像头配置的**视频流(FFmpeg)**部分,把 输入参数 设置为 preset-rtmp-generic。

步骤 1 / 5打开设置
设置

视频流(FFmpeg)

摄像头视频流和 FFmpeg 编解码相关设置,包含可执行文件路径、命令行参数、硬件加速,以及按不同功能划分的输出参数。

阅读文档
摄像头输入视频流

该摄像头的所有输入流配置列表(包含路径和功能)。

摄像头特定的 FFmpeg 参数
输入参数

应用于 FFmpeg 输入视频流的输入参数。

硬件加速参数

用于 FFmpeg 的硬件加速参数。建议使用对应硬件厂商的预设配置。

检测输出参数

检测功能视频流的默认输出参数。

录制输出参数

录制功能视频流的默认输出参数。

Apple 兼容性

录制 H.265 视频时启用 HEVC 标记,以提升对 Apple 设备播放的兼容性。

高级设置 (3)

仅支持 UDP 的摄像头 ​

如果你的摄像头不支持 RTSP 的 TCP 连接,可以使用 UDP。

在摄像头配置的**视频流(FFmpeg)**部分,把 输入参数 设置为 preset-rtsp-udp。

步骤 1 / 5打开设置
设置

视频流(FFmpeg)

摄像头视频流和 FFmpeg 编解码相关设置,包含可执行文件路径、命令行参数、硬件加速,以及按不同功能划分的输出参数。

阅读文档
摄像头输入视频流

该摄像头的所有输入流配置列表(包含路径和功能)。

摄像头特定的 FFmpeg 参数
输入参数

应用于 FFmpeg 输入视频流的输入参数。

硬件加速参数

用于 FFmpeg 的硬件加速参数。建议使用对应硬件厂商的预设配置。

检测输出参数

检测功能视频流的默认输出参数。

录制输出参数

录制功能视频流的默认输出参数。

Apple 兼容性

录制 H.265 视频时启用 HEVC 标记,以提升对 Apple 设备播放的兼容性。

高级设置 (3)

品牌/型号特定设置 ​

Amcrest & Dahua ​

Amcrest 和 Dahua 摄像头应使用以下格式通过 RTSP 连接:

rtsp://用户名:密码@摄像头IP/cam/realmonitor?channel=1&subtype=0 # 主码流
rtsp://用户名:密码@摄像头IP/cam/realmonitor?channel=1&subtype=1 # 子码流,通常仅支持低分辨率
rtsp://用户名:密码@摄像头IP/cam/realmonitor?channel=1&subtype=2 # 高端摄像头支持第三码流,中等分辨率(1280x720, 1920x1080)
rtsp://用户名:密码@摄像头IP/cam/realmonitor?channel=1&subtype=3 # 新款高端摄像头支持第四码流,另一中等分辨率(1280x720, 1920x1080)

Annke C800 ​

此摄像头仅支持 H.265。要在某些设备(如 MacOS 或 iPhone)上播放片段,需要使用apple_compatibility配置调整 H.265 流。

在摄像头配置的视频流(FFmpeg)部分开启 Apple 兼容性,并为录制输出参数选择音频预设。

步骤 1 / 6打开设置
设置

视频流(FFmpeg)

摄像头视频流和 FFmpeg 编解码相关设置,包含可执行文件路径、命令行参数、硬件加速,以及按不同功能划分的输出参数。

阅读文档
摄像头输入视频流

该摄像头的所有输入流配置列表(包含路径和功能)。

摄像头特定的 FFmpeg 参数
输入参数

应用于 FFmpeg 输入视频流的输入参数。

硬件加速参数

用于 FFmpeg 的硬件加速参数。建议使用对应硬件厂商的预设配置。

检测输出参数

检测功能视频流的默认输出参数。

录制输出参数

录制功能视频流的默认输出参数。

Apple 兼容性

录制 H.265 视频时启用 HEVC 标记,以提升对 Apple 设备播放的兼容性。

高级设置 (3)

Blue Iris RTSP 摄像头 ​

Blue Iris RTSP 摄像头需要移除nobuffer标志

在摄像头配置的**视频流(FFmpeg)**部分,把 输入参数 设置为 preset-rtsp-blue-iris。

步骤 1 / 5打开设置
设置

视频流(FFmpeg)

摄像头视频流和 FFmpeg 编解码相关设置,包含可执行文件路径、命令行参数、硬件加速,以及按不同功能划分的输出参数。

阅读文档
摄像头输入视频流

该摄像头的所有输入流配置列表(包含路径和功能)。

摄像头特定的 FFmpeg 参数
输入参数

应用于 FFmpeg 输入视频流的输入参数。

硬件加速参数

用于 FFmpeg 的硬件加速参数。建议使用对应硬件厂商的预设配置。

检测输出参数

检测功能视频流的默认输出参数。

录制输出参数

录制功能视频流的默认输出参数。

Apple 兼容性

录制 H.265 视频时启用 HEVC 标记,以提升对 Apple 设备播放的兼容性。

高级设置 (3)

Hikvision 摄像头(海康威视) ​

Hikvision 摄像头应使用以下格式通过 RTSP 连接:

rtsp://用户名:密码@摄像头IP/streaming/channels/101 # 主码流
rtsp://用户名:密码@摄像头IP/streaming/channels/102 # 子码流,通常仅支持低分辨率
rtsp://用户名:密码@摄像头IP/streaming/channels/103 # 高端摄像头支持第三码流,中等分辨率(1280x720, 1920x1080)

NOTE

部分用户报告新款 Hikvision 摄像头需要调整安全设置:

RTSP认证 - digest/basic
RTSP摘要算法 - MD5
WEB认证 - digest/basic
WEB摘要算法 - MD5

Reolink 推出了多款不同型号的摄像头,这些型号在功能支持和行为表现上存在不一致性。下表总结了各种功能特性及使用建议。

摄像头分辨率摄像头型号推荐的视频流类型补充说明
5MP 或更低所有型号http-flv该流为 h264 编码
6MP 或更高最新一代(例如:Duo3、CX-8##)使用 ffmpeg 8.0 的 http-flv,或 rtsp此配置采用基于 H265 的新型 http-flv-enhanced 流,需要 ffmpeg 8.0 版本
6MP 或更高较旧型号(例如:RLC-8)rtsp

Reolink 有旧款摄像头(如 410 和 520)和新款摄像头(如 520a 和 511wa),支持不同的选项子集。两种情况下都建议使用 HTTP 流。 Frigate 与配置了以下选项的新款 Reolink 摄像头配合使用效果更好:

如果可用,推荐设置:

  • 开启,流畅优先 - 这将摄像头设置为 CBR(恒定比特率)
  • 帧间空间1x - 这将 I 帧间隔设置为与帧率相同

通过添加摄像头向导设置 ​

添加摄像头向导是添加标准 Reolink 摄像头的推荐方式。在开始之前,请确保已在摄像头的网络高级设置中启用 HTTP。该向导使用摄像头的 HTTP API 来确定分辨率,并从上表中推荐合适的流类型。

  1. 点击 设置 > 全局配置 > 摄像头管理 中的 Add Camera。
  2. 选择 Manual selection 作为流检测方法,并选择 Reolink 作为摄像头品牌。

根据此讨论,HTTP 视频流似乎是 Reolink 最可靠的选择。

通过 Reolink NVR 连接的摄像头可以使用 HTTP 流,在流 URL 中使用channel[0..15]表示附加通道。 主码流也可以通过 RTSP 设置,但并非在所有硬件版本上都可靠。以下示例配置适用于最老的 RLN16-410 设备和多种类型的摄像头。

提示

Reolink 最新款摄像头支持通过 go2rtc 和其他应用程序实现双向音频功能。需要注意的是,为了保证稳定性,仍需使用 HTTP-FLV 流,同时可以额外添加一个 RTSP 流,该流将仅用于双向音频。 注意:RTSP 流不能以 ffmpeg:开头,因为 go2rtc 需要直接处理该流以实现双向音频功能。 请确保已在摄像头的高级网络设置中启用了 HTTP。如需在 Frigate 中使用双向通话功能,请参考实时预览文档。

yaml
go2rtc:
  streams:
    # 连接标准Reolink摄像头的示例
    your_reolink_camera:
      - 'ffmpeg:http://reolink_ip/flv?port=1935&app=bcs&stream=channel0_main.bcs&user=username&password=password#video=copy#audio=copy#audio=opus'
    your_reolink_camera_sub:
      - 'ffmpeg:http://reolink_ip/flv?port=1935&app=bcs&stream=channel0_ext.bcs&user=username&password=password'
    # 支持双向通话的Reolink摄像头连接示例
    your_reolink_camera_twt:
      - 'ffmpeg:http://reolink_ip/flv?port=1935&app=bcs&stream=channel0_main.bcs&user=username&password=password#video=copy#audio=copy#audio=opus'
      - 'rtsp://username:password@reolink_ip/Preview_01_sub'
    your_reolink_camera_twt_sub:
      - 'ffmpeg:http://reolink_ip/flv?port=1935&app=bcs&stream=channel0_ext.bcs&user=username&password=password'
      - 'rtsp://username:password@reolink_ip/Preview_01_sub'
    # 连接Reolink NVR的示例
    your_reolink_camera_via_nvr:
      - 'ffmpeg:http://reolink_nvr_ip/flv?port=1935&app=bcs&stream=channel3_main.bcs&user=username&password=password' # 通道号为0-15
      - 'ffmpeg:your_reolink_camera_via_nvr#audio=aac'
    your_reolink_camera_via_nvr_sub:
      - 'ffmpeg:http://reolink_nvr_ip/flv?port=1935&app=bcs&stream=channel3_ext.bcs&user=username&password=password'

cameras:
  your_reolink_camera:
    ffmpeg:
      inputs:
        - path: rtsp://127.0.0.1:8554/your_reolink_camera
          input_args: preset-rtsp-restream
          roles:
            - record
        - path: rtsp://127.0.0.1:8554/your_reolink_camera_sub
          input_args: preset-rtsp-restream
          roles:
            - detect
  reolink_via_nvr:
    ffmpeg:
      inputs:
        - path: rtsp://127.0.0.1:8554/your_reolink_camera_via_nvr?video=copy&audio=aac
          input_args: preset-rtsp-restream
          roles:
            - record
        - path: rtsp://127.0.0.1:8554/your_reolink_camera_via_nvr_sub?video=copy
          input_args: preset-rtsp-restream
          roles:
            - detect

Reolink 门铃支持通过 go2rtc 和其他应用实现双向音频。重要的是为了稳定性仍要使用 http-flv 流,可以添加一个仅用于双向音频的辅助 RTSP 流。

确保在摄像头的高级网络设置中启用了 HTTP。要使用 Frigate 的双向通话功能,请参阅实时视图文档。

yaml
go2rtc:
  streams:
    your_reolink_doorbell:
      - 'ffmpeg:http://reolink_ip/flv?port=1935&app=bcs&stream=channel0_main.bcs&user=username&password=password#video=copy#audio=copy#audio=opus'
      - rtsp://username:password@reolink_ip/Preview_01_sub
    your_reolink_doorbell_sub:
      - 'ffmpeg:http://reolink_ip/flv?port=1935&app=bcs&stream=channel0_ext.bcs&user=username&password=password'

Unifi Protect 摄像头 ​

Unifi Protect 摄像头需要使用 rtspx 流与 go2rtc 配合。 要使用 Unifi Protect 摄像头,将 rtsps 链接修改为以 rtspx 开头。 此外,从 Unifi 链接末尾移除"?enableSrtp"。

yaml
go2rtc:
  streams:
    front:
      - rtspx://192.168.1.1:7441/abcdefghijk

更多信息请参阅 go2rtc 文档

在 Unifi 2.0 更新中,Unifi Protect 摄像头的音频采样率发生了变化,导致 ffmpeg 出现问题。如果直接与 Unifi Protect 配合使用,需要为录制设置输入采样率。

yaml
ffmpeg:
  output_args:
    record: preset-record-ubiquiti

TP-Link VIGI 摄像头需要调整主码流设置以避免问题。需要将流配置为H264,并将智能编码设置为关闭。没有这些设置,在尝试观看录制片段时可能会出现问题。例如 Firefox 会在播放几秒后停止并显示以下错误信息:媒体播放因损坏问题或媒体使用了浏览器不支持的功能而中止。。

USB 摄像头(也叫网络摄像头) ​

若要在 Frigate 中使用 USB 摄像头(网络摄像头),建议通过 go2rtc 的FFmpeg 设备功能来实现支持:

  • Frigate 以外的准备工作:
    • 获取 USB 摄像头设备路径。在宿主机上运行 v4l2-ctl --list-devices 命令查看本地连接的摄像头列表(可能需要根据你的 Linux 发行版安装v4l-utils工具包)。下文示例配置中,我们使用video=0来对应检测到的设备路径 /dev/video0
    • 查询 USB 摄像头支持的格式与分辨率。运行 ffmpeg -f v4l2 -list_formats all -i /dev/video0 命令获取摄像头支持的编码格式及分辨率列表。下文示例配置基于查询结果,在视频流和检测设置中采用 1024×576 的分辨率。
    • 若在容器环境(如 TrueNAS 上的 Docker)中使用 Frigate,需确保已启用 USB 透传功能,并在配置中明确指定主机设备(/dev/video0)与容器设备(/dev/video0)的映射关系
  • 在 Frigate 配置文件中,按需添加 go2rtc 流媒体配置及功能:
yaml
go2rtc: 
  streams: 
    usb_camera: # 视频流名称,可自行设置,需要与cameras中配置名称保持一致
      - 'ffmpeg:device?video=0&video_size=1024x576#video=h264'

cameras:
  usb_camera: # 摄像头名称,与go2rtc中配置名称保持一致
    enabled: true
    ffmpeg:
      inputs:
        - path: rtsp://127.0.0.1:8554/usb_camera # usb_camera为go2rtc中配置的视频流名称
          input_args: preset-rtsp-restream
          roles:
            - detect
            - record
    detect:
      enabled: false # <---- 在正常获得摄像头视频流之前,先暂时禁用检测功能,正常后再改为true
      width: 1024
      height: 576