Trimmed monorepo checkout (fluxer_desktop + packages/voice_engine_v2 + tools/ci) with a "Connect to a Different Server" menu item and popout that lets the desktop app switch to any self-hosted Fluxer instance, plus fixes for well-known discovery on single-domain self-hosted deployments and a false-positive ERR_ABORTED on same-origin client redirects during the switch. Defaults to chat.fluxr.chat and uses an isolated userData directory from the official build.
227 lines
6.1 KiB
JSON
227 lines
6.1 KiB
JSON
{
|
|
"status": "fail",
|
|
"startedAt": "2026-06-05T20:56:44.980Z",
|
|
"endedAt": "2026-06-05T20:56:45.769Z",
|
|
"platform": "linux",
|
|
"arch": "x64",
|
|
"config": {
|
|
"url": "ws://100.79.83.54:17880",
|
|
"serverApiUrl": "http://100.79.83.54:17880",
|
|
"apiKey": "devkey",
|
|
"room": "fluxer-webrtc-harness-94317-ce85bdff-9476-465a-9f9a-fae49f6c168d",
|
|
"externalTokens": false,
|
|
"publisherIdentity": "fluxer-native-publisher-94317",
|
|
"secondaryPublisherIdentity": "fluxer-native-publisher-2-94317",
|
|
"subscriberIdentity": "fluxer-native-subscriber-94317",
|
|
"required": true,
|
|
"strict": true,
|
|
"timeoutMs": 90000,
|
|
"connectTimeoutMs": 30000,
|
|
"disconnectTimeoutMs": 10000,
|
|
"probeTimeoutMs": 1500,
|
|
"durationMs": 15000,
|
|
"width": 1280,
|
|
"height": 720,
|
|
"expectedWidth": 1280,
|
|
"expectedHeight": 720,
|
|
"fps": 30,
|
|
"minFpsRatio": 0.9,
|
|
"maxFrameGapMs": 250,
|
|
"maxAudioFrameGapMs": 0,
|
|
"maxAvDriftMs": 0,
|
|
"maxPacketLoss": null,
|
|
"requireStableResolution": true,
|
|
"videoPattern": "fast",
|
|
"videoInput": "nv12",
|
|
"subscriberVideoQuality": "high",
|
|
"screenCodecs": ["hevc"],
|
|
"expectedScreenCodecs": ["hevc"],
|
|
"codec": "hevc",
|
|
"expectedScreenCodec": "video/H265",
|
|
"secondaryPublisher": false,
|
|
"secondaryPublisherCodec": "hevc",
|
|
"secondaryPublisherCodecExplicit": false,
|
|
"expectedSecondaryPublisherCodec": "video/H265",
|
|
"expectedSecondaryPublisherCodecExplicit": false,
|
|
"screenSimulcast": false,
|
|
"secondaryPublisherScreenSimulcast": false,
|
|
"adaptiveSend": true,
|
|
"minVideoFps": 15,
|
|
"minResolutionScale": 0.5,
|
|
"maxAudioBufferMs": 750,
|
|
"secondaryPublisherMicrophone": false,
|
|
"secondaryPublisherScreenAudio": false,
|
|
"maxBitrateBps": 400000,
|
|
"sampleRate": 48000,
|
|
"channels": 1,
|
|
"audioChunkMs": 20,
|
|
"microphone": false,
|
|
"screenAudio": false,
|
|
"dataPacket": false,
|
|
"subscriptionCycle": false,
|
|
"validateServerPublishing": true,
|
|
"camera": false,
|
|
"cameraDeviceId": null,
|
|
"expectedCameraCodec": null,
|
|
"expectedHardwareEncoder": null,
|
|
"reportPath": "/home/hampus/Development/fluxer/fluxer_desktop/native-media-reports/cachyos-nvidia-livekit-720p-hevc-failfast-20260605T205643Z.json",
|
|
"verbose": false,
|
|
"scenarioName": "codec-hevc",
|
|
"apiSecret": "<redacted>",
|
|
"e2eeKey": null,
|
|
"publisherToken": null,
|
|
"secondaryPublisherToken": null,
|
|
"subscriberToken": null
|
|
},
|
|
"checks": [
|
|
{
|
|
"name": "publisher connected",
|
|
"pass": true
|
|
},
|
|
{
|
|
"name": "subscriber connected",
|
|
"pass": true
|
|
},
|
|
{
|
|
"name": "publisher local screenshare publication",
|
|
"pass": false
|
|
},
|
|
{
|
|
"name": "subscriber remote screenshare subscription",
|
|
"pass": false
|
|
},
|
|
{
|
|
"name": "subscriber inbound video frames >= 3",
|
|
"pass": false
|
|
},
|
|
{
|
|
"name": "subscriber video frame callback",
|
|
"pass": false
|
|
},
|
|
{
|
|
"name": "publisher outbound screenshare stats",
|
|
"pass": false
|
|
},
|
|
{
|
|
"name": "subscriber inbound video stats",
|
|
"pass": false
|
|
},
|
|
{
|
|
"name": "subscriber inbound video stats count >= 1",
|
|
"pass": false
|
|
},
|
|
{
|
|
"name": "subscriber video resolution 1280x720",
|
|
"pass": false
|
|
},
|
|
{
|
|
"name": "publisher outbound screenshare codec video/H265",
|
|
"pass": false
|
|
},
|
|
{
|
|
"name": "subscriber inbound video codec video/H265",
|
|
"pass": false
|
|
},
|
|
{
|
|
"name": "server publishing API participants listed",
|
|
"pass": false
|
|
},
|
|
{
|
|
"name": "server sees publisher screenshare publication",
|
|
"pass": false
|
|
}
|
|
],
|
|
"skippedReason": null,
|
|
"error": "Error: H.265 publishing requires hardware encoder support; missing NVENC encode session (checked 1 CUDA device; last status NV_ENC_ERR_UNSUPPORTED_DEVICE (2))",
|
|
"hardwareEncoder": {
|
|
"available": false,
|
|
"backend": "none",
|
|
"compiled": true,
|
|
"runtime": false,
|
|
"codecs": [],
|
|
"zeroCopy": false,
|
|
"nativeInputs": [],
|
|
"reason": "no_supported_devices",
|
|
"detail": "missing NVENC encode session (checked 1 CUDA device; last status NV_ENC_ERR_UNSUPPORTED_DEVICE (2))"
|
|
},
|
|
"metrics": {
|
|
"inboundAudioFrames": 0,
|
|
"inboundVideoFrames": 0,
|
|
"strictAudioFrames": 0,
|
|
"strictVideoFrames": 0,
|
|
"videoCallbacks": 0,
|
|
"videoBytes": 0,
|
|
"receivedFps": 0,
|
|
"requiredFps": 27,
|
|
"maxVideoFrameGapMs": 0,
|
|
"maxAudioFrameGapMs": 0,
|
|
"maxVideoFrameGapOverallMs": 0,
|
|
"maxAudioFrameGapOverallMs": 0,
|
|
"avDriftMs": null,
|
|
"maxObservedPacketLoss": 0,
|
|
"maxObservedPacketLossDelta": 0,
|
|
"videoResolutionCounts": {},
|
|
"videoResolutionMismatchCount": 0,
|
|
"droppedVideoFrameCallbacks": 0,
|
|
"publisherVideoPump": null,
|
|
"secondaryPublisherVideoPump": null,
|
|
"serverPublishing": {
|
|
"fetchedAtMs": null,
|
|
"error": null,
|
|
"participants": []
|
|
},
|
|
"lastVideoMeta": null,
|
|
"publisherStats": {
|
|
"rttMs": null,
|
|
"outbound": [],
|
|
"inbound": [],
|
|
"send": {
|
|
"outgoingVideoQueueDepth": 0,
|
|
"outgoingVideoFramesProduced": 0,
|
|
"outgoingVideoFramesAccepted": 0,
|
|
"outgoingVideoFramesDropped": 0,
|
|
"outgoingVideoFramesCoalesced": 0,
|
|
"outgoingVideoFramesCaptured": 0,
|
|
"outgoingVideoCaptureFailures": 0,
|
|
"outgoingVideoEffectiveFps": 0,
|
|
"outgoingVideoTargetFps": 0,
|
|
"outgoingVideoMaxQueueAgeMs": 0,
|
|
"outgoingVideoMaxPushLatencyMs": 0,
|
|
"outgoingAudioBufferTargetMs": 200,
|
|
"outgoingAudioBufferMaxMs": 750,
|
|
"outgoingAudioUnderruns": 0,
|
|
"outgoingAudioRebuffers": 0,
|
|
"outgoingAudioMaxFrameGapMs": 0,
|
|
"adaptiveSendTier": "idle",
|
|
"adaptiveSendReason": "notPublishing"
|
|
}
|
|
},
|
|
"secondaryPublisherStats": null,
|
|
"subscriberStats": {
|
|
"rttMs": null,
|
|
"outbound": [],
|
|
"inbound": [],
|
|
"send": {
|
|
"outgoingVideoQueueDepth": 0,
|
|
"outgoingVideoFramesProduced": 0,
|
|
"outgoingVideoFramesAccepted": 0,
|
|
"outgoingVideoFramesDropped": 0,
|
|
"outgoingVideoFramesCoalesced": 0,
|
|
"outgoingVideoFramesCaptured": 0,
|
|
"outgoingVideoCaptureFailures": 0,
|
|
"outgoingVideoEffectiveFps": 0,
|
|
"outgoingVideoTargetFps": 0,
|
|
"outgoingVideoMaxQueueAgeMs": 0,
|
|
"outgoingVideoMaxPushLatencyMs": 0,
|
|
"outgoingAudioBufferTargetMs": 200,
|
|
"outgoingAudioBufferMaxMs": 750,
|
|
"outgoingAudioUnderruns": 0,
|
|
"outgoingAudioRebuffers": 0,
|
|
"outgoingAudioMaxFrameGapMs": 0,
|
|
"adaptiveSendTier": "idle",
|
|
"adaptiveSendReason": "notPublishing"
|
|
}
|
|
}
|
|
}
|
|
}
|