Skip to content

librtmp2-server 0.6.4

Choose a tag to compare

@github-actions github-actions released this 14 Oct 09:38
3725c85

What's Changed

Full Changelog: v0.6.3...v0.6.4

Benchmarks

Measured automatically for this release on a CI runner; the machine is described below. Raw data: bench-results-v0.6.4.json.

  • Measured: 2026-10-14 22:00:34 UTC · 3725c85 · crate version 0.6.4 · workflow run
  • Built on: librtmp2 0.13.0
  • CPU: INTEL(R) XEON(R) PLATINUM 8573C · 4 vCPUs
  • RAM: 15.6 GiB
  • System: Linux 6.17.0-1022-azure x86_64 · rustc 1.99.0 · GitHub-hosted ubuntu24 (image 20261004.327.1)
  • Noise: shared CI VM — CPU model, neighbouring load and the runner image change between runs, so treat absolute numbers as indicative.
  • Comparable vs release v0.6.5: ❌ different hardware (AMD EPYC 9V74 80-Core Processor, 4 vCPUs vs INTEL(R) XEON(R) PLATINUM 8573C, 4 vCPUs): only large changes (> 25 %) mean anything

http_api

Benchmark Time Throughput vs release v0.6.5
http_api/create_stream 199.01 µs — 🟢 −29.2 %
http_api/health 112.72 µs — ⚪ −23.5 %
http_api/list_streams 629.5 ms — 🔴 +34.8 %

🟢 faster · 🔴 slower · ⚪ within the noise band (5–25 % depending on how comparable the two environments are, plus both runs' Criterion confidence intervals). Lower time is better.

Cross-server sweep

Same RTMP client and ffmpeg source for every server, one server at a time: load viewers 500 1000 2000, publisher ffmpeg 1280x720@30 H.264 2.5 Mbps + AAC 128 kbps. One sweep per run, no repetitions — the shared runner makes single values noisy, so compare servers within this run rather than across runs.

Servers: librtmp2-server 0.6.4 (librtmp2 0.13.0) · MediaMTX v1.21.2 · LiveForge main @ 4e70fb3 · SRS v8.0-d0 · nginx-rtmp nginx 1.31.6 (nginx-rtmp-module @ 6c7719d)

librtmp2-server vs the baselines
Metric Now vs release v0.6.5
publish handshakes/s 11,810 🟢 +65.7 %
publish handshake avg (ms) 1.84 🟢 −45.1 %
publish handshake p95 (ms) 3.40 🟢 −38.6 %
play handshakes/s 12,477 🟢 +118.8 %
play handshake avg (ms) 1.69 🟢 −55.9 %
play handshake p95 (ms) 3.42 🟢 −64.9 %
join, 1 viewer: avg (ms) 0.46 ⚪ −19.3 %
join, 1 viewer: p95 (ms) 0.46 ⚪ −19.3 %
join, 25 viewers: avg (ms) 2.23 🔴 +61.6 %
join, 25 viewers: p95 (ms) 3.13 🔴 +49.8 %
join, 100 viewers: avg (ms) 1.88 🟢 −38.4 %
join, 100 viewers: p95 (ms) 4.20 🟢 −29.1 %
load, 500 viewers: join avg (ms) 7.60 🟢 −51.4 %
load, 500 viewers: join p95 (ms) 19.31 🟢 −51.0 %
load, 500 viewers: frames/viewer 73.13 ⚪ +0.0 %
load, 500 viewers: CPU (% of one core) 20.80 🟢 −45.3 %
load, 500 viewers: peak RSS (MiB) 22.50 ⚪ +0.0 %
load, 1000 viewers: join avg (ms) 14.86 ⚪ −24.6 %
load, 1000 viewers: join p95 (ms) 43.41 ⚪ −18.2 %
load, 1000 viewers: frames/viewer 73.12 ⚪ −0.0 %
load, 1000 viewers: CPU (% of one core) 41.00 🟢 −42.3 %
load, 1000 viewers: peak RSS (MiB) 32.20 ⚪ −0.6 %
load, 2000 viewers: join avg (ms) 24.42 🟢 −71.9 %
load, 2000 viewers: join p95 (ms) 84.88 🟢 −70.8 %
load, 2000 viewers: frames/viewer 73.14 ⚪ −0.1 %
load, 2000 viewers: CPU (% of one core) 77.30 🟢 −30.9 %
load, 2000 viewers: peak RSS (MiB) 52.10 ⚪ −1.9 %
Handshake latency
Server publish /s avg ms p95 p99 play /s avg ms p95 p99
librtmp2-server 11,810 1.84 3.40 3.79 12,477 1.69 3.42 4.62
MediaMTX 9,164 2.70 4.76 7.25 7,399 3.20 5.43 5.75
LiveForge 9,765 2.54 4.32 5.20 10,425 2.06 3.95 4.65
SRS 583.6 48.06 53.96 54.98 627.4 45.54 51.72 51.94
nginx-rtmp 707.6 41.72 42.55 43.25 357.3 82.83 84.02 84.88
Join latency (avg / p95 ms)
Server 1 viewer 25 viewers 100 viewers
librtmp2-server 0.46 / 0.46 2.23 / 3.13 1.88 / 4.20
MediaMTX 0.70 / 0.70 1.84 / 2.63 4.41 / 8.33
LiveForge 0.53 / 0.53 4.23 / 6.98 9.86 / 15.44
SRS 41.48 / 41.48 47.01 / 50.44 63.25 / 71.22
nginx-rtmp 81.65 / 81.65 82.36 / 83.59 83.61 / 85.35
Many viewers on one stream
Viewers Server join avg / p95 ms CPU % (one core) peak RSS MiB frames/viewer
500 librtmp2-server 7.60 / 19.31 20.80 22.50 73.13
500 MediaMTX 22.74 / 36.29 57.80 108.1 73.08
500 LiveForge 30.61 / 70.34 30.90 98.40 73.12
500 SRS 171.6 / 203.4 5.60 138.2 72.21
500 nginx-rtmp 85.90 / 91.87 28.90 24.00 73.05
1000 librtmp2-server 14.86 / 43.41 41.00 32.20 73.12
1000 MediaMTX 27.89 / 65.42 114.9 159.1 73.09
1000 LiveForge 126.0 / 220.1 64.50 147.7 73.09
1000 SRS 389.0 / 1,101 11.30 183.6 72.36
1000 nginx-rtmp 89.60 / 106.1 55.10 29.90 73.09
2000 librtmp2-server 24.42 / 84.88 77.30 52.10 73.14
2000 MediaMTX 87.45 / 176.3 197.9 294.3 73.27
2000 LiveForge 317.9 / 846.1 121.6 247.6 73.09
2000 SRS 700.1 / 1,292 23.50 263.5 73.16
2000 nginx-rtmp 177.2 / 175.7 82.00 38.20 61.54

A competitor delivering fewer frames per viewer than the others was overloaded at that step (the delivered rate, not just latency, is the result).