How zerochocobo/thru3d-media-server works
Thru3D Media Server is a Windows-first VR DLNA media server with a desktop UI and offline video-generation tools. The main workflow is configuring a local library in the UI, discovering and browsing it from a DLNA player, then serving original media or a realtime passthrough stream. Distinct branches cover subtitles and simultaneous-interpretation sidecars, GPU matting and enhancement, offline 2D-to-3D/VR generation, and RTX VSR/TrueHDR. The README documents capabilities not visible in the sampled excerpts; those links are shown only where documented.
Main entry points: pynv_stream.py HEVC passthrough · content_directory.py ContentDirectory · routes_media.py Media routes · server.py HTTP server
Components 26
Desktop and Settings
- Desktop UI
ui/main_window.py - Live settings
utils/runtime_settings.py
Library and DLNA
- Media library
media_library.py - ContentDirectory
dlna/content_directory.py - SSDP discovery
dlna/ssdp.py - HTTP server
http_app/server.py - DLNA routes
http_app/routes_dlna.py
Realtime Media
- Media routes
http_app/routes_media.py - HEVC passthrough
pipeline/pynv_stream.py - GPU matting
pipeline/matting.py - Alpha compositing
pipeline/alpha_packer.py - Subtitle delivery
pipeline/subtitles.py - SI sidecar playback
http_app/si_stream.py - 2D-to-3D generation
pipeline/demosaic.py - RTX VSR and HDR
utils/rtx_vsr.py - DLSS 5 support
utils/dlss5.py
Offline Processing
- Offline tools UI
ui/pages/offline_page.py - Offline generation
offline/two_dvr.py - Face Beauty engine
offline/face_beauty_engine.py
Runtime Support
- Server configuration
config.py - Model manifest
utils/trt_manifest.py - SI audio filtering
utils/si_filter.py - Logging
utils/logger.py - VR naming
utils/vr_naming.py
Other components
- Desktop user
- DLNA player
Connections 30
- Desktop user → Desktop UI: configures
README.md - Desktop UI → Live settings: updates
README.md - Desktop UI → Offline tools UI: launches
README.md - Offline tools UI → Offline generation: starts jobs
README.md - Offline tools UI → Face Beauty engine: starts jobs
README.md - DLNA player → SSDP discovery: discovers
README.md - DLNA player → HTTP server: requests media
README.md - HTTP server → DLNA routes: registers routes
http_app/server.py - HTTP server → Media routes: registers routes
http_app/server.py - DLNA routes → ContentDirectory: serves browsing
http_app/routes_dlna.py - ContentDirectory → Media library: resolves library
dlna/content_directory.py - Media routes → Media library: resolves media
http_app/routes_media.py - ContentDirectory → DLNA player: advertises captions
README.md - Media routes → DLNA player: serves captions
README.md - Media routes → HEVC passthrough: starts streams
http_app/routes_media.py - HEVC passthrough → GPU matting: runs matting
pipeline/pynv_stream.py - HEVC passthrough → Alpha compositing: produces alpha
pipeline/pynv_stream.py - HEVC passthrough → Subtitle delivery: embeds subtitles
README.md - Media routes → SI sidecar playback: serves SI
http_app/routes_media.py - ContentDirectory → SI sidecar playback: lists SI entries
README.md - HEVC passthrough → 2D-to-3D generation: generates 3D
pipeline/pynv_stream.py - HEVC passthrough → RTX VSR and HDR: applies VSR
pipeline/pynv_stream.py - HEVC passthrough → DLSS 5 support: uses enhancement
pipeline/pynv_stream.py - SI sidecar playback → SI audio filtering: filters audio
http_app/si_stream.py - GPU matting → Model manifest: checks models
pipeline/matting.py - Offline generation → 2D-to-3D generation: generates depth
- Face Beauty engine → Model manifest: loads models
- Server configuration → Live settings: provides defaults
utils/runtime_settings.py - HTTP server → Logging: logs requests
http_app/server.py - ContentDirectory → VR naming: formats titles
dlna/content_directory.py