add comments about what to do

This commit is contained in:
Leandro Moreira
2024-05-02 22:27:44 -03:00
parent 933f1b1425
commit ad86b20c4a
3 changed files with 18 additions and 19 deletions

View File

@@ -4,31 +4,29 @@
sequenceDiagram
actor User
box Navy Browser
box Navy
participant browser
end
browser->>+server: GET /
server->>+browser: 200 /index.html
User->>+browser: feed SRT host, port, and id
User->>+browser: click on [connect]
User->>+browser: feed protocol, host, port, id, and opts
User->>+browser: click on [Connect]
Note over server,browser: WebRTC connection setup
browser->>+browser: create offer
browser--)browser: WebRTC.ontrack(video)
browser->>+server: POST /doSignaling {offer}
server->>+server: set remote {offer}
server->>+browser: reply {answer}
browser->>+browser: set remote {answer}
browser->>+browser: create WebRTC browserOffer
browser->>+server: POST /doSignaling {browserOffer}
Note over server,browser: WebRTC connection setup
loop Async SRT to WebRTC
server--)SRT: mpegFrom(SRT)
server--)browser: WebRTC.WriteSample(mpegts.PES.Data)
loop Async streaming
server--)streaming server: fetchMedia
server--)server: ffmpeg::libav demux/transcode
server--)browser: sendWebRTCMedia
end
server->>+browser: reply WebRTC {serverOffer}
browser--)User: render frames
Note over server,browser: WebRTC connection setup
browser--)User: render audio/video frames
```
# Architecture

View File

@@ -126,7 +126,7 @@ func (d *donutEngine) RecipeFor(server, client *entities.StreamInfo) *entities.D
}
func (d *donutEngine) Appetizer() entities.DonutAppetizer {
// TODO: implement input based on param
// TODO: implement input based on param to build proper SRT/RTMP/etc
return entities.DonutAppetizer{
URL: fmt.Sprintf("srt://%s:%d", d.req.SRTHost, d.req.SRTPort),
Format: "mpegts", // it'll change based on input, i.e. rmtp flv

View File

@@ -21,6 +21,7 @@ type WebRTCSetupResponse struct {
LocalSDP *webrtc.SessionDescription
}
// TODO: make it agnostic from streaming protocol when implementing RTMP
type RequestParams struct {
SRTHost string
SRTPort uint16 `json:",string"`