Flyleaf v3.7: Media Player .NET Library for WinUI 3/WPF/WinForms (based on FFmpeg/DirectX)
Notes
- FlyleafLib's releases will be on NuGet
- Compiled samples will be on GitHub releases
- 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 / HFlip-VFlip (Replica Renderer/Interactive Zoom)
- 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!
-
For the Core
-
For the UI
-
For the Plugins