Пользовательский компонент Home Assistant для просмотра в реальном времени практически любого потока с камеры с использованием WebRTC и других технологий.
Начиная с версии 3, сервер потоковой передачи был изменен с RTSPtoWebRTC на go2rtc.
go2rtc
Установка
Конфигурация
Пользовательская карта
Шаблоны
Двустороннее аудио
Снимки в Telegram
Трансляция или публикация трансляции
Поток на камеру
Часто задаваемые вопросы
Отлаживать
Известные рабочие камеры
Этот компонент использует приложение go2rtc в качестве сервера потоковой передачи:
минимально возможная задержка потоковой передачи для многих поддерживаемых протоколов
потоковая передача с RTSP, RTMP, HTTP (FLV/MJPEG/JPEG), камер HomeKit, USB-камер и других источников
потоковая передача в RTSP, WebRTC, MSE/MP4 или MJPEG
поддержка популярных кодеков H264/H265, AAC, PCMU/PCMA, OPUS
перекодирование на лету для неподдерживаемых кодеков через FFmpeg
автоматический выбор технологии потоковой передачи на основе потоковых кодеков, возможностей браузера и конфигурации сети
Подробности читайте в документации go2rtc!
Установить go2rtc можно несколькими способами:
Базовые пользователи — этот компонент автоматически загрузит и запустит последнюю версию go2rtc, вам не нужно ничего делать самостоятельно.
Продвинутые пользователи — установите дополнение go2rtc или Frigate 12+.
Хакерам — установите go2rtc как бинарный файл или Docker на любой сервер в локальной сети.
Вы можете изменить настройки go2rtc, добавив файл go2rtc.yaml
в папку конфигурации Hass.
Важный. go2rtc запускает собственный веб-интерфейс через порт 1984
без пароля. Там вы можете увидеть список активных потоков камер. Любой пользователь вашей локальной сети может получить к ним доступ без пароля . Вы можете отключить это в конфигурации go2rtc.
ПС. Есть еще одна приятная карта с поддержкой go2rtc — Frigate Lovelace Card.
Способ 1. HACS > Интеграции > Плюс > WebRTC > Установить.
Способ 2. Вручную скопируйте папку webrtc
из последней версии в папку /config/custom_components
.
custom_card
будет автоматически зарегистрирован в пользовательском интерфейсе Home Assistant, за исключением случаев, когда вы управляете пользовательским интерфейсом в режиме YAML. Если вы управляете пользовательским интерфейсом в режиме YAML, добавьте это в свои ресурсы пользовательского интерфейса, чтобы карта custom:webrtc-camera
работала:
URL: /webrtc/webrtc-camera.jstype: модуль
Обновите браузер
Настройки > Устройства и службы > Добавить интеграцию > WebRTC
Если интеграции нет в списке, необходимо очистить кэш браузера.
Компонент не создает устройства и сущности . Он создает только две услуги и кастомную карточку Lovelace.
В качестве url
вы можете использовать:
любой протокол, поддерживаемый go2rtc ( rtsp
, rtmp
, http
, onvif
, dvrip
, homekit
, roborock
и т. д.)
name
потока из конфигурации go2rtc
Шаблон Jinja2
(должен отображать поддерживаемый протокол или name
потока)
В качестве entity
можно использовать практически любую камеру от Hass.
В качестве poster
можно использовать:
http
-ссылка (должна быть общедоступной ссылкой)
entity
камеры от Hass
name
потока из конфигурации go2rtc
Шаблон Jinja2
(должен отображать entity
камеры или name
потока)
Минимальный
введите: 'custom:webrtc-camera'url: 'rtsp://rtsp:[email protected]:554/av_stream/ch0'
или
type: 'custom:webrtc-camera'url: 'camera1' # имя потока из go2rtc.yaml
или
type: 'custom:webrtc-camera'entity: camera.generic_stream # измените наentity_id вашей камеры
или
введите: 'custom:webrtc-camera'streams: - url: go2rtc_stream_hdname: HD # имя необязательноmode: webrtc # режим не является обязательнымmedia: video # медиа не является обязательным - URL: go2rtc_stream_sdname: SDmode: msemedia: audio
ПС. Вы можете изменить активный поток, нажав на метку mode
. Или щелкнув name
потока с включенным ui: true
.
Полный
Все настройки необязательны! Только обязательная настройка — url
-адрес или entity
или streams
.
type: 'custom:webrtc-camera'url: 'rtsp://rtsp:[email protected]:554/av_stream/ch0'entity: camera.generic_streammode: webrtc,webrtc/tcp,mse,hls,mjpeg # технология потока , по умолчанию все медиа: видео, аудио # выбрать только видео или аудиодорожку, по умолчанию Bothserver: http://192.168.1.123:1984/ # пользовательский адрес сервера go2rtc, по умолчанию пустой интерфейс: true # пользовательские элементы управления видео, по умолчанию falsedigital_ptz: # цифровое масштабирование и панорамирование с помощью мыши/прикосновения, значения по умолчанию: mouse_drag_pan: правда mouse_wheel_zoom: правда mouse_double_click_zoom: правда touch_drag_pan: правда touch_pinch_zoom: правда touch_tap_drag_zoom: правда persist: true # коэффициент масштабирования и положение области просмотра после перезагрузки страницы# digital_ptz: false # для отключения всего цифрового масштабирования и панорамирования с помощью мыши/сенсорного экрана: Моя суперкамера # дополнительный заголовок карты: https://home-assistant.io/images/cast/ всплеск.png # неподвижное изображение при загрузке потока приглушено: true # начальное состояние отключения звука, по умолчанию — false (включено)intersection: 0.75 # автоматическая остановка потока, когда менее 75% видеоэлемента находится в screen, 50% по умолчаниюbackground: true # запускать поток, когда он не отображается (например, для быстрой загрузки видео), falseshortcuts по умолчанию: # пользовательские ярлыки, по умолчанию none-name: запись значок: mdi:record-circle-outline сервис: переключатель.toggle service_data:entity_id: switch.camera_record
Элементы управления панорамированием, наклоном и масштабированием: примеры конфигурации PTZ.
Приостановлено по умолчанию
тип: custom:webrtc-cameraposter: dahua1-snap # имя потока из go2rtc.yaml (http-snapshot)streams: - url: '' # пустой URL, поэтому будет показан только плакат - URL: dahua1 # имя потока из go2rtc.yaml (rtsp-stream)
Проблема с соотношением сторон видео
стиль: "видео {соотношение сторон: 16/9; соответствие объекта: заливка;}"
Ротация видео
На клиенте (свободный процессор):
стиль: 'видео {transform: Rotate(90deg); соотношение сторон: 1}'
На сервере — транскодирование FFmpeg (высокая стоимость процессора)
Скрыть метку режима
стиль: '.mode {display: none}'
Скрыть полноэкранную кнопку
стиль: '.fullscreen {display: none}'
Кнопка «Скрыть скриншот»
стиль: '.screenshot {display: none}'
Скрыть кнопку PIP
стиль: '.pictureinpicture {display: none}'
Положение ярлыков
стиль: ".shortcuts {слева: не установлено; сверху: 25 пикселей; справа: 5 пикселей; дисплей: flex; flex-direction: столбец}"
Позиция PTZ
стиль: ".ptz {справа: не установлено; слева: 10 пикселей}"
Положение метки режима
стиль: '.header {дно: 6 пикселей} .mode {позиция: абсолютная; внизу: 0 пикселей}'
Положение строки заголовка
стиль: '.header {top: unset; внизу: 6 пикселей}'
Новое в версии 3.6.0.
shortcuts
параметров карты, style
и ptz
поддерживают шаблоны JavaScript.
В shortcuts
и style
вы можете использовать шаблоны, связанные с states
.
В ptz
вы можете использовать шаблоны, связанные с streamName
и streamID
(полезно для карточек с несколькими шаблонами)
ярлыки: - имя: Barn Lighticon: ${states['light.yeelight_lamp'].state === 'on' ? 'mdi:outdoor-lamp':'mdi:lamp' }service: Light.toggleservice_data:entity_id:light.yeelight_lamp
ptz: сервис: notify.persistent_notification data_left:message: Осталось кликнуть ${ this.streamName } data_right:message: Правильно для ${ this.streamID }, нажатого
Новое в версии 3.4.0.
Только для поддерживаемых источников в go2rtc.
Только для Hass с доступом по HTTPS, это ограничение исходит от браузеров.
Только для режима WebRTC
HTTPS также важен для мобильного приложения Hass!
Вам следует добавить microphone
в параметр media
. Вы можете использовать два потока: один с микрофоном, второй без:
введите: 'custom:webrtc-camera'streams: - URL: go2rtc_stream - URL: go2rtc_streammode: webrtcmedia: видео, аудио, микрофон
ПС. Для мобильного приложения Hass убедитесь, что вы можете использовать микрофон со встроенным Assist.
читать далее
Компонент поддерживает потоковую передачу на устройства Google Cast Chromecast (включая Android TV и Google Smart Screen). Подробнее читайте в вики.
Также компонент поддерживает создание временной или постоянной ссылки на поток без предоставления доступа к Home Assistant. Подробнее читайте в вики.
Новое в версии 3.1.0.
Поддержка go2rtc — воспроизведение аудиофайлов (например, музыки или TTS) и прямых трансляций (например, радио) на камерах с поддержкой двусторонней аудиосвязи. Вам нужно:
Проверьте, поддерживает ли ваша камера двустороннюю аудиосистему.
Настройте поток камеры в конфигурации go2rtc.yaml
Проверьте аудиокодек, который поддерживает ваша камера.
Создайте виртуальные медиаплееры для ваших камер в файле configuration.yaml
:
медиа_плеер: - платформа: webrtcname: Dahua Camerastream: dahuaaudio: pcmu/48000 - платформа: webrtcname: Tapo Camerastream: Tapoaudio: pcma
Вопрос. Внешний доступ через WebRTC не работает.
А. Читайте больше и не создавайте новых проблем.
Вопрос. Звук не работает.
А. Проверьте, какой аудиокодек выдает ваша камера. А какие технологии вы используете для просмотра видео? Разные технологии поддерживают разные кодеки.
Добавьте в свой configuration.yaml
:
регистратор: по умолчанию: предупреждение журналы: custom_comComponents.webrtc: отладка
Бренд | Модели | Комментарий |
---|---|---|
АктивКам | AC-D2121IR3 | |
АктивКам | AC-D7121IR1W | поддержка звука |
Андроид | IP-веб-камера Pro | поддержка звука, rtsp://192.168.1.123:8080/h264_ulaw.sdp |
С-троникс | CTIPC-690C | поддержка звука, основной: rtsp://username:[email protected]:554/11 или onvif://username:[email protected]:8080?subtype=MainStreamProfileToken |
Дахуа | DH-IPC-HDPW1431FP-AS-0280B, VTO2211G-P | поддержка звука |
Дахуа | ВТО2202Ф-П-С2 | читать далее |
ЭЗВИЗ | C3S | rtsp://admin:[email protected]:554/h264/ch01/main/av_stream и /h264/ch01/sub/av_stream |
ЭЗВИЗ | C3W, C3WN, C6CN, C6T | rtsp://admin:[email protected]:554/h264_stream |
ЭЗВИЗ | C8C | rtsp://admin:[email protected]:554/channel80 |
Фоскам | С1 | rtsp://user:[email protected]:554/videoMain |
Фоскам | С2М, Р2М | rtsp://user:[email protected]:88/videoMain |
ГВ Безопасность | GW5088IP | rtsp://192.168.1.123:554/mpeg4cif?username=admin&password=123456 |
ГВ Безопасность | GW5078IP | rtsp://192.168.1.123:554/stream0?username=admin&password=123456 |
ГВ Безопасность | GW5071IP | Пока не работает, что-то похожее на rtsp://admin:[email protected]:554/live/main или rtsp://192.168.0.207:554/live/main?username=admin&password=123456 |
Хиквидение | DS-2CD2T47G1-L, DS-2CD1321-I, DS-2CD2143G0-IS | rtsp://user:[email protected]:554/ISAPI/Streaming/Channels/102 |
Хиквидение | IPC-HDW3849H-AS-PV, IPC-EW5531-AS | подключен к видеорегистратору DHI-NVR2108HS-8P-I с использованием специального компонента |
Иму | IPC-F42-B2E3 (Пуля 2С 4МП) | rtsp://admin:[email protected]:554/cam/realmonitor?channel=1&subtype=0 |
КНАП | QUSBCam2 | rtsp://username:[email protected]:554/channel1 документы |
Малиновый Пи | ПиКам | читать далее |
реолинк | RLC-410, RLC-410W, RLC-510WA, E1 Pro, E1 Zoom, 4505MP | RLC-510WA поддерживает звук, поддерживает звук E1 Zoom, PTZ и масштабирование |
реолинк | Е1 | rtsp://admin:[email protected]:554/h264Preview_01_main |
Сонофф | ГК-200МП2-Б | поддержка звука и PTZ, rtsp://rtsp:[email protected]:554/av_stream/ch0 и /av_stream/ch1 |
ШриХом | SH035 | rtsp://192.168.xxx.xxx:8554/profile0 и /profile1 и /profile2 |
Топвико | rtsp://192.168.1.123:8554/stream0 или rtsp://192.168.1.123:554/ch0_0.264 | |
ТП-Линк | Тапо C100/C200/C210/C220/C310 | rtsp://user:[email protected]:554/stream1 и /stream2 |
ТВТ/Секутех | НВР-0808B2-8P | rtsp://user:[email protected]:554/chID=1&streamType=main и chID=2&streamType=main |
ТВТ/Секутех | IPC5-DF28SN | rtsp://user:[email protected]:554/profile1 и /profile2 |
Унифи | G4 Dome, G4 дверной звонок, G3 Bullet, G3 Flex | Скопируйте ссылку rtsps из настроек камеры в Unifi Protect, но измените ссылку на rstp:// (по умолчанию — rstps://), измените порт на 7447 и удалите все параметры запроса. |
Вайз | Камера v2/v3, камера панорамирования v1/v2 | поддержка звука |
Сяоми | Дафан | с хаком, rtsp://192.168.1.123:8554/unicast Видео: H264, размер: 1920х1080, битрейт: 1000, формат: VBR, частота кадров: 10 Аудио: PCMU, входная скорость: 8000, исходящая скорость: 44100 |
Йельский университет | СВ-4ЦФДВР-2 | rtsp://admin:[email protected]/cam/realmonitor?channel=1&subtype=0 |
Йи | Hi3518e Чипсет | с хаком |
Йи | Чипсет MStar Infinity | с хаком |