Componente personalizado do Home Assistant para visualização em tempo real de quase qualquer fluxo de câmera usando WebRTC e outras tecnologias.
A partir da versão 3, o servidor de streaming foi alterado de RTSPtoWebRTC para go2rtc.
go2rtc
Instalação
Configuração
Cartão personalizado
Modelos
Áudio bidirecional
Instantâneos para Telegram
Transmitir ou compartilhar stream
Transmitir para a câmera
Perguntas frequentes
Depurar
Câmeras de trabalho conhecidas
Este componente usa o aplicativo go2rtc como servidor de streaming:
menor latência de streaming possível para muitos protocolos suportados
streaming de RTSP, RTMP, HTTP (FLV/MJPEG/JPEG), câmeras HomeKit, câmeras USB e outras fontes
streaming para RTSP, WebRTC, MSE/MP4 ou MJPEG
suporta codec popular H264/H265, AAC, PCMU/PCMA, OPUS
transcodificação instantânea para codecs não suportados via FFmpeg
tecnologia de streaming de seleção automática com base em codecs de stream, recursos do navegador, configuração de rede
Leia mais na documentação do go2rtc!
Você pode instalar o go2rtc de várias maneiras:
Usuários básicos - este componente irá baixar e executar automaticamente a versão mais recente do go2rtc, você não precisa fazer nada sozinho.
Usuários avançados - instale o complemento go2rtc ou Frigate 12+.
Hakers - instale go2rtc como binário ou Docker em qualquer servidor na LAN.
Você pode alterar as configurações do go2rtc adicionando o arquivo go2rtc.yaml
à pasta de configuração do Hass.
Importante. go2rtc executa sua própria interface web na porta 1984
sem senha. Lá você pode ver uma lista de streams de câmeras ativas. Qualquer pessoa na sua LAN pode acessá-los sem senha . Você pode desativar isso na configuração do go2rtc.
PS. Há também outro cartão interessante com suporte go2rtc - Frigate Lovelace Card.
Método 1. HACS > Integrações > Plus > WebRTC > Instalar
Método 2. Copie manualmente a pasta webrtc
da versão mais recente para a pasta /config/custom_components
.
O custom_card
será registrado automaticamente na interface do Home Assistant, exceto quando você estiver gerenciando a interface no modo YAML. Se você estiver gerenciando a UI no modo YAML, adicione isto aos recursos da UI para que o cartão custom:webrtc-camera
funcione:
url: /webrtc/webrtc-camera.jstype: módulo
Atualize seu navegador
Configurações > Dispositivos e serviços > Adicionar integração > WebRTC
Caso a integração não esteja na lista, é necessário limpar o cache do navegador.
O componente não cria dispositivos e entidades . Ele cria apenas dois serviços e um cartão personalizado lovelace.
Como url
você pode usar:
qualquer protocolo suportado por go2rtc ( rtsp
, rtmp
, http
, onvif
, dvrip
, homekit
, roborock
, etc.)
name
do stream da configuração do go2rtc
Modelo Jinja2
(deve renderizar o protocolo suportado ou name
do fluxo)
Como entity
você pode usar quase qualquer câmera da Hass.
Como poster
você pode usar:
http
-link (deve ser um link disponível publicamente)
entity
de câmera de Hass
name
do stream da configuração do go2rtc
Modelo Jinja2
(deve renderizar entity
da câmera ou name
do stream)
Mínimo
tipo: 'custom:webrtc-camera'url: 'rtsp://rtsp:[email protected]:554/av_stream/ch0'
ou
type: 'custom:webrtc-camera'url: 'camera1' # nome do stream de go2rtc.yaml
ou
type: 'custom:webrtc-camera'entity: camera.generic_stream # altere para a entidade_id da sua câmera
ou
type: 'custom:webrtc-camera'streams: - url: go2rtc_stream_hdname: HD # nome é opcionalmodo: webrtc # modo é opcionalmídia: vídeo # mídia é opcional - url: go2rtc_stream_sdname: SDmode: msemedia: áudio
PS. Você pode alterar o fluxo ativo clicando no rótulo mode
. Ou clicando no name
do stream com ui: true
habilitado.
Completo
Todas as configurações são opcionais! Somente configuração necessária - url
ou entity
ou streams
.
tipo: 'custom:webrtc-camera'url: 'rtsp://rtsp:[email protected]:554/av_stream/ch0'entity: camera.generic_streammode: webrtc,webrtc/tcp,mse,hls,mjpeg # tecnologia de stream , padrão todos elesmedia: video,audio # selecione apenas vídeo ou faixa de áudio, padrão ambosservidor: http://192.168.1.123:1984/ # endereço do servidor go2rtc personalizado, padrão emptyui: true # controles de vídeo personalizados, padrão falsedigital_ptz: # zoom digital e panorâmica via mouse/toque, padrões: mouse_drag_pan: verdadeiro mouse_wheel_zoom: verdadeiro mouse_double_click_zoom: verdadeiro touch_drag_pan: verdadeiro touch_pinch_zoom: verdadeiro touch_tap_drag_zoom: verdadeiro persistir: verdadeiro # fator de zoom e posição da janela de visualização sobreviver às recargas da página# digital_ptz: falso # para desativar todo zoom digital de mouse/toque e pantitle: Minha super câmera # cartão opcional titleposter: https://home-assistant.io/images/cast/ splash.png # imagem estática quando o fluxo está carregando silenciado: verdadeiro # estado inicial de alternância de mudo, o padrão é falso (sem som) interseção: 0,75 # interrompe automaticamente o fluxo quando menos de 75% do elemento de vídeo estiver no screen, 50% por padrãobackground: true # executa stream quando não exibido (ex. para carregamento rápido de vídeo), default falseshortcuts: # atalhos personalizados, padrão none- name: Record ícone: mdi:record-circle-outline serviço: switch.toggle service_data:entity_id: switch.camera_record
Controles de panorâmica, inclinação e zoom: exemplos de configuração PTZ.
Pausado por padrão
tipo: custom:webrtc-cameraposter: dahua1-snap # nome do stream de go2rtc.yaml (http-snapshot)streams: - url: '' # url vazia, então apenas o pôster será mostrado - url: dahua1 # nome do stream de go2rtc.yaml (rtsp-stream)
Problema na proporção do vídeo
style: "vídeo {proporção: 16/9; ajuste ao objeto: preenchimento;}"
Rotação de vídeo
No cliente (CPU livre):
estilo: 'vídeo {transformação: girar (90deg); proporção de aspecto: 1}'
No servidor - transcodificação FFmpeg (alto custo de CPU)
Ocultar rótulo do modo
estilo: '.mode {display: nenhum}'
Ocultar botão de tela cheia
estilo: '.fullscreen {display: nenhum}'
Ocultar botão de captura de tela
estilo: '.screenshot {display: nenhum}'
Ocultar botão PIP
estilo: '.pictureinpicture {display: nenhum}'
Posição dos atalhos
style: ".shortcuts {esquerda: não definido; topo: 25px; direita: 5px; display: flex; flex-direction: coluna}"
Posição PTZ
style: ".ptz {direita: não definido; esquerda: 10px}"
Posição do rótulo de modo
estilo: '.header {bottom: 6px} .mode {posição: absoluto; inferior: 0px}'
Posição da linha do cabeçalho
estilo: '.header {top: não definido; inferior: 6px}'
Novo na v3.6.0.
shortcuts
de opções de cartão, style
e ptz
suportam modelos JavaScript
Em shortcuts
e style
você pode usar modelos relacionados states
No ptz
você pode usar modelos relacionados streamName
/ streamID
(útil para cartões com vários modelos)
atalhos: - nome: Barn Lighticon: ${ states['light.yeelight_lamp'].state === 'on' ? 'mdi: lâmpada externa': 'mdi: lâmpada' }serviço: light.toggleservice_data: entidade_id: light.yeelight_lamp
ptz: serviço: notify.persistent_notification data_left:message: Esquerda para ${ this.streamName } clicado data_right:message: Certo para ${ this.streamID } clicado
Novo na v3.4.0.
Apenas para fontes suportadas em go2rtc
Somente para Hass com acesso HTTPS, essa limitação é dos navegadores
Somente para modo WebRTC
HTTPS também é importante para o Hass Mobile App!
Você deve adicionar microphone
ao parâmetro media
. Você pode usar dois streams: um com microfone e outro sem:
type: 'custom:webrtc-camera'streams: -url: go2rtc_stream - url: go2rtc_streammode: webrtcmedia: vídeo, áudio, microfone
PS. Para o Hass Mobile App, certifique-se de usar o microfone com o Assist integrado.
leia mais
Componente suporta streaming para dispositivos Google Cast Chromecast (incluindo Android TV e Google Smart Screen). Leia mais no wiki.
Além disso, o componente oferece suporte à criação de um link temporário ou permanente para um fluxo sem compartilhar o acesso ao seu Home Assistant. Leia mais no wiki.
Novo na v3.1.0.
O suporte go2rtc reproduz arquivos de áudio (por exemplo, música ou TTS) e transmissões ao vivo (por exemplo, rádio) em câmeras com suporte de áudio bidirecional. Você precisa:
Verifique se sua câmera suporta fonte de áudio bidirecional
Configure o fluxo da câmera na configuração go2rtc.yaml
Verifique o codec de áudio compatível com sua câmera
Crie reprodutores de mídia virtuais para suas câmeras em configuration.yaml
:
media_player: - plataforma: webrtcname: Dahua Camerastream: dahuaaudio: pcmu/48000 - plataforma: webrtcname: Tapo Camerastream: tapoaudio: pcma
P. O acesso externo com WebRTC não funciona
A. Leia mais e não crie novos problemas.
P. O áudio não funciona
A. Verifique qual codec de áudio sua câmera produz. E que tecnologia você usa para assistir vídeos. Diferentes tecnologias suportam diferentes codecs.
Adicione ao seu configuration.yaml
:
registrador: padrão: aviso logs:custom_components.webrtc: depuração
Marca | Modelos | Comentário |
---|---|---|
ActiveCam | AC-D2121IR3 | |
ActiveCam | AC-D7121IR1W | som de suporte |
Android | Webcam IP profissional | suporte a som, rtsp://192.168.1.123:8080/h264_ulaw.sdp |
C-trônica | CTIPC-690C | suporte a som, principal: rtsp://username:[email protected]:554/11 ou onvif://username:[email protected]:8080?subtype=MainStreamProfileToken |
Dahua | DH-IPC-HDPW1431FP-AS-0280B, VTO2211G-P | som de suporte |
Dahua | VTO2202F-P-S2 | leia mais |
EZVIZ | C3S | rtsp://admin:[email protected]:554/h264/ch01/main/av_stream e /h264/ch01/sub/av_stream |
EZVIZ | C3W, C3WN, C6CN, C6T | rtsp://admin:[email protected]:554/h264_stream |
EZVIZ | C8C | rtsp://admin:[email protected]:554/channel80 |
Foscam | C1 | rtsp://user:[email protected]:554/videoMain |
Foscam | C2M, R2M | rtsp://user:[email protected]:88/videoMain |
Segurança GW | GW5088IP | rtsp://192.168.1.123:554/mpeg4cif?username=admin&password=123456 |
Segurança GW | GW5078IP | rtsp://192.168.1.123:554/stream0?username=admin&password=123456 |
Segurança GW | GW5071IP | Ainda não está funcionando, algo semelhante a rtsp://admin:[email protected]:554/live/main ou rtsp://192.168.0.207:554/live/main?username=admin&password=123456 |
Hikvision | DS-2CD2T47G1-L, DS-2CD1321-I, DS-2CD2143G0-IS | rtsp://user:[email protected]:554/ISAPI/Streaming/Channels/102 |
Hikvision | IPC-HDW3849H-AS-PV, IPC-EW5531-AS | conectado ao nvr DHI-NVR2108HS-8P-I usando componente personalizado |
Imo | IPC-F42-B2E3 (bala 2C 4MP) | rtsp://admin:[email protected]:554/cam/realmonitor?channel=1&subtype=0 |
QNAP | QUSBCam2 | rtsp://username:[email protected]:554/channel1 documentos |
Framboesa Pi | PiCam | leia mais |
Reolink | RLC-410, RLC-410W, RLC-510WA, E1 Pro, Zoom E1, 4505MP | RLC-510WA suporta som, som de suporte E1 Zoom, PTZ e zoom |
Reolink | E1 | rtsp://admin:[email protected]:554/h264Preview_01_main |
Sonoff | GK-200MP2-B | suporta som e PTZ, rtsp://rtsp:[email protected]:554/av_stream/ch0 e /av_stream/ch1 |
SriHome | SH035 | rtsp://192.168.xxx.xxx:8554/profile0 e /profile1 e /profile2 |
Topvico | rtsp://192.168.1.123:8554/stream0 ou rtsp://192.168.1.123:554/ch0_0.264 | |
Link TP | Tapo C100/C200/C210/C220/C310 | rtsp://user:[email protected]:554/stream1 e /stream2 |
TVT/Secutech | NVR-0808B2-8P | rtsp://user:[email protected]:554/chID=1&streamType=main e chID=2&streamType=main |
TVT/Secutech | IPC5-DF28SN | rtsp://user:[email protected]:554/profile1 e /profile2 |
Unifi | G4 Dome, campainha G4, G3 Bullet, G3 Flex | Copie o link rtsps das configurações da câmera no Unifi Protect, mas altere o link para rstp:// (o padrão é rstps://), altere a porta para 7447 e remova quaisquer parâmetros de consulta |
Wyze | Câmera v2/v3, Câmera panorâmica v1/v2 | som de suporte |
Xiaomi | Dafang | com hack, rtsp://192.168.1.123:8554/unicast Vídeo: H264, tamanho: 1920x1080, taxa de bits: 1000, formato: VBR, taxa de quadros: 10 Áudio: PCMU, taxa de entrada: 8.000, taxa de saída: 44.100 |
Yale | SV-4CFDVR-2 | rtsp://admin:[email protected]/cam/realmonitor?channel=1&subtype=0 |
Sim | Chipset Hi3518e | com hack |
Sim | Chipset MStar Infinity | com hack |