Skip to content

SuRGeoNix/Flyleaf

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Flyleaf v3.7: 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 4K / 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 HLS issue 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 v5+

Playback

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

Video

  • Enable / Disable
  • Device Preference
  • Aspect Ratio (Keep / Fill / Custom)
  • Deinterlace (Bob)
  • HDR to SDR (Aces / Hable / Reinhard) [BT2020 / SMPTE 2084 to BT709]
  • Pan Move / Zoom / Rotate
  • Record / Snapshot
  • Video Acceleration
  • Video Filters (Brightness / Contrast / Hue / Saturation)
  • Video Processors (Flyleaf / D3D11)
  • VSync
  • Zero-Copy

Audio

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

Subtitles

  • Enable / Disable
  • Add / Remove Delay (Short / Large Step)
  • 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!