You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+30-8Lines changed: 30 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,14 +7,33 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
8
8
## [Unreleased]
9
9
10
+
### Planned for 0.4.0
11
+
-**Multi-session support for cloud deployment**: Scope multi-user / multi-session architecture for cloud deployments (see current limitations in 0.3.0).
12
+
13
+
---
14
+
15
+
## [0.3.0] - 2026-03-02
16
+
17
+
**UI upgrade and robotics-oriented prompts**
18
+
19
+
### Added
20
+
-**Video overlay controls (play / stop)**:
21
+
- Big green PLAY button centered on video; animates to top-left and fades when streaming starts
22
+
- Small red STOP button in top-left while streaming (higher opacity for visibility)
23
+
- Sidebar start/stop replaced by overlay flow for cleaner UX
24
+
-**Fullscreen mode**: Toggle fullscreen on the video card with VLM output overlay; shrink and mirror buttons remain clickable (z-index fix)
25
+
-**Robotics-oriented prompt preset**: "Robot Navigation (Simple)" system prompt—describe scene and output 5 navigation commands (`linear_x`, `angular_z`) with reasons, e.g. for bathroom-finding or similar tasks
26
+
10
27
### Fixed
11
-
-**Model initialization race condition**: Fixed auto-selected models not being sent to server
12
-
- Previously, if the UI auto-selected a model on page load, it wouldn't be sent to the server
13
-
- This happened because `fetchModels()` ran before WebSocket connection completed
14
-
- Symptom: Camera opens but no VLM processing until manually selecting a model
15
-
- Fix: Send current model to server immediately after WebSocket connects
16
-
- Ensures server always uses the model shown in UI, even when auto-selected
17
-
- Result: VLM processing starts automatically without requiring manual model selection
28
+
-**Model initialization race condition**: Auto-selected model is sent to server as soon as WebSocket connects so VLM processing starts without manually re-selecting the model
29
+
-**MediaStreamError on stop**: Track end when user stops is handled as normal shutdown (logged at DEBUG only, no error/traceback)
30
+
-**Fullscreen controls**: Shrink (minimize) and Mirror buttons stay above the VLM overlay and remain clickable in fullscreen
31
+
-**Jetson Thor Docker** ([#14](https://github.com/NVIDIA-AI-IOT/live-vlm-webui/issues/14)): `start_container.sh` now uses `--runtime=nvidia` instead of `--gpus all` on Jetson (Thor and Orin) so containers start correctly
32
+
33
+
### Changed
34
+
-**WebRTC**: Wait for ICE gathering to complete before sending offer (reduces stuck "checking" connections)
Copy file name to clipboardExpand all lines: docs/troubleshooting.md
+99Lines changed: 99 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -395,6 +395,105 @@ For production use, get a proper SSL certificate from Let's Encrypt or a certifi
395
395
396
396
---
397
397
398
+
## WebRTC Connection Issues
399
+
400
+
### No VLM analysis results / GPU not increasing / Connection stuck
401
+
402
+
**Symptoms:**
403
+
- ✅ Server starts successfully
404
+
- ✅ Web UI loads properly
405
+
- ✅ Camera permission granted
406
+
- ❌ No VLM analysis results appear
407
+
- ❌ GPU utilization stays at 0%
408
+
- ❌ Video preview may show but no processing happens
409
+
410
+
**Root Cause:** WebRTC connection is not completing. The ICE (Interactive Connectivity Establishment) connection gets stuck in "checking" state and never reaches "connected".
411
+
412
+
**How to verify this is the issue:**
413
+
414
+
Check server logs for this pattern:
415
+
```log
416
+
ICE gathering state: complete
417
+
Created answer with 1 transceivers
418
+
ICE connection state: checking
419
+
Connection state: connecting
420
+
# ❌ Connection never progresses to "connected"
421
+
```
422
+
423
+
Check browser console (F12 → Console tab):
424
+
```javascript
425
+
ICE connection state: checking
426
+
# ❌ Should show "connected" but doesn't
427
+
```
428
+
429
+
**Solution:** This issue has been fixed in recent versions. Update to the latest version:
430
+
431
+
```bash
432
+
# Update to latest version
433
+
pip install --upgrade live-vlm-webui
434
+
435
+
# Or if using git:
436
+
cd live-vlm-webui
437
+
git pull
438
+
pip install -e .
439
+
```
440
+
441
+
**If updating doesn't help, check these:**
442
+
443
+
1.**Firewall blocking WebRTC:**
444
+
```bash
445
+
# Allow UDP for WebRTC
446
+
sudo ufw allow 8090/tcp
447
+
sudo ufw allow 49152:65535/udp # WebRTC ports
448
+
```
449
+
450
+
2.**STUN server unreachable:**
451
+
```bash
452
+
# Test STUN server connectivity
453
+
curl -I stun.l.google.com:19302
454
+
```
455
+
456
+
3.**Corporate/Network restrictions:**
457
+
- Some corporate networks block WebRTC traffic
458
+
- Try from a different network or use mobile hotspot for testing
459
+
- Check ifUDP traffic is blocked by your router/firewall
460
+
461
+
4.**Browser compatibility:**
462
+
- ✅ Chrome/Edge (recommended - best WebRTC support)
463
+
- ✅ Firefox (good support)
464
+
- ⚠️ Safari (limited support)
465
+
- Use latest browser version
466
+
467
+
5.**SSL certificate issues:**
468
+
- Make sure you accepted the self-signed certificate warning
469
+
- Clear browser cache and reload: Ctrl+Shift+R (Cmd+Shift+R on Mac)
470
+
471
+
**Technical Details:**
472
+
473
+
The fix ensures ICE candidates are properly gathered before exchanging WebRTC offers. Withoutthis, the peers can't find network paths to connect, leaving the connection in "checking" state indefinitely.
474
+
475
+
**Verify the fix worked:**
476
+
477
+
After starting camera, you should see in server logs:
478
+
```log
479
+
✅ ICE gathering state: complete
480
+
✅ Created answer with 1 transceivers
481
+
✅ ICE connection state: checking
482
+
✅ ICE connection state: connected # ← This line should appear!
483
+
✅ Connection state: connected
484
+
```
485
+
486
+
And browser console should show:
487
+
```javascript
488
+
ICE connection state: connected // ← Must see this!
489
+
```
490
+
491
+
Once connected, you should immediately see:
492
+
- VLM analysis results appearing in the UI
493
+
- GPU utilization increasing (check with `nvidia-smi` or `jtop`)
494
+
495
+
---
496
+
398
497
## VLM Backend Issues
399
498
400
499
> 📖 **Reference:** For a complete list of available Vision-Language Models across different providers, see [List of VLMs](usage/list-of-vlms.md).
0 commit comments