https://github.com/surgeonix/flyleaf
Media Player .NET Library for WinUI 3/ WPF/WinForms (based on FFmpeg/DirectX)
https://github.com/surgeonix/flyleaf
ffmpeg hls-player media-downloader media-player mediaplayer rtsp-player torrent-player video-player web-player winui3
Last synced: 5 months ago
JSON representation
Media Player .NET Library for WinUI 3/ WPF/WinForms (based on FFmpeg/DirectX)
- Host: GitHub
- URL: https://github.com/surgeonix/flyleaf
- Owner: SuRGeoNix
- License: lgpl-3.0
- Created: 2019-11-07T05:37:14.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2025-03-10T07:18:45.000Z (7 months ago)
- Last Synced: 2025-04-05T19:00:23.353Z (6 months ago)
- Topics: ffmpeg, hls-player, media-downloader, media-player, mediaplayer, rtsp-player, torrent-player, video-player, web-player, winui3
- Language: C#
- Homepage:
- Size: 197 MB
- Stars: 762
- Watchers: 32
- Forks: 103
- Open Issues: 23
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# *Flyleaf v3.8*: Media Player .NET Library for WinUI 3/WPF/WinForms (based on FFmpeg/DirectX)

---
>Notes
>1. FlyleafLib's releases will be on [NuGet](https://www.nuget.org/packages?q=flyleaf)
>2. Compiled samples will be on [GitHub releases](https://github.com/SuRGeoNix/Flyleaf/releases)
>3. Documentation will be on [Wiki](https://github.com/SuRGeoNix/Flyleaf/wiki) and [Samples](https://github.com/SuRGeoNix/Flyleaf/tree/master/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](https://patchwork.ffmpeg.org/project/ffmpeg/list/?series=1018)* 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 v7.1*### **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](https://github.com/SuRGeoNix/Flyleaf/wiki/Player-(Key-&-Mouse-Bindings)))
- *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*
* ***[FFmpeg](http://ffmpeg.org/)*** / ***[FFmpeg.AutoGen](https://github.com/Ruslan-B/FFmpeg.AutoGen/)***
* ***[Vortice](https://github.com/amerkoleci/Vortice.Windows)***
* *Major open source media players* ***[VLC](https://github.com/videolan/vlc)***, ***[Kodi](https://github.com/xbmc/xbmc)***, ***[MPV](https://github.com/mpv-player/mpv)***, ***[FFplay](https://github.com/FFmpeg/FFmpeg/blob/master/fftools/ffplay.c)**** *For the UI*
* ***[Dragablz](https://github.com/ButchersBoy/Dragablz)***
* ***[MaterialDesign Colors & Themes](https://github.com/MaterialDesignInXAML/MaterialDesignInXamlToolkit/)**** *For the Plugins*
* ***[BitSwarm](https://github.com/SuRGeoNix/BitSwarm)***
* ***[OpenSubtitles.org](https://www.opensubtitles.org/)***
* ***[YT-DLP](https://github.com/yt-dlp/yt-dlp)***