mirror of
https://github.com/Monibuca/plugin-webrtc.git
synced 2026-04-23 08:30:55 +08:00
f238d63dd3
feat: add camera selector desc: 增加屏幕分享和摄像头选择功能
89 lines
2.1 KiB
Markdown
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) |