All projects

No-airspace Avalonia video

MediaPlayer

Keep video inside the Avalonia compositor and media operations inside reusable services.

StatusActive
TierMaintained
DomainControls
Repositorywieslawsoltes/MediaPlayer

GPU-composited media playback for Avalonia with native platform backends, FFmpeg and LibVLC fallbacks, track/device APIs, and reusable editing workflows.

MediaPlayer keeps decoded video inside Avalonia composition rather than a native child window. Native and fallback providers, direct GPU upload, audio and subtitle state, diagnostics, and media-editing workflows sit behind reusable control and service boundaries.

01

GPU composition without airspace gaps

02

Native, FFmpeg, and LibVLC backends

03

Audio, subtitle, device, and route APIs

04

Trim, split, combine, export, and record

Where it fits.

  • Avalonia media applications
  • Desktop tools requiring video overlays and transforms
  • Products with playback plus trim, export, or recording workflows
macOS

AVFoundation direction

Windows

Media Foundation direction

FFmpeg / LibVLC

Fallback modes

Avalonia composition

No airspace

Real output,
not a mockup.

MediaPlayer QuickTime-inspired Avalonia application
The demo shows no-airspace video, floating transport controls, native menus, diagnostics, and workflow entry points.

Clear layers.
Replaceable seams.

01

Control

GpuMediaPlayer owns playback state, rendering, tracks, devices, routes, and shell behavior.

02

Contracts

Backend-neutral models describe capabilities, providers, diagnostics, and workflows.

03

Interop

Native provider catalogs select platform playback and media services.

04

Workflows

Trim, split, combine, export, transform, record, and stream removal remain reusable.

GPUdirect texture composition
4 backendsnative and fallback directions
7 workflowsedit and export operations
LiveGitHub metadata

One repository.
Multiple serious systems.

Explore the focused capabilities, their package boundaries, architecture, installation, and smallest useful example.

From package
to first frame.

Choose the package workflow used by your repository, then start from the smallest working example. Replace VERSION with the current stable or prerelease version shown on NuGet.

01 · Install
Terminal
dotnet add package MediaPlayer.Controls
02 · Use · xml
MainWindow.axaml
<media:GpuMediaPlayer Source="{Binding CurrentSource}"
AutoPlay="True"
PreferDirectGpuTextureUpload="True" />

Start focused.
Compose as needed.

The repository is the source of truth.

Use the current documentation and samples, inspect changes, report issues, or support continued open-source maintenance.

HexView

Search everything.

Loading the index…

move open esc close

Preparing metadata and full-text search…