Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 5 additions & 7 deletions src/pages/issues.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -17,24 +17,22 @@ If you want to help, jump in [Discord](https://discord.gg/FCYF3p99mr)!
## What works
Before we give into despair, here's what does work:

- **Browsers**: Chrome and Firefox\*. We're bleeding on the edge.
- **Browsers**: Chrome, Firefox, Safari\*. \* via WebSockets
- **Audio**: OPUS, AAC
- **Video**: VP8, VP9, H.264, H.265, AV1
- **Catalog**: A live-updating JSON blob that describes the available tracks.
- **Catalog**: Live updates for all available tracks.
- **Clustering**: Multiple relays form a basic mesh network, providing CDN-like performance.
- **Subscriptions**: Nothing flows over the network until needed. ex. no audio while muted
- **Integrations**: Gstreamer and ffmpeg (publishing only).
- **On-Demand**: No encoding (JS only) or networking until the first viewer requests a track.
- **Integrations**: Gstreamer and ffmpeg (via stdin).

Now on to the issues.

## Networking

| name | description |
| ------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Safari Support | No Safari support for WebTransport. Webkit has expressed [public support](https://github.com/WebKit/standards-positions/issues/18#issuecomment-1495890122) so it will likely show up one day. Until then, perhaps we should support WebSockets as a fallback. [caniuse](https://caniuse.com/webtransport) |
| Prioritization | Media should be prioritized by the sender during congestion via [priority hints](https://www.w3.org/TR/webtransport/#dom-webtransportsendstreamoptions-sendorder) when implemented. ex. *new audio > old video*. This should be implemented in Chrome but has yet to be hooked up and tested. |
| Congestion Control | The default congestion controller in QUIC (Reno/CUBIC) suffers from [bufferbloat](https://en.wikipedia.org/wiki/Bufferbloat). The WebTransport API exposes [congestion control hints](https://www.w3.org/TR/webtransport/#dom-webtransport-congestioncontrol) but I'm not sure if this has been implemented in browsers yet. It's also not clear if BBR is sufficient for real-time media and we might want to invest in porting GCC (Google Congestion Control) to QUIC. |
| Clustering | The relays form a very simple mesh network, where each relay talks to every other relay. This won't scale past a few nodes; we need some sort of tree. |
| Mass Deployment | The relays form a very simple mesh network, where each relay talks to every other relay. This won't scale past a few nodes; we need some sort of tree. |


## Media
Expand Down
Loading