mirror of
https://github.com/flavioribeiro/donut.git
synced 2025-10-07 07:50:54 +08:00
add comments about what to do
This commit is contained in:
@@ -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
|
@@ -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
|
||||
|
@@ -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"`
|
||||
|
Reference in New Issue
Block a user