Flyleaf
Media Player .NET Library for WinUI 3/ WPF/WinForms (based on FFmpeg/DirectX)
Install / Use
/learn @SuRGeoNix/FlyleafREADME
Flyleaf v3.10: Media Player .NET Library for WinUI 3/WPF/WinForms (based on FFmpeg/DirectX)

Notes<br/>
- 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 <sub>(Audio, Videos, Images, Playlists over any Protocol)</sub>
- Extends FFmpeg's supported protocols and formats with additional plugins <sub>(YoutubeDL, TorrentBitSwarm)</sub>
- Accepts Custom I/O Streams and Plugins to handle non-standard protocols / formats
✅ Play it Smoothly <sub>(Even with high resolutions 4K / HDR)</sub>
- 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 <sub>Might the 1st FFmpeg player which does that</sub>
- Pached for HLS and .NET issues <sub>Use recommended FFmpeg libraries which can be found on GitHub releases</sub>
- Capture Devices <sub>Pass the format, input and options with a single Url eg. fmt://gdigrab?desktop&framerate=30</sub>
- Supports FFmpeg v7.1 and v8.0 <sub>(use Flyleaf.FFmpeg.Bindings v8 at your project)</sub>
Playback
- Open / Play / Pause / Stop
- Speed / Reverse / Zero-Low Latency
- Seek Backward / Forward <sub>(Short / Large Step)</sub>
- Seek to Time / Seek to Frame / Seek to Chapter / Frame Stepping
Video
- Enable / Disable
- Device Preference
- Aspect Ratio <sub>(Keep / Fill / Custom)</sub>
- Deinterlace <sub>(Supports double rate, D3D11VP only)</sub>
- HDR to SDR <sub>(Aces / Hable / Reinhard - FlyleafVP only)</sub>
- Pan Move / Zoom / Rotate / HFlip-VFlip / Cropping <sub>~~(Replica Renderer/Interactive Zoom)~~</sub>
- Record / Snapshot
- Super Resolution <sub>(Nvidia / Intel - D3D11VP only)</sub>
- Video Acceleration
- Video Filters <sub>(Brightness / Contrast / Hue / Saturation)</sub>
- Video Processors <sub>(FlyleafVP / D3D11VP)</sub>
- VSync
- Zero-Copy <sub>(Crops with vertex shader)</sub>
- Split-Frame / Alpha Packing <sub>(Special technique to support alpha with hardware acceleration)</sub>
Audio
- Enable / Disable
- Device Preference
- Add / Remove Delay <sub>(Short / Large Step)</sub>
- Volume <sub>(Up / Down / Mute)</sub>
- Languages support <sub>System's default languages as priorities for audio streams</sub>
Subtitles
- Enable / Disable
- Add / Remove Delay <sub>(Short / Large Step)</sub>
- Bitmap Subtitles support
- Advanced Character Detection and Convert to UTF-8 <sub>SubtitlesConverter plugin</sub>
- Languages support <sub>System's default languages as priorities for subtitles streams</sub>
UI Control (FlyleafHost) <sub>WPF / WinUI & WinForms (Partially)</sub>
- Attach / Detach
- Activity / Idle Mode
- Drag Move <sub>(Self / Owner)</sub>
- Drag & Drop Swap
- Drag & Drop Open
- Full / Normal Screen
- Resize / Resize & Keep Ratio
- Z-Order
UI Control (FlyleafME) <sub>WPF Only</sub>
- Flyleaf Bar Control / Slider
- Flyleaf Popup Menu
- Flyleaf Settings Dialog
- Color Themes <sub>Based on Material Design in XAML</sub>
- Style / Control Template Customization
Plugins
- OpenSubtitlesOrg <sub>Search & Download for online Subtitles</sub>
- SubtitlesConverter <sub>Detect & Convert the input's charset to UTF-8</sub>
- TorrentBitSwarm <sub>Play a media from torrent without the need to download it completely</sub>
- YoutubeDL <sub>Play web media that are not accessible directly with HTTP(s)</sub>
Misc.
- Mouse & Key Bindings <sub>All the implementation supports customizable mouse & key bindings which can be assigned to an embedded or a custom actions (find defaults here)</sub>
- Audio Player <sub>Can be used as an audio player only without the need of UI Control</sub>
- Downloader / Remuxer <sub>The library can be used also for downloading & remuxing</sub>
- Extractor <sub>The library can be used also for extracting video frames (supports also by X frames Step)</sub>
[Thanks to]
Flyleaf wouldn't exist without them!
-
For the Core
- FFmpeg / FFmpeg.AutoGen / Flyleaf.FFmpeg.Bindings
- Vortice
- Major open source media players VLC, Kodi, MPV, MPC-BE, FFplay
-
For the UI
-
For the Plugins
Related Skills
qqbot-channel
343.3kQQ 频道管理技能。查询频道列表、子频道、成员、发帖、公告、日程等操作。使用 qqbot_channel_api 工具代理 QQ 开放平台 HTTP 接口,自动处理 Token 鉴权。当用户需要查看频道、管理子频道、查询成员、发布帖子/公告/日程时使用。
docs-writer
99.7k`docs-writer` skill instructions As an expert technical writer and editor for the Gemini CLI project, you produce accurate, clear, and consistent documentation. When asked to write, edit, or revie
model-usage
343.3kUse CodexBar CLI local cost usage to summarize per-model usage for Codex or Claude, including the current (most recent) model or a full model breakdown. Trigger when asked for model-level usage/cost data from codexbar, or when you need a scriptable per-model summary from codexbar cost JSON.
project-overview
FlightPHP Skeleton Project Instructions This document provides guidelines and best practices for structuring and developing a project using the FlightPHP framework. Instructions for AI Coding A
