Submitted:
28 September 2025
Posted:
14 October 2025
Read the latest preprint version here
Abstract
In real-time delivery of AV1 over MPEG2-TS using HTTP/3 over QUIC, two fundamental approaches can be identified for improving video quality. The first is bitrate adaptation, represented by Adaptive Bitrate (ABR) , which estimates available bandwidth and selects the optimal resolution and frame rate within that range. The second approach focuses on low-latency control, reducing RTT and ACK delay to increase effective throughput. This study emphasizes the latter perspective and presents the development of a smartphone-oriented application utilizing a QUIC protocol stack capable of estimating and measuring RTT in user space. Through empirical experiments conducted across domestic and international cloud environments, we evaluate how buffer design at distribution servers affects video quality. This paper shares experimental methods, observations, and guidelines for designing real-time streaming systems using HTTP/3 over QUIC.
Keywords:
1. Introduction



2. System Architecture
3. Evaluation Experiments
3.1. Stream, HTTP/3 Neighbor - Far Comparison
| Listing 1: packet capture at Neighbor docker |
| tcpdump -n tcp port 8080 -i docker0 -c 5000 -w /tmp/neighbor-docker-upstream.pcap |
3.2. Edge-Termination Proximity
| Listing 2: Viewer QUIC Settings(CUBIC) |
|
ngtcp2_settings settings; ngtcp2_settings_default(&settings); settings.cc_algo = NGTCP2_CC_ALGO_CUBIC; |
3.3. Stream, Neighbor–Distant Origin Comparison

3.4. Last-One-Mile Mobile Network Effects
| Event | MNO(A) | MNO(B) | MNO(C) |
| Far(Mumbai) Public-RAN | |||
| Drops NGTCP2_STREAM _LOSS_COUNT |
0 | 1 | 0 |
| ACK Ratio SENT_PACKET/ RECV_PACKET |
127/764 16.6 % |
292/1049 7.8 % |
500/772 64.7 % |
| MNO(A) MNO(C) |
Almost uninterrupted continuous transmission and receive (transmission consists only of ACKS) Almost no gaps Streaming-like |
||
| MNO(B) | Burst+Intermittent Bulk processing |
||
| Resources RAN |
Total timeCost Same all carriers |
||
| Event | MNO(A) | MNO(B) | MNO(C) |
| Neighbor(Tokyo) Public-RAN | |||
| Drops NGTCP2_STREAM _LOSS_COUNT |
0 | 1 | 0 |
| ACK Ratio SENT_PACKET/ RECV_PACKET |
71/765 9.3 % |
345/839 41.1 % |
324/769 42.1 % |
| Received Packet Interval NGTCP2_RECV _STREAM |
p95 6.5 p99 45.2 |
p95 71.1 p99 277 |
p95 23.3 p99 137 |
| MNO(A) | No problem | ||
| MNO(C) | The unusually high frequency of ACK packets and the large gaps observed in packet reception intervals suggest that retransmissions were triggered by factors other than actual packet loss. |
||
| MNO(B) | NGTCP2_STREAM_LOSS_ COUNT==1 Drop retransmission was detected |
||


| Spike coefficient | |
| Current Receive Rate (bps) | |
| NGTCP2_CONN_INFO_MIN_RTT | |
| initial value (excluding ) | |
| NGTCP2_CONN_INFO_SOOTHED_RTT |
4. Discussion: Non-HLS Architecture Specialized for Real-Time Delivery in This Study’s Context

| Item | Overview |
| Packet Granularity Cache |
POP Edge maintains MPEG-TS packets in short-lived rings fan-out to concurrent viewwers |
| ACK Delay | Reduce ACK round trips at edge-near terminations to suppress transmission blocking and session buffer exhaustion at HTTP/3 endpoints |
| Origin Bandwidth Aggregation Efficiency |
Maximize Edge Hit Rate (Fanout) to Minimize Origin Egress Bandwidth |
| Not compatible with HLS | Purpose differs from storage-oriented file caching |
| Listing 3: Conventional File Segment Cache (Supports HLS) |
|
| Item | Description |
| Cache Hit Rate |
70 %...from [15] Hit rate linear approximation is (1−1/C) C=Number of concurrent viewers per 100 (per 1POP) Approximately 70 - 90 % |
| Cache Hit Latency |
200 s |
| Cache miss Latency |
200 ms |
| Listing 4: This Paper Packet Cache Fanout Ring Buffer |
|
| Item | Summary |
| Cache Hit Rate |
95 % (under the evaluated workload) |
| Cache Hit EndToEnd Latency |
200 s |
| Cache Miss EndToEnd Latency |
500 s |
4.1. Typical Access Cost [16]
| Cache Level | Latency | s Equivalent |
| L1 | 4-5 cycles | 0.002 s |
| L2 Hit | 12-15 cycles | 0.005 s |
| L3 Hit | 40-50 cycles | 0.017 s |
| Main Memory,L2 miss | 200-300 cycles | 0.100 s |
| Redis, memchached, Main Memory miss Includes kernel Protocol stack |
xxxx cycles | 2-10 ms |
| S | Number of sessions |
| Session s(Packets/Request) | |
| h | Cache Hit Rate |
| Latency for hits/misses | |
| L | Latency per Packet |

5. Discussion: Comparison with Media over QUIC Lite under the Premises of This Study
6. Discussion: AV1 over MPEG-TS Real-Time Stream Player in the Context of This Study

7. Summary
8. Appendix
Appendix 8.1. Edge Module(nginx or FrontEnd)
| Listing 5: nginx.conf |
|
Appendix 8.2. Edge Module(UDP-MPEGTS to HTTP3-Chunk)
| Listing 6: Proxy Implementation |
|
References
- Building HTTP/3 over QUIC on iOS and Android.https://medium.com/mixi-developers/building-http-3-over-quic-on-ios-and-android-native-stack-and-real-time-visibility-6e59c6aeebd0.
- RFC 9000. QUIC: A UDP-Based Multiplexed and Secure Transport. https://www.rfc-editor.org/rfc/rfc9000.html.
- RFC 9001. Using TLS to Secure QUIC. https://www.rfc-editor.org/rfc/rfc9001.html.
- RFC 9002. QUIC Loss Detection and Congestion Control. https://www.rfc-editor.org/rfc/rfc9002.html.
- RFC 9221. An Unreliable Datagram Extension to QUIC. https://www.rfc-editor.org/rfc/rfc9221.html.
- A Technical Overview of AV1. https://arxiv.org/abs/2008.06091.
- A Comprehensive Review of Software and Hardware Energy Efficiency of Video Decoders. https://arxiv.org/abs/2402.09001.
- ngtcp2 Project. https://github.com/ngtcp2/ngtcp2.git.
- nghttp3 Project. https://github.com/ngtcp2/nghttp3.git.
- OpenSSL Project. https://github.com/openssl/openssl.git.
- libev Project. https://github.com/enki/libev.git.
- BBR Congestion Control(expired). https://datatracker.ietf.org/doc/html/draft-cardwell-iccrg-bbr-congestion-control-02.
- MediaOverQUIC-Lite. https://datatracker.ietf.org/doc/draft-lcurley-moq-lite/.
- The Impact of Buffers in Low-Earth Orbit Satellite Networks on Congestion Control at End Hosts. Ohmori. https://ipsj.ixsq.nii.ac.jp/record/2003106/files/IPSJ-IOT25070003.pdf.
- Exploring the interplay between CDN caching and video streaming performance. https://engineering.purdue.edu/ isl/papers/infocom2020.pdf.
- Approximate access times, required clock cycles, transfer speeds, and capacities for various memory/storage types. https://qiita.com/zacky1972/items/e0faf71aa0469141dede.
- Transition to adaptive bitrate streaming from client-side to server-side. https://www.linode.com/ja/blog/linode/ migrating-from-client-side-to-server-side-adaptive-bitrate-streaming/.
- Public Alert and Hazard Notification System Using Low-Latency Push-Type MPEG-TS Streams over HTTP/3 over QUIC and Its Control Method(Draft) https://medium.com/@dsugisawa/public-alert-and-hazard-notification-system-using-low-latency-push-type-mpeg-ts-streams-over-http-3-314508c25f88.






| Video Stream Origin | |
| Input | 2K 30fps(FHD) |
| Encode | AV1(NVENC) |
| Output | CBR/ABR, multi-rate MPEG-TS Stream |
| Edge Termination, nginx or CloudFront(sec 8.1) | |
| HTTP3 | HTTP3-Endpoints, Backend HTTP2 Proxy |
| Edge-Module, UDP-MPEGTS to HTTP3-Chunked-Data(sec 8.2) | |
| Video Recieve | MPEG-TS packets received over UDP(BSD socket) |
| Video Transfer | MPEG-TS packets Transfer, Chunked-Data |
| Video Sync | MPEG-TS Packet-level fanout frame synchronization |
| AV1 over MPEG2-TS Realtime Stream Player | |
| HTTP3 over QUIC |
HTTP3 over QUIC, Session establishment, ngtcp2, nghttp3 |
| Chunked Parse |
Stream data Receiving, MPEG-TS packet parsed into AV1 |
| ABR Control | Client-side optimization based on RTT, Traffic, and Drop statistics. |
| Technical | Description |
| HTTP3 over QUIC | Firewall, NAT-friendly UDP protocol |
| MPEG-TS over HTTP3 | Continuous streaming without segmentation |
| AV1 over MPEG-TS | High compression, low bandwidth, high image quality |
| Client-sid ABR | Client-side session switching control, last-one-mile optimization |
| Stateless Edge CDN | A scalable, distributed configuration without session information |
| FEC | Assign FEC packets to user-defined PIDs |
| API Endpoint | CloudFront (Edge POP, QUIC termination) + Lambda functions in each region |
| Stream Endpoint | nginx (QUIC termination) + stream pipeline in each region |
| TCP upstream nginx receive buffer (nginx 3739fe94d1c3c844708b219776f1921bff16b56f) | |
| ngx_event_connect_peer() | Arrival at the BSD socket buffer |
| nginx internal HTTP3, HTTP write filter transmission control | |
| ngx_http_write_filter_module.c L:299 |
send_chain() |
| ngx_event_quic_streams.c L:952 |
ngx_quic_stream_send_chain() |
| flow= qs.acked + qc.conf.stream_buffer_size - qs.sent; |
|
| flow formula | Available-Buffer= (ACKed bytes + Buffer size) - Sent bytes |
| In high RTT environments, qs.acked updates are delayed by 133ms. |
|
| When flow == 0, immediately return at lines 976-978 and skip transmission. |
|
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content. |
© 2025 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (http://creativecommons.org/licenses/by/4.0/).