Files
plugin-webrtc/README.en.md
T
langhuihui f238d63dd3 feat: add screenshare
feat: add camera selector

desc: 增加屏幕分享和摄像头选择功能
2023-06-16 22:43:10 +08:00

89 lines
2.1 KiB
Markdown

_[简体中文](https://github.com/Monibuca/plugin-webrtc) | English_
# WebRTC Plugin
This plugin provides the functionality to stream videos to Monibuca through a web page and to play streams from Monibuca using WebRTC technology. It follows the WHIP specification.
## Plugin URL
https://github.com/Monibuca/plugin-webrtc
## Plugin Import
```go
import ( _ "m7s.live/plugin/webrtc/v4" )
```
## Default Configuration
```yaml
webrtc:
iceservers: []
publicip: [] # can be an array or a single string (automatically converted to an array)
port: tcp:9000 # can be a range of ports like udp:8000-9000 or a single port like udp:9000
pli: 2s # 2s
```
### ICE Server Configuration Format
```yaml
webrtc:
iceservers:
- urls:
- stun:stun.l.google.com:19302
- turn:turn.example.org
username: user
credential: pass
```
### Configuration for Local Testing
If testing locally, no change in configuration is required. However, if you are accessing it remotely, then you need to configure the public IP.
## Basic Principle
The exchange of SDP messages between the browser and Monibuca takes place and RTP packets are read or sent to stream videos.
## API
### Play address
`/webrtc/play/[streamPath]`
Body: `SDP`
Content-Type: `application/sdp`
Response Body: `SDP`
### Push address
`/webrtc/push/[streamPath]`
Body: `SDP`
Content-Type: `application/sdp`
Response Body: `SDP`
### Push Test Page
`/webrtc/test/publish`
- `?streamPath=xxx` The streamPath to publish, default is `live/webrtc`
- you can add other query parameters to the URL
### ScreenShare Test Page
`/webrtc/test/screenshare`
- `?streamPath=xxx` The streamPath to publish, default is `live/webrtc`
- you can add other query parameters to the URL
### Play Test Page
`/webrtc/test/subscribe`
- `?streamPath=xxx` The streamPath to play, default is `live/webrtc`
- you can add other query parameters to the URL
## WHIP
WebRTC-HTTP ingestion protocol
A specification for the exchange of SDP messages between WebRTC clients.
[WHIP ietf](https://datatracker.ietf.org/doc/html/draft-ietf-wish-whip-02)