Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/Monibuca/plugin-webrtc

webrtc plugin for monibuca
https://github.com/Monibuca/plugin-webrtc

webrtc

Last synced: about 2 months ago
JSON representation

webrtc plugin for monibuca

Awesome Lists containing this project

README

        

_[简体中文](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)