Banana Studio
Guides · BS Manager

Все возможности CamRelay во Frigate NVR

Превратите запасной Android-телефон в камеру для Frigate NVR: CamRelay передаёт RTSP-поток со звуком, а встроенный во Frigate go2rtc принимает его для записи, просмотра в реальном времени со звуком и двусторонней связи. Пошаговая инструкция с полным config.yml.

Все возможности CamRelay во Frigate NVR
On this page

Все возможности CamRelay во Frigate NVR

CamRelay подключает Android-телефон к Frigate через один RTSP-адрес. Встроенный во Frigate go2rtc принимает этот поток и раздаёт его записи, просмотру в реальном времени и каналу двусторонней связи.

CamRelay — приложение от Banana Studio, которое превращает телефон в IP-камеру в вашей локальной сети. Оно передаёт видео H.264 или H.265 со звуком Opus, G.711 или AAC. В нём есть веб-интерфейс, поддержка ONVIF и приём звука от зрителей через RTSP backchannel.

Схема передачи данных: телефон с CamRelay → go2rtc (внутри Frigate) → запись, просмотр в реальном времени со звуком, двусторонняя связь.

Конфигурация ниже рассчитана на Frigate 0.16. В более поздних версиях некоторые ключи могут измениться, поэтому сверяйтесь с официальной документацией Frigate.

Возможности CamRelay во Frigate

Первые четыре возможности попадают во Frigate через go2rtc. Остальные настраиваются в приложении и обеспечивают круглосуточную работу трансляции.

Возможность CamRelay Применение во Frigate Где настроить
RTSP-поток H.264/H.265, разрешение и FPS камеры телефона Запись, обнаружение, просмотр в реальном времени go2rtc, шаг 2.1
Звук G.711 (PCMU/PCMA), Opus или AAC Звук при просмотре и в записях Кодек в приложении, шаг 2.2
Двусторонняя связь (RTSP backchannel) Кнопка микрофона в просмотре в реальном времени WebRTC + HTTPS, шаг 2.3
Наложение даты и времени, имени камеры, IP, заряда батареи и температуры, GPS-координат и скорости Впечатаны в изображение, которое записывает Frigate В приложении, шаг 1
Автозапуск при включении, затемнение экрана, пауза при перегреве или низком заряде Не даёт трансляции прерваться В приложении, шаг 1
Запись MP4 на телефон, управление файлами в браузере Резервные записи вне Frigate В приложении, шаг 1
Веб-интерфейс Проверка изображения и звука, изменение настроек без остановки трансляции Шаг 1

Перед началом

Вам понадобятся:

  • Установленный и работающий сервер Frigate (см. руководство по установке Frigate) в той же локальной сети, что и телефон.
  • Android-телефон с установленным CamRelay, постоянно подключённый к зарядке и с фиксированным IP-адресом, назначенным в роутере.
  • На Android 17: разрешите CamRelay доступ к локальной сети (в Android он называется Устройства поблизости). Без него Frigate не сможет подключиться к телефону. Подробнее в статье о CamRelay 1.0.5.

Чтобы использовать все возможности CamRelay, контейнер Frigate должен открывать следующие порты:

Порт Назначение
8971 HTTPS-интерфейс Frigate, нужен для двусторонней связи
8554 RTSP-ретрансляция go2rtc
8555 TCP и UDP WebRTC: просмотр со звуком и двусторонняя связь

Шаг 1. Настройка CamRelay

CamRelay использует язык телефона; ниже приведены русские названия настроек. Обратите внимание: открытие Настроек останавливает трансляцию. Когда CamRelay уже транслирует, настройки можно менять через веб-интерфейс, не останавливая поток.

1.1 Порт RTSP

В разделе Порты сервера указаны Порт трансляции RTSP (по умолчанию 1935) и Порт веб-интерфейса (по умолчанию 8888). Значения по умолчанию вполне подходят.

Порты сервера в настройках CamRelay: порт RTSP 1935 и веб-порт 8888

1.2 Видео

  1. В разделе Выбор камеры выберите нужную камеру (основная задняя камера обычно даёт лучшее изображение).
  2. Откройте настройки этой камеры и задайте Разрешение, Частота кадров (FPS) и Битрейт видео. Доступные разрешения и частоты кадров зависят от камеры телефона.
  3. В разделе Общие настройки видео → Видео кодек выберите H.264, чтобы браузеры могли воспроизводить трансляцию.
  4. Оставьте Интервал ключевых кадров (GOP) равным 1s (по умолчанию), чтобы просмотр открывался быстро.

Разрешение, FPS и битрейт для каждой камеры

Видеокодек H.264 и интервал ключевых кадров 1 секунда

Для видеонаблюдения достаточно 1080p при 15 FPS, и это не нагружает сервер Frigate. H.265 экономит трафик, но Frigate придётся перекодировать его для браузера (см. шаг 2.2).

1.3 Звук

В разделе Настройки аудио включите Включить аудио. Аудиокодек потока выбирается в разделе Двусторонняя связь → Кодек аудио двусторонней связи. Эта одна настройка действует и на исходящий звук, и на двустороннюю связь:

  • G.711 ULAW: рекомендуется для Frigate, воспроизводится напрямую и в MSE, и в WebRTC (см. шаг 2.2).
  • OPUS: выбран по умолчанию начиная с Android 10, звук чище, но воспроизводится только через WebRTC.
  • G.711 ALAW: только если принимающее устройство требует A-law.
  • AAC: только воспроизведение; для двусторонней связи нужно перекодирование.

Оставьте Режим аудио двусторонней связи на Голосовая связь: в нём есть эхоподавление, поэтому при двусторонней связи не возникает свиста.

Аудиокодек и режим двусторонней связи

1.4 Наложения, запись и круглосуточная работа

  • Оверлей видео: показывайте дату и время, имя камеры (Имя камеры; оставьте пустым, чтобы использовать имя устройства), IP-адрес, заряд батареи и температуру, GPS-координаты или спидометр. Наложения рисуются прямо в видео, поэтому видны и в записях Frigate. По умолчанию все они выключены.
  • Настройки записи: включите Включить запись, чтобы хранить резервную копию на телефоне. Файлы MP4 сохраняются в Movies/CamRelay и делятся на части согласно параметру Длительность сегмента записи (в минутах). Когда достигнут предел Макс. объем памяти (МБ), самые старые файлы удаляются.
  • Безопасность и автоматизация: включите Автозапуск при включении устройства, чтобы CamRelay снова начинал трансляцию после перезагрузки телефона. На Android 10 и новее приложению также нужно разрешение на показ поверх других приложений. Температурная защита и Защита батареи приостанавливают трансляцию, когда телефон перегревается или батарея садится, и возобновляют её, когда всё приходит в норму.
  • Оптимизация батареи: убедитесь, что оптимизация батареи для CamRelay выключена, чтобы Android не останавливал его в фоне.

Параметры наложения на видео

Запись MP4 на телефон

Автозапуск при включении и температурная защита

1.5 Запуск трансляции и получение адреса

Вернитесь на главный экран и нажмите кнопку воспроизведения. Панель вверху показывает используемые разрешение, FPS, битрейт и кодеки. В нижнем углу отображаются три адреса, у каждого есть кнопка копирования:

  • rtsp://<phone-ip>:1935/: RTSP-адрес для Frigate.
  • http://<phone-ip>:8888: веб-интерфейс CamRelay.
  • http://<phone-ip>:8889/onvif/device_service: служба ONVIF.

CamRelay транслирует: адреса RTSP, веб-интерфейса и ONVIF внизу

Если камера стоит на одном месте, нажмите значок луны (Затемнить экран), чтобы погасить экран. Это экономит энергию и предотвращает выгорание OLED-экрана. Чтобы включить экран снова, коснитесь его дважды.

В примерах ниже используется rtsp://192.168.1.50:1935/; замените его на адрес, который показывает CamRelay. Текущая версия CamRelay пока не запрашивает логин для RTSP, поэтому используйте её только в доверенной сети.

Скоро: в следующем обновлении CamRelay можно будет задать имя пользователя и пароль для защиты RTSP-потока. Тогда достаточно будет добавить их в адрес в go2rtc, например rtsp://user:[email protected]:1935/.

Проверить поток с сервера Frigate можно с помощью ffprobe:

ffprobe -rtsp_transport tcp rtsp://192.168.1.50:1935/

В выводе должны быть видеопоток h264 и аудиопоток (pcm_mulaw для G.711 ULAW, opus для OPUS).

Шаг 2. Настройка go2rtc во Frigate

К телефону подключается только go2rtc внутри Frigate. Он один раз забирает RTSP-поток CamRelay и раздаёт его записи, обнаружению, просмотру в реальном времени (MSE, WebRTC) и двусторонней связи. Сам Frigate читает поток из rtsp://127.0.0.1:8554/camrelay, поэтому телефону никогда не приходится обслуживать несколько подключений одновременно. Так он меньше греется и экономит батарею.

2.1 Добавление потока

Добавьте блок go2rtc в ~/frigate/config/config.yml:

go2rtc:
  streams:
    camrelay:                              # то же имя, что у камеры во Frigate
      - rtsp://192.168.1.50:1935/          # адрес, который показывает CamRelay
  webrtc:
    candidates:
      - 192.168.1.100:8555   # IP сервера Frigate
      - stun:8555
  • Достаточно одной строки RTSP. Со звуком G.711 или Opus go2rtc передаёт видео и звук прямо в браузер, без перекодирования через ffmpeg:. Та же строка RTSP несёт и канал двусторонней связи.
  • webrtc.candidates обязателен при работе в обычном Docker; без него WebRTC и микрофон не работают в локальной сети. Порты 8555 TCP/UDP были открыты в разделе «Перед началом».
  • Если поток называется так же, как камера, Frigate автоматически использует его для просмотра в реальном времени. В противном случае задайте для камеры live.streams.

2.2 Кодеки и звук

Установите в CamRelay видео H.264. Проще всего со звуком G.711. Согласно документации Frigate, MSE (просмотр по умолчанию) воспроизводит AAC или PCMA/PCMU, а WebRTC (используется для двусторонней связи) воспроизводит Opus или PCMA/PCMU. Напрямую в обоих работает только G.711.

Звук CamRelay MSE WebRTC Дополнительная строка go2rtc
G.711 ULAW / ALAW (PCMU/PCMA) Да Да Не нужна
OPUS Нет Да ffmpeg:camrelay#audio=aac, чтобы слышать звук в MSE
AAC Да Нет ffmpeg:camrelay#audio=opus для WebRTC

Если вы смотрите в основном через WebRTC, Opus звучит чище, чем G.711 (телефонное качество, 8 кГц). Если без H.265 не обойтись, добавьте строку перекодирования видео и оставьте строку RTSP:

go2rtc:
  streams:
    camrelay:
      - rtsp://192.168.1.50:1935/
      - "ffmpeg:camrelay#video=h264#hardware"   # копия в H.264 для браузеров

2.3 Двусторонняя связь

Во время трансляции CamRelay всегда готов принимать звук через RTSP backchannel; включать ничего не нужно. go2rtc открывает этот канал из строки RTSP в шаге 2.1 без дополнительной настройки.

Чтобы говорить, откройте Frigate по HTTPS на порту 8971, перейдите к просмотру камеры в реальном времени и нажмите на микрофон; Frigate сам переключится на WebRTC. Ваш голос звучит из динамика телефона с громкостью, заданной параметром Громкость воспроизведения в CamRelay.

Если другому приложению тоже нужно говорить с телефоном напрямую, добавьте #backchannel=0 в конец RTSP-адреса, чтобы go2rtc не занимал канал.

2.4 Добавление камеры во Frigate

Добавьте блок cameras под блоком go2rtc. Камера читает поток обратно из go2rtc, а не подключается к телефону:

cameras:
  camrelay:
    ffmpeg:
      inputs:
        - path: rtsp://127.0.0.1:8554/camrelay   # поток go2rtc из шага 2.1
          input_args: preset-rtsp-restream
          roles:
            - record
            - detect   # обязателен для Frigate, больше ничего настраивать не нужно
    record:
      enabled: true

CamRelay передаёт один поток (дополнительного потока нет), поэтому камера использует его и для записи, и для обнаружения.

Перезапустите и проверьте:

docker compose restart frigate
docker logs -f frigate

Чтобы отдельно проверить go2rtc, временно добавьте порт 1984:1984 в docker-compose и откройте http://<server-ip>:1984. У потока camrelay должен быть RTSP-источник с видео H264 и звуком PCMU/PCMA или OPUS. Когда CamRelay появится на главной странице Frigate, всё готово.

Шаг 3. Полный config.yml

Файл ниже содержит только то, что нужно для CamRelay: поток go2rtc, WebRTC, вход в систему (для HTTPS, который нужен двусторонней связи) и запись со звуком.

go2rtc:
  streams:
    camrelay:
      - rtsp://192.168.1.50:1935/   # адрес, который показывает CamRelay, H.264 + G.711 ULAW
  webrtc:
    candidates:
      - 192.168.1.100:8555   # IP сервера Frigate
      - stun:8555

auth:
  enabled: true

cameras:
  camrelay:
    ffmpeg:
      inputs:
        - path: rtsp://127.0.0.1:8554/camrelay
          input_args: preset-rtsp-restream
          roles: [record, detect]   # detect: обязателен для Frigate
    record:
      enabled: true
    live:
      streams:
        CamRelay: camrelay

version: 0.16-0

Устранение неполадок

Большинство проблем при подключении CamRelay к Frigate связаны с адресом потока, кодеками или сетью.

Симптом Частая причина Решение
Камера показывает «No frames received» Неверный адрес или порт, CamRelay не транслирует, или Android остановил его в фоне Снова скопируйте адрес с главного экрана CamRelay; проверьте его через ffprobe; откройте http://<ip>:1984 (если порт открыт), чтобы увидеть, получает ли go2rtc поток
Не подключается даже в одной сети Wi-Fi Телефон с Android 17 без доступа к локальной сети; «изоляция клиентов» в роутере; гостевая сеть; VPN Разрешите CamRelay Устройства поблизости; выключите изоляцию клиентов/AP; подключите сервер и телефон к одной основной сети
Изображение дёргается или рассыпается Потеря UDP-пакетов Добавьте #transport=tcp к адресу в go2rtc
Просмотр не воспроизводится в браузере Поток H.265 или не заданы webrtc.candidates Выберите H.264 в CamRelay или перекодируйте через ffmpeg:...#video=h264; задайте webrtc.candidates
Подключение время от времени обрывается Нестабильный Wi-Fi, оптимизация батареи Android, перегрев телефона Используйте фиксированный IP, держите телефон на зарядке, выключите оптимизацию батареи для CamRelay, включите Автозапуск при включении устройства, используйте кнопку затемнения экрана; следите за температурой вверху экрана CamRelay; проверьте журналы Frigate в Settings → System → Logs
Нет звука при просмотре Выключен параметр Включить аудио или просмотр в MSE, когда CamRelay передаёт OPUS Включите звук в CamRelay; выберите G.711 ULAW, чтобы звук был и в MSE, и в WebRTC
Микрофон не работает Frigate открыт по HTTP вместо HTTPS или не открыт порт 8555 Откройте Frigate по адресу https://<ip>:8971; откройте порт 8555 TCP/UDP и задайте webrtc.candidates

Обращаясь за помощью в GitHub Discussions проекта Frigate, приложите файл конфигурации, журнал запуска и вывод ffprobe для потока CamRelay. С вопросами о CamRelay нажмите Обратная связь на экране О приложении в приложении.

Скачать CamRelay в Google Play

Больше новостей, руководств и приложений от Banana Studio на xnano.net.


Источники: документация Frigate по Live View для go2rtc; руководство пользователя CamRelay и страница в Google Play для CamRelay.

Related app

CamRelay — IP-камера с трансляцией по RTSP

Превратите свой Android-смартфон в мощную сетевую RTSP-камеру.

Related posts