MoQ Media Player

Media over QUIC - Next Generation Streaming Protocol
MoQ Stream Experimental

βœ… Audio Enabled (AAC @ 44.1/48kHz)

Protocol: MoQ over QUIC
Port: 4443 (UDP)
Status: Not Connected
Transport: -
Decoder: -
Hardware Accel: -
Frames Decoded: 0
Frames Dropped: 0
Decode Time: -
Latency: -
Buffer: -
FPS: -

⚠️ Browser Playback Limitations - Testing Demo Only

Important: The poor playback performance you're experiencing is NOT due to the MoQ protocol itself, but rather the immature state of browser-based WebCodecs API and JavaScript video decoding. This demo uses experimental browser APIs that require:

The MoQ Protocol itself is excellent - it provides ultra-low latency, firewall traversal via QUIC/HTTP3, and CDN-friendly distribution. Native applications using MoQ achieve full framerate with minimal CPU usage. This browser demo exists purely for testing and development purposes.

Why MoQ Will Win: Thanks to the groundbreaking work by MediaMTX creator aler9, along with contributions from Cloudflare, Facebook, and the IETF working group, MoQ has the potential to finally solve the streaming trilemma: low latency + firewall friendly + CDN scalable.

MoQ vs Other Protocols: Unlike WebRTC (overly complex, poor scalability, endless compatibility issues), MoQ leverages proven HTTP/3 infrastructure. While SRT is excellent for point-to-point streaming, MoQ's native CDN integration makes it superior for internet-scale distribution. WebRTC's peer-to-peer architecture and signaling complexity have held back low-latency streaming for years - MoQ finally provides a clean, scalable alternative that "just works" with existing web infrastructure.

WINK Streaming, who contributed this MoQ implementation to MediaMTX, is committed to continuing development and fostering MoQ as the next generation standard for low-latency live video streaming. We believe MoQ represents the future of streaming technology and will actively support its adoption across the industry through open-source contributions, testing tools, and production deployments. For production use, deploy MediaMTX with native MoQ clients, not this browser demo.

MediaMTX by aler9 is a groundbreaking MIT-licensed media server that's revolutionizing live streaming infrastructure. Like FFmpeg transformed video processing, MediaMTX is becoming the essential foundation for real-time media delivery. Its elegant architecture and broad protocol support (RTSP, RTMP, HLS, WebRTC, SRT, and now MoQ) make it the Swiss Army knife of streaming servers.

Server Connection Status

MoQ Server: Checking...

Server: moq.wink.co | Certificate Valid Until: August 23, 2026

MoQ Implementation in MediaMTX

Configuration (mediamtx.yml)

# MoQ Configuration
moqAddress: :4443        # WebTransport port for browsers
moqEncryption: yes       # Enable TLS/HTTPS
moqServerKey: /path/to/key.pem
moqServerCert: /path/to/cert.pem
moqAllowOrigin: '*'      # CORS configuration

Files Added

internal/servers/moq/ - MoQ server implementation
  • server.go - Main MoQ server, handles QUIC/WebTransport listeners
  • conn.go - Connection management for native QUIC clients
  • moq_session.go - WebTransport session handling, protocol messages
internal/protocols/moq/ - MoQ protocol implementation
  • message/ - MoQ message types (SETUP, SUBSCRIBE, ANNOUNCE)
  • session.go - Session state machine and lifecycle
  • transport.go - Transport abstraction for QUIC/WebTransport
MOQ_README.md - Comprehensive documentation
  • Architecture overview and design decisions
  • Configuration and usage instructions
  • Testing procedures and known issues

Files Modified

internal/core/core.go
  • Added MoQ server initialization in Start()
  • Integrated MoQ lifecycle with MediaMTX core
  • Added MoQ to protocol list in Close()
internal/conf/conf.go
  • Added MoQ configuration parameters
  • MoQ, MoQAddress, MoQAddressQuic
  • TLS certificate configuration options
internal/defs/path.go
  • Added MoQ to PathProtocol enum
  • Extended path routing to support MoQ endpoints
go.mod & go.sum
  • Added github.com/quic-go/quic-go for QUIC support
  • Added github.com/quic-go/webtransport-go for browser support

Key Implementation Details

  • Dual Transport: Port 4443 for WebTransport (browsers), Port 4444 for native QUIC
  • Path Integration: Seamlessly maps MediaMTX paths to MoQ broadcasts
  • Frame Handling: Converts H.264 NAL units to MoQ objects with group boundaries on keyframes
  • Error Recovery: Panic recovery, retry logic, and graceful degradation
  • Logging: Integrated with MediaMTX logging system, configurable verbosity
  • Testing: Compatible with moq-rs tools for validation