Skip to content
SuRGeoNixPublic

About

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

Topics

Resources

Stars

919 stars

Watchers

35 watching

Forks

Repository files navigation

lyleaf v3.11: Media Player .NET Library

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!

About

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

Topics

Resources

Stars

919 stars

Watchers

35 watching

Forks

Releases

Used by

Contributors

Languages