Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Home Assistant custom component for real-time viewing of almost any camera stream using WebRTC and other technologies.

License

NotificationsYou must be signed in to change notification settings

AlexxIT/WebRTC

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

hacs_badge

Home Assistant custom component for real-time viewing of almost any camera stream usingWebRTC and other technologies.

Starting with version 3 the streaming server has been changed fromRTSPtoWebRTC togo2rtc.


go2rtc

This component uses thego2rtc application as a streaming server:

  • lowest possible streaming latency for many supported protocols
  • streaming from RTSP, RTMP, HTTP (FLV/MJPEG/JPEG), HomeKit cameras, USB cameras and other sources
  • streaming to RTSP, WebRTC, MSE/MP4 or MJPEG
  • support popular codec H264/H265, AAC, PCMU/PCMA, OPUS
  • on-the-fly transcoding for unsupported codecs via FFmpeg
  • autoselect streaming technology based on stream codecs, browser capabilities, network configuration

Read more in the go2rtcdocs!

You can install go2rtc in several ways:

  1. Basic users - this component will automatically download and run the latest version of go2rtc, you don't need to do anything yourself.
  2. Advanced users - install thego2rtc orFrigate 12+ add-on.
  3. Hakers - install go2rtc asbinary orDocker on any server in LAN.

You can change the go2rtc settings by adding thego2rtc.yaml file to your Hass configuration folder.

Important. go2rtc runs its own web interface on port1984 without a password. There you can see a list of active camera streams. Anyone on your LAN canaccess them without a password. You can disable this in the go2rtc config.

PS. There is also another nice card with go2rtc support -Frigate Lovelace Card.

Installation

Method 1.HACS > Integrations > Plus >WebRTC > Install

Method 2. Manually copywebrtc folder fromlatest release to/config/custom_components folder.

Additional steps if you are using the UI in YAML mode: add card to resources

Thecustom_card will be automatically registered with the Home Assistant UI, except when you are managing the UI in YAML mode.If you are managing the UI in YAML mode then add this to your UI resources for thecustom:webrtc-camera card to work:

url:/webrtc/webrtc-camera.jstype:module
  • Refresh your browser

Configuration

Settings > Devices & Services > Add Integration >WebRTC

If the integration is not in the list, you need to clear the browser cache.

Componentdoesn't create devices and entities. It creates only two services and lovelace custom card.

Custom card

As aurl you can use:

  • any protocol supported by go2rtc (rtsp,rtmp,http,onvif,dvrip,homekit,roborock, etc.)
  • streamname from the go2rtc config
  • Jinja2 template (should render supported protocol or streamname)

As aentity you can use almost any camera from Hass.

As aposter you can use:

  • http-link (should be publicly available link)
  • cameraentity from Hass
  • streamname from the go2rtc config
  • Jinja2 template (should render cameraentity or streamname)

Minimal

type:'custom:webrtc-camera'url:'rtsp://rtsp:12345678@192.168.1.123:554/av_stream/ch0'

or

type:'custom:webrtc-camera'url:'camera1'# stream name from go2rtc.yaml

or

type:'custom:webrtc-camera'entity:camera.generic_stream# change to your camera entity_id

or

type:'custom:webrtc-camera'streams:  -url:go2rtc_stream_hdname:HD# name is optionalmode:webrtc# mode is optionalmedia:video# media is optional  -url:go2rtc_stream_sdname:SDmode:msemedia:audio

PS. You can change the active stream by clicking on themode label. Or by clicking on the streamname with enabledui: true.

Full

All settings are optional! Only required setting -url orentity orstreams.

type:'custom:webrtc-camera'url:'rtsp://rtsp:12345678@192.168.1.123:554/av_stream/ch0'entity:camera.generic_streammode:webrtc,webrtc/tcp,mse,hls,mjpeg# stream technology, default all of themmedia:video,audio# select only video or audio track, default bothserver:http://192.168.1.123:1984/# custom go2rtc server address, default emptyui:true# custom video controls, default falsedigital_ptz:# digital zoom and pan via mouse/touch, defaults:mouse_drag_pan:truemouse_wheel_zoom:truemouse_double_click_zoom:truetouch_drag_pan:truetouch_pinch_zoom:truetouch_tap_drag_zoom:truepersist:true# zoom factor and viewport position survive page reloads# digital_ptz: false  # to disable all mouse/touch digital zoom and pantitle:My super camera# optional card titleposter:https://home-assistant.io/images/cast/splash.png# still image when stream is loadingmuted:true# initial mute toggle state, default is false (unmuted)intersection:0.75# auto stop stream when less than 75% of video element is in the screen, 50% by defaultbackground:true# run stream when not displayed (ex. for quick video loading), default falseshortcuts:# custom shortcuts, default none-name:Recordicon:mdi:record-circle-outlineservice:switch.toggleservice_data:entity_id:switch.camera_record

Pan, tilt, zoom controls:PTZ config examples.

Paused by default

type:custom:webrtc-cameraposter:dahua1-snap# stream name from go2rtc.yaml (http-snapshot)streams:  -url:''# empty url, so only poster will be shown  -url:dahua1# stream name from go2rtc.yaml (rtsp-stream)

Video aspect ratioissue

style:"video {aspect-ratio: 16/9; object-fit: fill;}"

Video rotation

  1. On client (free CPU):
    style:'video {transform: rotate(90deg); aspect-ratio: 1}'
  2. On server -FFmpeg transcoding (high CPU cost)

Hide mode label

style:'.mode {display: none}'

Hide fullscreen button

style:'.fullscreen {display: none}'

Hide screenshot button

style:'.screenshot {display: none}'

Hide PIP button

style:'.pictureinpicture {display: none}'

Shortcuts position

style:".shortcuts {left: unset; top: 25px; right: 5px; display: flex; flex-direction: column}"

PTZ position

style:".ptz {right: unset; left: 10px}"

Mode label position

style:'.header {bottom: 6px} .mode {position: absolute; bottom: 0px}'

Header line position

style:'.header {top: unset; bottom: 6px}'

Templates

New in v3.6.0.

  • Card optionsshortcuts,style andptz supports JavaScript templates
  • Inshortcuts andstyle you can usestates related templates
  • Inptz you can usestreamName/streamID related templates (useful for card with multiple templates)
shortcuts:  -name:Barn Lighticon:${ states['light.yeelight_lamp'].state === 'on' ? 'mdi:outdoor-lamp':'mdi:lamp' }service:light.toggleservice_data:entity_id:light.yeelight_lamp
ptz:service:notify.persistent_notificationdata_left:message:Left for ${ this.streamName } clickeddata_right:message:Rigth for ${ this.streamID } clicked

Two-way audio

New in v3.4.0.

You should addmicrophone tomedia param. You can use two streams: one with mic, second without:

type:'custom:webrtc-camera'streams:  -url:go2rtc_stream  -url:go2rtc_streammode:webrtcmedia:video,audio,microphone

PS. For HassMobile App ensure that you can use microphone with the built-inAssist.

Snapshots to Telegram

read more

Cast or share stream

Component support streaming toGoogle Cast Chromecast devices (including Android TV and Google Smart Screen). Read more inwiki.

Also component support creating a temporary or permanent link to a stream without sharing access to you Home Assistant. Read more inwiki.

Stream to camera

New in v3.1.0.

go2rtc support play audio files (ex.music orTTS) and live streams (ex. radio) on cameras withtwo way audio support. You need to:

  1. Check if your camera has supportedtwo way audio source
  2. Setup camera stream ingo2rtc.yaml config
  3. Check audio codec, that yourcamera supports
  4. Create virtualMedia Players for your cameras inconfiguration.yaml:
media_player:  -platform:webrtcname:Dahua Camerastream:dahuaaudio:pcmu/48000  -platform:webrtcname:Tapo Camerastream:tapoaudio:pcma

FAQ

Q. Exernal access with WebRTC doesn't work
A.Read more and don't create new issues.

Q. Audio doesn't work
A. Check what audio codec your camera outputs. And what technology do you use to watch videos. Different technologies support different codecs.

Debug

Add to yourconfiguration.yaml:

logger:default:warninglogs:custom_components.webrtc:debug

Known work cameras

BrandModelsComment
ActiveCamAC-D2121IR3
ActiveCamAC-D7121IR1Wsupport sound
AndroidIP Webcam Prosupport sound,rtsp://192.168.1.123:8080/h264_ulaw.sdp
C-tronicsCTIPC-690Csupport sound, main :rtsp://username:password@192.168.1.xx:554/11 oronvif://username:password@192.168.1.xx:8080?subtype=MainStreamProfileToken
DahuaDH-IPC-HDPW1431FP-AS-0280B, VTO2211G-Psupport sound
DahuaVTO2202F-P-S2read more
EZVIZC3Srtsp://admin:pass@192.168.1.123:554/h264/ch01/main/av_stream and/h264/ch01/sub/av_stream
EZVIZC3W, C3WN, C6CN, C6Trtsp://admin:pass@192.168.1.123:554/h264_stream
EZVIZC8Crtsp://admin:pass@192.168.1.123:554/channel80
FoscamC1rtsp://user:pass@192.168.1.123:554/videoMain
FoscamC2M, R2Mrtsp://user:pass@192.168.1.123:88/videoMain
GW SecurityGW5088IPrtsp://192.168.1.123:554/mpeg4cif?username=admin&password=123456
GW SecurityGW5078IPrtsp://192.168.1.123:554/stream0?username=admin&password=123456
GW SecurityGW5071IPNot working yet, something similar tortsp://admin:123456@192.168.0.207:554/live/main orrtsp://192.168.0.207:554/live/main?username=admin&password=123456
HikvisionDS-2CD2T47G1-L, DS-2CD1321-I, DS-2CD2143G0-ISrtsp://user:pass@192.168.1.123:554/ISAPI/Streaming/Channels/102
HikvisionIPC-HDW3849H-AS-PV, IPC-EW5531-ASwired to nvr DHI-NVR2108HS-8P-I usingcustom component
ImouIPC-F42-B2E3 (Bullet 2C 4MP)rtsp://admin:password@192.168.1.123:554/cam/realmonitor?channel=1&subtype=0
QNAPQUSBCam2rtsp://username:password@192.168.1.123:554/channel1docs
Raspberry PiPiCamread more
ReolinkRLC-410, RLC-410W, RLC-510WA, E1 Pro, E1 Zoom, 4505MPRLC-510WA support sound, E1 Zoom support sound, PTZ and zoom
ReolinkE1rtsp://admin:password@192.168.1.123:554/h264Preview_01_main
SonoffGK-200MP2-Bsupport sound andPTZ,rtsp://rtsp:12345678@192.168.1.123:554/av_stream/ch0 and/av_stream/ch1
SriHomeSH035rtsp://192.168.xxx.xxx:8554/profile0 and/profile1 and/profile2
Topvicortsp://192.168.1.123:8554/stream0 orrtsp://192.168.1.123:554/ch0_0.264
TP-LinkTapo C100/C200/C210/C220/C310rtsp://user:pass@192.168.1.123:554/stream1 and/stream2
TVT/SecutechNVR-0808B2-8Prtsp://user:pass@192.168.1.123:554/chID=1&streamType=main andchID=2&streamType=main
TVT/SecutechIPC5-DF28SNrtsp://user:pass@192.168.1.123:554/profile1 and/profile2
UnifiG4 Dome, G4 doorbell, G3 Bullet, G3 FlexCopy the rtsps link from the camera's settings in Unifi Protect, but change the link torstp:// (it defaults to rstps://), change the port to7447, and remove any query params
WyzeCam v2/v3, Cam Pan v1/v2support sound
XiaomiDafangwith hack,rtsp://192.168.1.123:8554/unicast
Video: H264, size: 1920x1080, bitrate: 1000, format: VBR, frame rate: 10
Audio: PCMU, rate in: 8000, rate out: 44100
YaleSV-4CFDVR-2, SV-DAFXrtsp://admin:password@192.168.1.123/cam/realmonitor?channel=1&subtype=0
YaleSV-DPFXrtsp://admin:password@192.168.1.123/cam/realmonitor?channel=1&subtype=1
YiHi3518e Chipsetwith hack
YiMStar Infinity Chipsetwith hack

About

Home Assistant custom component for real-time viewing of almost any camera stream using WebRTC and other technologies.

Topics

Resources

License

Stars

Watchers

Forks


[8]ページ先頭

©2009-2025 Movatter.jp