PlayerDlna is a Windows desktop DLNA receiver built with WPF and LibVLC. It is designed as a small portable app that can receive a media URL from DLNA/UPnP controller apps and play it locally.
- DLNA Digital Media Renderer discovery over SSDP
- AVTransport, RenderingControl, ConnectionManager, SOAP, and event endpoints
- Embedded VLC playback for received media URLs
- Local FFmpeg relay for HLS/live-like streams
- Play, pause, stop, seek, fullscreen, volume, and diagnostics controls
- Simplified Chinese and English UI, selected from the OS UI language
- Optional AirPlay sidecar support through UxPlay in full portable builds
AirPlay is optional. Slim builds hide AirPlay UI automatically. Full builds show AirPlay controls and guide users through Bonjour/mDNS setup when needed.
- Windows 10 or Windows 11
- .NET 8 SDK for development
- Devices on the same local network
- Firewall/network policy allowing local TCP and UDP multicast traffic
Portable release packages include the .NET Desktop Runtime, LibVLC, FFmpeg, and the selected sidecar files, so end users do not need to install them separately.
dotnet build .\PlayerDlna.sln
dotnet run --project .\src\PlayerDlna\PlayerDlna.csprojThe built Debug executable is:
.\src\PlayerDlna\bin\Debug\net8.0-windows\PlayerDlna.exeOptional diagnostics:
.\src\PlayerDlna\bin\Debug\net8.0-windows\PlayerDlna.exe --file-log
.\src\PlayerDlna\bin\Debug\net8.0-windows\PlayerDlna.exe --http-trace
.\src\PlayerDlna\bin\Debug\net8.0-windows\PlayerDlna.exe --diagnostic-log--file-log writes logs under %LOCALAPPDATA%\PlayerDlna\logs.
Local sidecar binaries are not stored in git. Put them under third_party\
before building or packaging:
third_party/
ffmpeg/ # shared FFmpeg runtime for full packages
ffmpeg-static/ # single-file FFmpeg for slim packages
uxplay/ # UxPlay runtime for AirPlay support
Only README and placeholder files under third_party\ are tracked.
Full package with AirPlay support:
.\scripts\Publish-Green.ps1 -Version v0.1.0Slim package for DLNA-focused testing:
.\scripts\Publish-Green.ps1 -Version v0.1.0 -SlimSidecarsRelease zips are written to artifacts\. See
docs/PortableRelease.md for packaging details and
licensing notes.
DLNA compatibility varies between controller apps. PlayerDlna focuses on the working path of receiving a stream URL and playing it reliably on the desktop. AirPlay support is provided by the optional UxPlay sidecar, not by the DLNA renderer itself.
Implementation details are documented in IMPLEMENTATION.md.