Package selection guidance compiled from public package information, community data, and project usage.
Better Player is an advanced video player for Flutter that addresses common video playback challenges with a simple, intuitive API. It supports various streaming protocols, adaptive bitrate streaming, and offers customizable UI components. Designed for ease of use, it enables developers to quickly implement robust video playback functionality across different platforms. The package is well-documented and actively maintained, making it ideal for apps requiring high-quality video experiences.
Use cases
Streaming video content
Adaptive bitrate playback
Custom video UIs
Offline video playback
Live video streaming
Key features
Support for multiple video formats
Built-in controls and gestures
Extensible widget system
Low-latency playback
Integration with HLS and DASH
Suitable for
Video-heavy applications
Educational platforms
Media streaming services
On-demand video apps
Live event broadcasting
Considerations
Requires additional setup for advanced features
Limited platform-specific customization
Depends on external dependencies
May increase app size
Needs proper handling of network permissions
Original README
Original README snapshot from the linked source repository. Visit the repository for the latest content.
Better Player
Better Player handles the complex video playback edge cases so you don't have to. Originally based on video_player, it's now fully independent. It tackles HLS, DRM, and caching out of the box.
[IMPORTANT] Migrating from 0.0.84 to 1.x.x?
See the Migration Guides section below.
📱 Visual Showcase
Default Controls
Settings Menu
Audio Tracks
Event Listener
🏆 vs Competitors
Why choose Better Player? Here is how it stacks up against the alternatives.
Feature
Better Player
video_player
chewie
media_kit
Engine
ExoPlayer/AVPlayer/Shaka
ExoPlayer/AVPlayer
video_player
libmpv
UI Controls
✅ Built-in & Customizable
❌ None
✅ Built-in
✅ Built-in
HLS / DASH
✅ Native
⚠️ Basic
⚠️ Basic
✅ Native
DRM Support
✅ Widevine/FairPlay/ClearKey
❌ None
❌ None
❌ None
Subtitles
✅ Advanced (WebVTT, HTML, SRT)
⚠️ Basic (SRT only)
⚠️ Basic
✅ Advanced
Caching
✅ Built-in
❌ None
❌ None
❌ None
Playlists
✅ Built-in
❌ None
❌ None
✅ Built-in
🚀 Key Features
Adaptive Streaming: Play HLS, DASH, and Smooth Streaming with automatic track selection.
DRM Support: Protect your content with Widevine, FairPlay, and ClearKey.
Smart Caching: Cache videos for seamless offline playback.
Picture in Picture (PiP): Keep videos playing while users multitask.
Advanced Subtitles: Parse SRT and WebVTT, including HTML tags.
📦 Quick Start
1. Add dependency
Add Better Player to your pubspec.yaml:
dependencies:better_player:^1.10.0
2. Basic Usage
Use the network factory to get a player up and running fast.