Files
Piik/docs/research/data/webrtc-encoder-latency.json
AAA cfc323adce feat(media): integrate embedded media services and shared native encoding
Embed STUN and SFU in the shared Go process, reuse native encoding pipelines with independent adaptation, and complete Client lifecycle, settings, diagnostics and packaging fixes. Retain standard Browser senders after measured encoded-reuse limitations.
2026-09-09 06:09:06 +08:00

598 lines
15 KiB
JSON

{
"date": "2026-09-08",
"webrtcCommit": "6f37672d358475cd17544121a12494da454d85fb",
"scope": "Synthetic 45ms codec delay at640x360, proportional to pixels; not CPU/GPU stress or transport; registry mutex serializes physical groups; shared-pipeline B resource fields alias the one group",
"sourceSha256": {
"pool.h": "77d227db644184a99e5be7597f6f0f237b1de1665b49bb01a7e77235253d9f11",
"harness.cpp": "7bf17bc83f946c41038b702f7af734b3fd7ca0849f8e01fdc2b3c90069af2032"
},
"runs": {
"realtime-healthy": [
{
"phase": "healthy",
"seconds": 6.00026,
"encodes": 180,
"hits": 180,
"a": {
"encoded": 180,
"decoded": 180,
"fps": 29.9987,
"kbps": 1800.86,
"errors": 0,
"keyframes": 1,
"width": 640,
"height": 360,
"minWidth": 640,
"minHeight": 360,
"firstFullMs": 10.0527,
"firstReducedMs": -1
},
"b": {
"encoded": 180,
"decoded": 180,
"fps": 29.9987,
"kbps": 1800.86,
"errors": 0,
"keyframes": 1,
"width": 640,
"height": 360,
"minWidth": 640,
"minHeight": 360,
"firstFullMs": 10.2703,
"firstReducedMs": -1
},
"aEncodeMs": 3,
"bEncodeMs": 3,
"aEncodeUsage": 37,
"bEncodeUsage": 37,
"aCpuLimitedResolution": false,
"bCpuLimitedResolution": false,
"aCpuLimitedFramerate": false,
"bCpuLimitedFramerate": false
},
{
"phase": "skipped-input",
"seconds": 3.00063,
"encodes": 92,
"hits": 87,
"a": {
"encoded": 90,
"decoded": 90,
"fps": 29.9937,
"kbps": 1866.85,
"errors": 0,
"keyframes": 1,
"width": 640,
"height": 360,
"minWidth": 640,
"minHeight": 360,
"firstFullMs": 4.7952,
"firstReducedMs": -1
},
"b": {
"encoded": 89,
"decoded": 89,
"fps": 29.6604,
"kbps": 1892.81,
"errors": 0,
"keyframes": 3,
"width": 640,
"height": 360,
"minWidth": 640,
"minHeight": 360,
"firstFullMs": 4.5921,
"firstReducedMs": -1
},
"aEncodeMs": 4,
"bEncodeMs": 4,
"aEncodeUsage": 28,
"bEncodeUsage": 28,
"aCpuLimitedResolution": false,
"bCpuLimitedResolution": false,
"aCpuLimitedFramerate": false,
"bCpuLimitedFramerate": false
},
{
"phase": "retired-b",
"seconds": 2.00051,
"encodes": 60,
"hits": 0,
"a": {
"encoded": 60,
"decoded": 60,
"fps": 29.9923,
"kbps": 1925.24,
"errors": 0,
"keyframes": 0,
"width": 640,
"height": 360,
"minWidth": 640,
"minHeight": 360,
"firstFullMs": 3.6672,
"firstReducedMs": -1
},
"b": {
"encoded": 0,
"decoded": 0,
"fps": 0,
"kbps": 0,
"errors": 0,
"keyframes": 0,
"width": 640,
"height": 360,
"minWidth": 640,
"minHeight": 360,
"firstFullMs": -1,
"firstReducedMs": -1
},
"aEncodeMs": 4,
"bEncodeMs": 4,
"aEncodeUsage": 23,
"bEncodeUsage": 28,
"aCpuLimitedResolution": false,
"bCpuLimitedResolution": false,
"aCpuLimitedFramerate": false,
"bCpuLimitedFramerate": false
},
{
"integrity": "pass",
"pooled": true,
"adjuster": false,
"groupAdjuster": true,
"unsafeSkip": false,
"realtime": true,
"latencyProbe": false,
"encodes": 332,
"hits": 267,
"splits": 4,
"rateSplits": 1,
"dependencySplits": 1,
"created": 3,
"joins": 2,
"live": 0,
"maxLive": 2,
"callbacks": 599,
"samePayloadCompared": 267,
"decodedHashMismatches": 0,
"aWantsUpdates": 3,
"bWantsUpdates": 3,
"aMinPixels": 230400,
"bMinPixels": 230400
}
],
"latency-pooled": [
{
"phase": "healthy",
"seconds": 6.00087,
"encodes": 180,
"hits": 180,
"a": {
"encoded": 180,
"decoded": 180,
"fps": 29.9956,
"kbps": 1801.99,
"errors": 0,
"keyframes": 1,
"width": 640,
"height": 360,
"minWidth": 640,
"minHeight": 360,
"firstFullMs": 10.3654,
"firstReducedMs": -1
},
"b": {
"encoded": 180,
"decoded": 180,
"fps": 29.9956,
"kbps": 1801.99,
"errors": 0,
"keyframes": 1,
"width": 640,
"height": 360,
"minWidth": 640,
"minHeight": 360,
"firstFullMs": 10.2066,
"firstReducedMs": -1
},
"aEncodeMs": 3,
"bEncodeMs": 4,
"aEncodeUsage": 36,
"bEncodeUsage": 36,
"aCpuLimitedResolution": false,
"bCpuLimitedResolution": false,
"aCpuLimitedFramerate": false,
"bCpuLimitedFramerate": false
},
{
"phase": "encoder-delayed",
"seconds": 30.0637,
"encodes": 493,
"hits": 276,
"a": {
"encoded": 391,
"decoded": 391,
"fps": 13.0057,
"kbps": 939.521,
"errors": 0,
"keyframes": 146,
"width": 640,
"height": 360,
"minWidth": 640,
"minHeight": 360,
"firstFullMs": 49.4038,
"firstReducedMs": -1
},
"b": {
"encoded": 378,
"decoded": 378,
"fps": 12.5733,
"kbps": 942.246,
"errors": 0,
"keyframes": 149,
"width": 640,
"height": 360,
"minWidth": 640,
"minHeight": 360,
"firstFullMs": 49.5686,
"firstReducedMs": -1
},
"aEncodeMs": 101,
"bEncodeMs": 102,
"aEncodeUsage": 176,
"bEncodeUsage": 174,
"aCpuLimitedResolution": true,
"bCpuLimitedResolution": true,
"aCpuLimitedFramerate": false,
"bCpuLimitedFramerate": false
},
{
"phase": "encoder-released",
"seconds": 30.0004,
"encodes": 900,
"hits": 900,
"a": {
"encoded": 900,
"decoded": 900,
"fps": 29.9996,
"kbps": 1890.12,
"errors": 0,
"keyframes": 4,
"width": 640,
"height": 360,
"minWidth": 480,
"minHeight": 270,
"firstFullMs": 19075.3,
"firstReducedMs": 6.3117
},
"b": {
"encoded": 900,
"decoded": 900,
"fps": 29.9996,
"kbps": 1890.12,
"errors": 0,
"keyframes": 4,
"width": 640,
"height": 360,
"minWidth": 480,
"minHeight": 270,
"firstFullMs": 19078,
"firstReducedMs": 8.0933
},
"aEncodeMs": 3,
"bEncodeMs": 3,
"aEncodeUsage": 23,
"bEncodeUsage": 23,
"aCpuLimitedResolution": false,
"bCpuLimitedResolution": false,
"aCpuLimitedFramerate": false,
"bCpuLimitedFramerate": false
},
{
"phase": "skipped-input",
"seconds": 3.00077,
"encodes": 92,
"hits": 87,
"a": {
"encoded": 90,
"decoded": 90,
"fps": 29.9923,
"kbps": 1849.19,
"errors": 0,
"keyframes": 1,
"width": 640,
"height": 360,
"minWidth": 640,
"minHeight": 360,
"firstFullMs": 3.6455,
"firstReducedMs": -1
},
"b": {
"encoded": 89,
"decoded": 89,
"fps": 29.659,
"kbps": 1887.78,
"errors": 0,
"keyframes": 3,
"width": 640,
"height": 360,
"minWidth": 640,
"minHeight": 360,
"firstFullMs": 3.633,
"firstReducedMs": -1
},
"aEncodeMs": 3,
"bEncodeMs": 3,
"aEncodeUsage": 18,
"bEncodeUsage": 18,
"aCpuLimitedResolution": false,
"bCpuLimitedResolution": false,
"aCpuLimitedFramerate": false,
"bCpuLimitedFramerate": false
},
{
"phase": "retired-b",
"seconds": 2.00037,
"encodes": 60,
"hits": 0,
"a": {
"encoded": 60,
"decoded": 60,
"fps": 29.9945,
"kbps": 1930.19,
"errors": 0,
"keyframes": 0,
"width": 640,
"height": 360,
"minWidth": 640,
"minHeight": 360,
"firstFullMs": 3.1658,
"firstReducedMs": -1
},
"b": {
"encoded": 0,
"decoded": 0,
"fps": 0,
"kbps": 0,
"errors": 0,
"keyframes": 0,
"width": 640,
"height": 360,
"minWidth": 640,
"minHeight": 360,
"firstFullMs": -1,
"firstReducedMs": -1
},
"aEncodeMs": 3,
"bEncodeMs": 3,
"aEncodeUsage": 16,
"bEncodeUsage": 18,
"aCpuLimitedResolution": false,
"bCpuLimitedResolution": false,
"aCpuLimitedFramerate": false,
"bCpuLimitedFramerate": false
},
{
"integrity": "pass",
"pooled": true,
"adjuster": false,
"groupAdjuster": true,
"unsafeSkip": false,
"realtime": true,
"latencyProbe": true,
"encodes": 1725,
"hits": 1443,
"splits": 218,
"rateSplits": 3,
"dependencySplits": 107,
"created": 115,
"joins": 110,
"live": 0,
"maxLive": 2,
"callbacks": 3168,
"samePayloadCompared": 1443,
"decodedHashMismatches": 0,
"aWantsUpdates": 7,
"bWantsUpdates": 7,
"aMinPixels": 138240,
"bMinPixels": 138240
}
],
"latency-shared-pipeline": [
{
"phase": "healthy",
"seconds": 6.00081,
"encodes": 180,
"hits": 0,
"a": {
"encoded": 180,
"decoded": 180,
"fps": 29.996,
"kbps": 1799.7,
"errors": 0,
"keyframes": 1,
"width": 640,
"height": 360,
"minWidth": 640,
"minHeight": 360,
"firstFullMs": 7.8241,
"firstReducedMs": -1
},
"b": {
"encoded": 180,
"decoded": 180,
"fps": 29.996,
"kbps": 1799.7,
"errors": 0,
"keyframes": 1,
"width": 640,
"height": 360,
"minWidth": 640,
"minHeight": 360,
"firstFullMs": 10.9907,
"firstReducedMs": -1
},
"aEncodeMs": 5,
"bEncodeMs": 5,
"aEncodeUsage": 38,
"bEncodeUsage": 38,
"aCpuLimitedResolution": false,
"bCpuLimitedResolution": false,
"aCpuLimitedFramerate": false,
"bCpuLimitedFramerate": false
},
{
"phase": "encoder-delayed",
"seconds": 30.0915,
"encodes": 484,
"hits": 0,
"a": {
"encoded": 484,
"decoded": 484,
"fps": 16.0843,
"kbps": 966.446,
"errors": 0,
"keyframes": 0,
"width": 640,
"height": 360,
"minWidth": 640,
"minHeight": 360,
"firstFullMs": 48.2413,
"firstReducedMs": -1
},
"b": {
"encoded": 484,
"decoded": 484,
"fps": 16.0843,
"kbps": 966.446,
"errors": 0,
"keyframes": 0,
"width": 640,
"height": 360,
"minWidth": 640,
"minHeight": 360,
"firstFullMs": 49.7266,
"firstReducedMs": -1
},
"aEncodeMs": 81,
"bEncodeMs": 81,
"aEncodeUsage": 165,
"bEncodeUsage": 165,
"aCpuLimitedResolution": false,
"bCpuLimitedResolution": false,
"aCpuLimitedFramerate": false,
"bCpuLimitedFramerate": false
},
{
"phase": "encoder-released",
"seconds": 30.0012,
"encodes": 900,
"hits": 0,
"a": {
"encoded": 900,
"decoded": 900,
"fps": 29.9988,
"kbps": 1903.62,
"errors": 0,
"keyframes": 2,
"width": 640,
"height": 360,
"minWidth": 480,
"minHeight": 270,
"firstFullMs": 19042.4,
"firstReducedMs": 6.2564
},
"b": {
"encoded": 900,
"decoded": 900,
"fps": 29.9988,
"kbps": 1903.62,
"errors": 0,
"keyframes": 2,
"width": 640,
"height": 360,
"minWidth": 480,
"minHeight": 270,
"firstFullMs": 19045.5,
"firstReducedMs": 8.9076
},
"aEncodeMs": 5,
"bEncodeMs": 5,
"aEncodeUsage": 26,
"bEncodeUsage": 26,
"aCpuLimitedResolution": false,
"bCpuLimitedResolution": false,
"aCpuLimitedFramerate": false,
"bCpuLimitedFramerate": false
},
{
"phase": "retired-b",
"seconds": 2.00086,
"encodes": 60,
"hits": 0,
"a": {
"encoded": 60,
"decoded": 60,
"fps": 29.9871,
"kbps": 1897.37,
"errors": 0,
"keyframes": 0,
"width": 640,
"height": 360,
"minWidth": 640,
"minHeight": 360,
"firstFullMs": 3.4665,
"firstReducedMs": -1
},
"b": {
"encoded": 0,
"decoded": 0,
"fps": 0,
"kbps": 0,
"errors": 0,
"keyframes": 0,
"width": 640,
"height": 360,
"minWidth": 640,
"minHeight": 360,
"firstFullMs": -1,
"firstReducedMs": -1
},
"aEncodeMs": 3,
"bEncodeMs": 3,
"aEncodeUsage": 22,
"bEncodeUsage": 22,
"aCpuLimitedResolution": false,
"bCpuLimitedResolution": false,
"aCpuLimitedFramerate": false,
"bCpuLimitedFramerate": false
},
{
"integrity": "pass",
"pooled": false,
"adjuster": true,
"groupAdjuster": false,
"unsafeSkip": false,
"realtime": true,
"latencyProbe": true,
"sharedPipeline": true,
"encodes": 1624,
"hits": 0,
"splits": 0,
"rateSplits": 0,
"dependencySplits": 0,
"created": 3,
"joins": 0,
"live": 0,
"maxLive": 1,
"callbacks": 1624,
"samePayloadCompared": 1564,
"decodedHashMismatches": 0,
"aWantsUpdates": 7,
"bWantsUpdates": 0,
"aMinPixels": 138240,
"bMinPixels": 230400
}
]
}
}