mirror of
https://github.com/home-assistant/home-assistant.io.git
synced 2025-07-16 05:46:52 +00:00
Add documentation for the rtsp_to_webrtc integration (#20306)
Co-authored-by: Klaas Schoute <klaas_schoute@hotmail.com> Co-authored-by: Franck Nijhof <git@frenck.dev>
This commit is contained in:
parent
581e946f46
commit
c3d646bc78
42
source/_integrations/rtsp_to_webrtc.markdown
Normal file
42
source/_integrations/rtsp_to_webrtc.markdown
Normal file
@ -0,0 +1,42 @@
|
||||
---
|
||||
title: RTSPtoWebRTC
|
||||
description: Instructions on how to integrate RTSPtoWebRTC server within Home Assistant.
|
||||
ha_category:
|
||||
- Camera
|
||||
ha_config_flow: true
|
||||
ha_release: 2022.2
|
||||
ha_iot_class: Local Push
|
||||
ha_quality_scale: internal
|
||||
ha_codeowners:
|
||||
- '@allenporter'
|
||||
ha_domain: rtsp_to_webrtc
|
||||
---
|
||||
|
||||
The RTSPtoWebRTC integration registers with [camera integration](/integration/camera) to provide WebRTC live streams for any RTSP camera. The integration initiates a connection to a [RTSPtoWeb](https://github.com/deepch/RTSPtoWeb) or [RTSPtoWebRTC](https://github.com/deepch/RTSPtoWebRTC) proxy server that converts an RTSP stream to a WebRTC stream.
|
||||
|
||||
The integraton configuration requires the URL to your server (e.g. `http://example.com:8083`) and will automatically discover which type of server you have.
|
||||
|
||||
{% include integrations/config_flow.md %}
|
||||
|
||||
## Technical Details
|
||||
|
||||
RTSPtoWebRTC registers with the camera integration to override the camera attribute `frontend_stream_type` of `STREAM_TYPE_WEBRTC` to instruct the frontend to use WebRTC streams.
|
||||
|
||||
<!-- Note: This documentation will be updated as support for other integrations is added, or if it is integrated directly into camera in future PRs. -->
|
||||
|
||||
See [WebRTC](https://webrtc.org/) for more technical details on the open standard for real-time communication. Here is a short summary of how it works:
|
||||
|
||||
- The Home Assistant Frontend is a WebRTC client. This just means there is some javascript for initiating a WebRTC stream which creates an *offer*.
|
||||
- The `webrtc` integration is responsible for *signaling*, passing the *offer* and an RTSP URL to the *RTSPtoWebRTC* server.
|
||||
- The *RTSPtoWeb{RTC}* server opens the RTSP URL, and returns back an *answer*.
|
||||
- The Frontend accepts the answer and then establishes a *peer connection* to the *RTSPtoWebRTC* server.
|
||||
- Establishing a peer connection may be a direct connection on the local network, or using a variety of techniques to communicate through a NAT (e.g. with a STUN server).
|
||||
- The Frontend then communicates directly with the *RTSPtoWeb{RTC}* proxy server to view the stream.
|
||||
|
||||
See [Getting started with peer connections](https://webrtc.org/getting-started/peer-connections) for more on the technical details.
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
The integration may not work for your particular setup, and Home Assistant cannot support and troubleshoot user problems that are unrelated to the actual integration in Home Assistant.
|
||||
|
||||
The WebRTC stream negotiation process and streaming can very a lot depending on your network setup and camera setup. See the specific audio and video codecs supported at [RTSPtoWeb Limitations](https://github.com/deepch/RTSPtoWeb#limitations) and [RTSPtoWebRTC Limitations](https://github.com/deepch/RTSPtoWebRTC#limitations).
|
Loading…
x
Reference in New Issue
Block a user