Skip to content

Releases: alexvermaning0/Resoweb

1.3

25 Jan 16:06

Choose a tag to compare

Changelog

All notable changes to this project will be documented in this file.

[1.3.0] - 2025-01-26

Added

  • Initial release of Resonite Browser Server
  • GPU-accelerated browser streaming with NVIDIA NVENC
  • Support for 10+ simultaneous browser sessions
  • Separate H.264 video (MPEG-TS) and MP3 audio streams
  • Full browser control via WebSocket commands
  • Session management with auto-cleanup
  • Cursor visualization with click feedback (red flash on click)
  • Per-session isolated audio via PulseAudio virtual sinks
  • Session restart capability for GPU initialization failures
  • Heartbeat system to keep sessions alive (60s timeout)
  • Navigation commands (back, forward, reload)
  • Navigation state reporting (bool2 format: [canGoBack;canGoForward])
  • Automatic URL change notifications (URLChanged events)
  • Mouse and keyboard interaction
  • Scroll support
  • Support for chrome:// and about:// URLs
  • Cursor offset fine-tuning (-5px for perfect alignment)

Performance

  • 2.5x capacity increase with GPU acceleration (10 streams vs 4 without GPU)
  • NVENC hardware encoding reduces CPU usage by ~50%
  • GPU-accelerated video decode for YouTube and other media
  • Tested: 10 simultaneous 1080p30 YouTube streams on GTX 1050

Known Issues

  • Occasional white screen on session start due to GPU initialization timing (~10-30% of sessions)
    • Workaround: Use Wrench Icon (may need 2-3 attempts)
  • Consumer NVIDIA GPUs limited to 8 concurrent NVENC sessions without driver patch
    • Solution: Apply nvidia-patch for unlimited sessions
  • Tab switching has 1-2 second delay while content loads

Technical Details

  • Node.js 20+ with Express and WebSocket
  • Playwright for browser automation
  • FFmpeg with NVENC for video encoding
  • Xvfb for virtual X displays
  • PulseAudio for audio capture
  • 1080p30 @ 6Mbps H.264 video (MPEG-TS)
  • 48kHz stereo @ 128kbps MP3 audio
  • LD_PRELOAD NVIDIA GLX for GPU acceleration
  • Cursor offset: -5 pixels (Y-axis)