Skip to content

Repository files navigation

PlayerDlna

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.

Features

  • 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.

Requirements

  • 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.

Build

dotnet build .\PlayerDlna.sln
dotnet run --project .\src\PlayerDlna\PlayerDlna.csproj

The built Debug executable is:

.\src\PlayerDlna\bin\Debug\net8.0-windows\PlayerDlna.exe

Optional 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.

Third-Party Sidecars

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.

Portable Packages

Full package with AirPlay support:

.\scripts\Publish-Green.ps1 -Version v0.1.0

Slim package for DLNA-focused testing:

.\scripts\Publish-Green.ps1 -Version v0.1.0 -SlimSidecars

Release zips are written to artifacts\. See docs/PortableRelease.md for packaging details and licensing notes.

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.

Releases

Packages

Contributors

Languages