C# LGPL-3.0

Flyleaf

Media Player .NET Library for WinUI 3/ WPF/WinForms (based on FFmpeg/DirectX)

S

SuRGeoNix

Dernière activité 25 sept. 2026
SuRGeoNix/Flyleaf

915

étoiles

134

forks

14

issues ouvertes

ffmpeghls-playermedia-downloadermedia-playermediaplayerrtsp-playertorrent-playervideo-playerweb-playerwinui3

Ce README est souvent en anglais.

Flyleaf v3.11: Media Player .NET Library for WinUI 3/WPF/WinForms (based on FFmpeg/DirectX)

alt text


Notes

  1. FlyleafLib's releases will be on NuGet
  2. Compiled samples will be on GitHub releases
  3. Documentation will be on Wiki and Samples within the solution

[Overview]

✅ Play Everything (Audio, Videos, Images, Playlists over any Protocol)

  • Extends FFmpeg's supported protocols and formats with additional plugins (YoutubeDL, TorrentBitSwarm)
  • Accepts Custom I/O Streams and Plugins to handle non-standard protocols / formats

✅ Play it Smoothly (Even with high resolutions 8K / HDR)

  • Coded from scratch to gain the best possible performance with FFmpeg & DirectX using video acceleration and custom pixel shaders
  • Threading implementation with efficient cancellation which allows fast open, play, pause, stop, seek and stream switching

✅ Develop it Easy

  • Provides a DPI aware, hardware accelerated Direct3D Surface (FlyleafHost) which can be hosted as normal control to your application and easily develop above it your own transparent overlay content
  • All the implementation uses UI notifications (PropertyChanged / ObservableCollection etc.) so you can use it as a ViewModel directly
  • For WPF provides a Control (FlyleafME) with all the basic UI sub-controls (Bar, Settings, Popup menu) and can be customized with style / control template overrides

[Features]

FFmpeg

  • HLS Live Seeking Might the 1st FFmpeg player which does that
  • Pached for .NET issues Use recommended FFmpeg libraries which can be found on GitHub releases
  • Capture Devices Pass the format, input and options with a single Url eg. fmt://gdigrab?desktop&framerate=30
  • Supports FFmpeg v9.0 (use updated Flyleaf.FFmpeg.ABI at your project if required)

Playback

  • Open / Play / Pause / Stop
  • Speed / Reverse / Zero-Low Latency
  • Seek Backward / Forward (Short / Medium / Large Step)
  • Seek to Time / Seek to Frame / Seek to Chapter / Frame Stepping

Video

  • Enable / Disable
  • Device Preference
  • Aspect Ratio (Keep / Fill / Custom)
  • Deinterlace (Supports double rate, D3D11VP only)
  • HDR10 / HDR10+ / HLG / Dolby Vision (FlyleafVP only)
  • Embedded ICC Profiles
  • Pan Move / Zoom / Rotate / HFlip-VFlip / Cropping (Replica Renderer/Interactive Zoom)
  • Record / Snapshot
  • Super Resolution (Nvidia / Intel - D3D11VP only)
  • 360° Panoramic
  • Video Acceleration
  • Video Filters (Brightness / Contrast / Hue / Saturation)
  • Video Processors (FlyleafVP / D3D11VP / SwsScale)
  • VSync
  • Zero-Copy (Crops with vertex shader)
  • Split-Frame / Alpha Packing (Special technique to support alpha with hardware acceleration)

Audio

  • Enable / Disable
  • Device Preference
  • Add / Remove Delay (Short / Large Step)
  • Volume (Up / Down / Mute)
  • Native Audio Formats (Sample Formats / Sample Rates / Channel Layouts)
  • Languages support System's default languages as priorities for audio streams

Subtitles

  • Enable / Disable
  • Add / Remove Delay (Short / Large Step)
  • Bitmap Subtitles support
  • Advanced Character Detection and Convert to UTF-8 SubtitlesConverter plugin
  • Languages support System's default languages as priorities for subtitles streams

UI Control (FlyleafHost) WPF / WinUI & WinForms (Partially)

  • Attach / Detach
  • Activity / Idle Mode
  • Drag Move (Self / Owner)
  • Drag & Drop Swap
  • Drag & Drop Open
  • Full / Normal Screen
  • Resize / Resize & Keep Ratio
  • Z-Order

UI Control (FlyleafME) WPF Only

  • Flyleaf Bar Control / Slider
  • Flyleaf Popup Menu
  • Flyleaf Settings Dialog
  • Color Themes Based on Material Design in XAML
  • Style / Control Template Customization

Plugins

  • OpenSubtitlesOrg Search & Download for online Subtitles
  • SubtitlesConverter Detect & Convert the input's charset to UTF-8
  • TorrentBitSwarm Play a media from torrent without the need to download it completely
  • YoutubeDL Play web media that are not accessible directly with HTTP(s)

Misc.

  • Mouse & Key Bindings All the implementation supports customizable mouse & key bindings which can be assigned to an embedded or a custom actions (find defaults here)
  • Audio Player Can be used as an audio player only without the need of UI Control
  • Downloader / Remuxer The library can be used also for downloading & remuxing
  • Extractor The library can be used also for extracting video frames (supports also by X frames Step)

[Thanks to]

Flyleaf wouldn't exist without them!

Projets similaires

🎞 mpv.net is a media player for Windows with a modern GUI.

C#audio-playercommand-linedotnet
Mmpvnet-player
5,4 k étoiles219

LibVLC-based media player for the Universal Windows Platform

C#csharpdotnetmedia-player
Hhuynhsontung
4,5 k étoiles210

One media player for everything you own or stream; whether it's music or videos, online or offline Rise Media Player does it all. And it's beautiful and native with the latest version of WinUI.

C#csharpcustomizationfluent
Ttheimpactfulcompany
1,2 k étoiles87