Media Over QUIC Transport

A proposed solution for Low Latency Media Dissemination
Quick rundown of existing Media Streaming Protocols

Common HTTP Latency

  • One-way streams
  • Live events
  • Large audiences
  • Linear programming

Reduced Latency

  • OTT (over the top) providers
  • Live streaming
  • News & sports

Low Latency

  • UGC (user generated content)
  • Live streams
  • Video game streaming

Near Real-Time

  • Two-way web conferencing
  • Real-time device control
https://www.cardinalpeak.com/blog/understanding-and-choosing-the-right-streaming-protocol
Quick rundown of existing Media Streaming Protocols

Common HTTP Latency

  • One-way streams
  • Live events
  • Large audiences
  • Linear programming

Reduced Latency

  • OTT (over the top) providers
  • Live streaming
  • News & sports

Low Latency

  • UGC (user generated content)
  • Live streams
  • Video game streaming

Near Real-Time

  • Two-way web conferencing
  • Real-time device control
10-30 seconds
HLS DASH
5 seconds
RTMP
1-5 seconds
RTSP LL-HLS LL-DASH
Let us try something better
https://www.cardinalpeak.com/blog/understanding-and-choosing-the-right-streaming-protocol

Cons of existing protocols

A tug of war between Latency and Scalability

Cons of existing protocols

A tug of war between Latency and Scalability
https://www.phenixrts.com/resource/super-bowl-2024
superbowl_latencies

Cons of existing protocols

A tug of war between Latency and Scalability

Participant count of various platforms
Meeting Webinar
Zoom 1k 1M
Teams 1k 20k
GMeet 500 1k
Webex 1k 100k

https://www.phenixrts.com/resource/super-bowl-2024
superbowl_latencies
Single protocol which can be setup for latency or scalability
This talk focuses on MOQT as a solution for low latency transport

Cons of existing protocols

Latency
Why do we want lower latency?

What do we mean by Latency?

Time taken by A to communicate information with B
What do we communicate between server and client?
What do we communicate between server and client?

Media


Congestion Control Information

High latencies mean slower adaptation to network conditions.
0s
2s
4s
6s
Enhancement Layer 3
Enhancement Layer 2
Enhancement Layer 1
Base Layer
Enhancement Layer 3
Enhancement Layer 2
Enhancement Layer 1
Base Layer
Enhancement Layer 3
Enhancement Layer 2
Enhancement Layer 1
Base Layer
0s
2s
4s
6s
Enhancement Layer 3
Enhancement Layer 2
Enhancement Layer 1
Base Layer
Enhancement Layer 3
Enhancement Layer 2
Enhancement Layer 1
Base Layer
Enhancement Layer 3
Enhancement Layer 2
Enhancement Layer 1
Base Layer
0s
2s
4s
6s
Enhancement Layer 3
Enhancement Layer 2
Enhancement Layer 1
Base Layer
Enhancement Layer 3
Enhancement Layer 2
Enhancement Layer 1
Base Layer
Enhancement Layer 3
Enhancement Layer 2
Enhancement Layer 1
Base Layer
0s
2s
4s
6s
Enhancement Layer 3
Enhancement Layer 2
Enhancement Layer 1
Base Layer
Enhancement Layer 3
Enhancement Layer 2
Enhancement Layer 1
Base Layer
Enhancement Layer 3
Enhancement Layer 2
Enhancement Layer 1
Base Layer
One of two scenarios play out
Protocol with strict timing guarentees without compromising on latency
Track
Group 3 (Publisher Priority 3)
Enhancement Layer 3
Group 2 (Publisher Priority 2)
Enhancement Layer 2
Group 1 (Publisher Priority 1)
Enhancement Layer 1
Group 0 (Publisher Priority 0)
Base Layer
250ms
Group 3
E-Layer 3 Object
Group 2
E-Layer 2 Object
Group 1
E-Layer 1 Object
Group 0
Base Layer Object
250ms
250ms
Group 3
E-Layer 3 Object
E-Layer 3 Object
Group 2
E-Layer 2 Object
E-Layer 2 Object
Group 1
E-Layer 1 Object
E-Layer 1 Object
Group 0
Base Layer Object
Base Layer Object
250ms
250ms
250ms
Group 3
E-Layer 3 Object
E-Layer 3 Object
E-Layer 3 Object
Group 2
E-Layer 2 Object
E-Layer 2 Object
E-Layer 2 Object
Group 1
E-Layer 1 Object
E-Layer 1 Object
E-Layer 1 Object
Group 0
Base Layer Object
Base Layer Object
Base Layer Object
250ms
250ms
250ms
Group 3
E-Layer 3 Object
E-Layer 3 Object
E-Layer 3 Object
Group 2
E-Layer 2 Object
E-Layer 2 Object
E-Layer 2 Object
Group 1
E-Layer 1 Object
E-Layer 1 Object
E-Layer 1 Object
Group 0
Base Layer Object
Base Layer Object
Base Layer Object
loss=0.5%
bitrate=16mbps
delay=20ms 2ms
1mpbs
2mpbs
4mpbs
8mpbs
16mbps
snapshot_090
loss=0.5%
bitrate=16mbps
delay=20ms 2ms
1mpbs
2mpbs
4mpbs
8mpbs
16mbps
101 (201)
101 (160)
96 (150)
0 (15)
0 (0)
snapshot_100
loss=0.5%
bitrate=8mbps
delay=20ms 2ms
1mpbs
2mpbs
4mpbs
8mpbs
16mbps
snapshot_190
loss=0.5%
bitrate=8mbps
delay=20ms 2ms
1mpbs
2mpbs
4mpbs
8mpbs
16mbps
200
134
2
0
0
snapshot_207
loss=3%
bitrate=4mbps
delay=20ms 2ms
1mpbs
2mpbs
4mpbs
8mpbs
16mbps
200
2
0
0
0
snapshot_290
loss=0.5%
bitrate=65mbps
delay=20ms 2ms
1mpbs
2mpbs
4mpbs
8mpbs
16mbps
snapshot_320
loss=0.5%
bitrate=65mbps
delay=20ms 2ms
1mpbs
2mpbs
4mpbs
8mpbs
16mbps
198
198
196
195
191
snapshot_401
Why not to use this protocol
Lot of packets being sent end up getting discarded when streams are aborted

Mathematical estimate of   > 25%
Breaks in case of bad network conditions
Group 3
Group 2
Group 1
Group 0
Group 3
Group 2
Group 1
Group 0
Group 3
Group 2
Group 1
Group 0
Group 3
Group 2
Group 1
Group 0
Group 3
Group 2
Group 1
Group 0
How do we solve this?

Simple

Do not advance groups if base layer is stalled
Unfortunately it isn't simple

We add a secondary structure in our Object Hierarchy


Objects in different groups are meant to be independent, but we have added a weak dependence between objects in 2 groups
Suggested Enchancements to the exisitng draft
Suggested Enchancements to the exisitng draft

A must send priority for
publishers and subscribers
ACK

  • Dr. Madhan
    • Introducing me to this project and mentoring me

  • Prof S. Krishnamoorthy + DAWN Lab, IITM
    • Guidance and Peer Group
    • Server Infrastructure for testing