Issues
Yeah so there’s a lot of work to do.
This is an early PoC and hobby project, so expect nothing to work. This page is a summary of the major issues, updated periodically. If you want to help, leave a comment on the cooresponding ticket!
Web
See the moq-js issues for a full list. There’s a lot of small things that won’t make it here.
General
issue | name | description |
---|
#54 | WebTransport - Safari | No Safari support yet. Webkit has expressed public support so it will likely show up one day. |
#55 | WebCodecs - Firefox | No Firefox support yet. Firefox has an implementation on nightly behind a flag. |
#13 | General - Codec Support | WebCodecs supports a lot of codecs, but they need to be configured and correctly packaged into MP4. |
#65 | General - Optional Tracks | You can’t publish/subscribe to optional tracks, which is required for any form of ABR. |
#56 | General - Dynamic Tracks | You can’t add/remove tracks once a broadcast has started, such as to change input device or screen share. |
#57 | UI - Make it Pretty | Obviously, I’m not an artist. |
Playback
issue | name | description |
---|
#6 | WebCodecs - Controls | There are no player controls. Even a volume slider would be great. |
#9 | WebCodecs - Jitter Buffer | Received frames are rendered ASAP. The user experience could be improved with a playback buffer sized to the target latency. |
#58 | WebCodecs - Synchronization | Audio and video are rendered out-of-sync. This is surprisingly difficult to implement, especially with a variable playback buffer. |
#59 | MSE - Player | There’s a backup MSE player for Firefox but it needs more love. |
Publishing
issue | name | description |
---|
#60 | WebTransport - Prioritization | Media should be prioritized by the sender during congestion via priority hints when implemented. |
#61 | WebTransport - Congestion Control | Reno/CUBIC (default) suffers from bufferbloat. At least use BBR via congestion control hints when implemented. |
#62 | WebCodecs - Echo Cancelation | We need to support bidirectional broadcasts at some point, which requires echo cancellation. |
#49 | UI - Public Broadcasts | We should have a way to publish and list public broadcasts. |
Native
See the moq-rs issues for a full list. There’s a lot of small things that won’t make it here.
General
issue | name | description |
---|
#29 | Quinn - Congestion Control | Quinn experimentally supports BBR but it needs to be validated and possibly tweaked. |
#104 | Quinn - Tracing | Quinn lacks the tracing required to validate the user experience. We should add qlog and other useful metrics. |
Publishing
issue | name | description |
---|
#112 | moq-pub - Audio | The ffmpeg/moq-pub integration doesn’t produce audio at the moment. It’s probably a simple fix. |
#63 | libmoq - C Bindings | Make a C library to interface with moq-rs. Any networking/caching/async is hidden from the application. |
#105 | libmoq - OBS | Develop an OBS plugin. |
#106 | libmoq - ffmpeg | Develop an ffmpeg plugin. We currently pipe to stdin which works but it could be improved. |
#107 | libmoq - GStreamer | Develop a GStreamer plugin. |
Relay
issue | name | description |
---|
#108 | Relay - Cache Network | The relays form a mesh network. This won’t scale past a few nodes; we need some sort of cache tree. |
#109 | Relay - Observability | There’s no logging, metrics, or even health checks. I don’t even know if the site is up. |
#110 | Relay - Scaling | Everything is in terraform but otherwise everything is manual, including the number of instances. |
#111 | Relay - Pool Sessions | Clients establish a QUIC connection per broadcast. We should investigate reusing connections via ANNOUNCE like the specification intends. |
Protocol
See moq-transport for a much bigger list. Gotta argue at the next IETF and/or W3C meeting about these ones.
issue | name | description |
---|
#37 | QUIC - Congestion Congestion | QUIC needs an extension in order to match WebRTC’s transport-wide-cc. |
#XX | Transport - Catalog | MoQ wll use a JSON catalog to describe the available tracks, but it needs some more work. |
#XX | Transport - Containers | MoQ supports fMP4 at the moment, but it introduces quite a bit of overhead and we need other options. |
#XX | Transport - Feedback | There’s no way to signal that a downstream is encountering congestion. This would be useful for 1:1 broadcasts. |