[navigation]
TL;DR:
- The best video player libraries for Flutter include Banuba Video Editor SDK, video player, and video viewer;
- See the instructions below if you want to integrate one.
1. Banuba Video Editor SDK
Unlike many other commercial video editing SDKs (e.g. Meicam and Very SDK), Banuba has a Flutter video player and editor in one convenient package. It is mostly focused on making short-form content for social networks like TikTok or Likee, as well as a popular Stories format.
Banuba Video Editor SDK has an extensive feature set:
- Video/audio recording
- Hands-free mode
- Sound editing
- Royalty-free music provider integration
- AR masks
- Color filters
- Transition effects
- Rapid/slo-mo
- Text/picture/GIF overlays
- Picture-in-picture mode
- Etc.
Picture-in-picture mode in Banuba Video Editor SDK
It is also fully compatible with Banuba Face AR SDK that provides AR features for live streaming, video conferencing, etc.
For developers that need a more customizable Flutter video player, this SDK has an API version. It has fewer features, but much more flexibility.
Differences between Video Editor SDK and API
How to integrate a Flutter video player
Integrating it is simple and straightforward.
The first step is to request the SDK/API and a trial token. Message Banuba through a contact form, and you’ll get the archive with everything you need within 24 hrs. The trial lasts 14 days, so you’ll have plenty of time to test everything before you commit to purchasing a license.
The next step is installation.
- Run flutter pub get in terminal to load dependencies.
- Set Banuba license token within the app.
Run on Android
- Run flutter run in terminal to launch the sample app on a device or launch the app in IDE.
- Check out Android quickstart guide to quickly integrate Android Video Editor SDK into your Flutter project.
Run on iOS
- Install CocoaPods dependencies. Open the ios directory and run pod install in the terminal.
- Open the Signing & Capabilities tab in the Target settings and select your Development Team.
- Run flutter run in the terminal to launch the sample on a device or launch the app in the IDE
- See the iOS quickstart guide to quickly integrate iOS Video Editor SDK into your Flutter project.
2. Video player
Video_player is an aptly named open-source library for playing videos. It is compatible with iOS, Android, and Web (although it has some limitations in browsers). Video_player is easy to use and easy to integrate, which is an advantage. However, it doesn’t offer many additional features beyond video playback speed.
3. Video viewer
Video_viewer is another minimalistic open-source video player package for Flutter. Unlike the previous entry, however, it boasts many additional functionalities:
- Fancy animations.
- Streaming Chat
- Custom Ads Support.
- Fully customizable.
- HLS (m3u8) format support.
- Captions (Subtitles) support.
- Cut the video (It just will show a specific time of the video)
It is very friendly to both developers and end-users. On the one hand, it is easy to integrate. On the other, it has intuitive interface and various video options (quality, playback speed, etc.).
However, Video_viewer doesn’t support iOS emulators, so testing apps with it could be a little mor tedious.
4. Native video view
Native_video_view is a library that uses native players on iOS and Android to show videos. It is simple, well-documented, and easy to use. However, if you are looking for something with more features, you’d do well to choose another library or SDK.
5. Img.ly
Img.ly is another commercial SDK for video playback and modification. It is much more feature-rich than the simple player libraries. This is what it has:
- Trimming, cropping, rotation
- Text overlays
- Brightness and contrast settings
- Depth and focus
- Filters and effects
However, it also requires a commercial license, if you want to use it in an app with any form of monetization (including freemiums and any in-app purchases).
6. IQPlayer
IQPlayer is a free open-source library for Flutter. It allows video playback and supports subtitles in the VTT format. The MIT license allows you to freely use and modify it, so it can serve as a good foundation for a more expansive video player/editor. However, at the moment it is too barebones even compared to other free entries on this list.
7. Flutter Torrent Streamer
Flutter Torrent Streamer is an interesting open-source project. It is a Flutter video player for streaming content via magnet links and torrent protocol. This is a rare library that adds a unique feature to a project. However, it is still in development, and so far it supports only the Android platform. Worth looking at if you want to enable P2P streaming and aren’t averse to modifying something else’s project.
8. Flick video player
Flick is a video player package for Flutter. It gives a low-level access to the playback functionality and is intended to serve as a foundation for more complex versions. However, it already has a few interesting things going for it:
- Double tap to seek video.
- On video tap play/pause, mute/unmute, or perform any action on video.
- Auto hide controls.
- Custom animations.
- Custom controls for normal and fullscreen.
- Auto-play list of videos.
- Change playback speed.
- Keyboard shortcuts for web
9. Flutter VLC player
Flutter VLC player is a VLC-based alternative to the regular Flutter video player (see item 2 on this list). It is free, thoroughly documented, and even supports playing two videos on the same screen. There are people working on improving it, so expect this player to get better with time.
10. Neeko
Neeko is a simple, convenient video player widget. The team behind it strives to keep it up to date and maintain good documentation. However, it is distributed under a Mulan PSL v1, not the more common MIT license. So check with the legal counsel before you commit to using this library.
Conclusion
There are many Flutter video players. However, most are minimalistic open-source libraries designed just to open files and, maybe, some display options. For a more feature-rich solution that enable video editing, as well as playback, check out commercial SDKs like Banuba Video Editor SDK.