• Stefy Lanza (nextime / spora )'s avatar
    feat: Add comprehensive screen casting system with Chromecast integration · ee74dc06
    Stefy Lanza (nextime / spora ) authored
    - Add ScreenCastComponent: New threaded component for screen capture and streaming
    - Implement FFmpeg-based cross-platform screen capture (Linux, Windows, macOS)
    - Add Chromecast device discovery and streaming using pychromecast
    - Create web-based screen cast interface at /screen_cast with real-time controls
    - Add HTTP streaming server for Chromecast-compatible video delivery
    - Integrate screen cast settings into web dashboard configuration panel
    - Add --no-screen-cast command line flag (enabled by default)
    - Update dependencies: ffmpeg-python>=0.2.0, pychromecast>=13.0.0
    
    New Files:
    - mbetterclient/core/screen_cast.py: Main ScreenCastComponent implementation
    - mbetterclient/web_dashboard/screen_cast_routes.py: Flask API routes
    - mbetterclient/web_dashboard/templates/dashboard/screen_cast.html: Web interface
    - test_screen_cast_integration.py: Integration test suite
    
    Key Features:
    - Real-time device discovery and status updates
    - Platform-specific audio/video input sources
    - Quality settings (resolution, frame rate, bitrate)
    - Network stream URL generation for Chromecast access
    - Proper component lifecycle management and cleanup
    - Message bus integration with WEB_ACTION support
    
    Documentation:
    - Updated README.md with screen casting features and usage
    - Added comprehensive CHANGELOG.md entry for v1.2.4
    - Extended DOCUMENTATION.md with complete screen casting guide
    
    Architecture Enhancement:
    - Extended from 4 to 5 threaded components
    - Added ScreenCastConfig to settings with database persistence
    - Enhanced web dashboard navigation with screen cast section
    ee74dc06
test_ffmpeg.py 4.18 KB