flutter_native_video_trimmer 1.0.8
flutter_native_video_trimmer: ^1.0.8 copied to clipboard
A lightweight Flutter plugin for video manipulation using pure native code (Media3 for Android and AVFoundation for iOS). Efficiently trim videos, generate thumbnails, and retrieve video information w [...]
Flutter Native Video Trimmer #
A lightweight Flutter plugin for video manipulation that uses pure native implementations. Efficiently trim videos, generate thumbnails, and retrieve video information without any FFmpeg dependency.
Why choose this plugin? #
- ð No FFmpeg Dependency: Uses platform-native video processing capabilities instead of heavy FFmpeg libraries
- ðŠķ Lightweight: Smaller app size and faster processing compared to FFmpeg-based solutions
- âĄïļ Native Performance: Direct use of Media3 (Android) and AVFoundation (iOS) for optimal performance
- ðą Memory Efficient: Processes videos without loading entire files into memory
- ð Privacy Focused: All processing happens locally on the device
âĻ Features #
- ðž Video Loading: Load and process video files from any source
- âïļ Precise Trimming: Trim videos with millisecond precision
- ðžïļ Thumbnail Generation: Create high-quality thumbnails with customizable size
- âđïļ Metadata Extraction: Get comprehensive video information
- ð ïļ Native Implementation: Clean and efficient platform-specific code
ðĶ Installation #
Add this to your package's pubspec.yaml
file:
dependencies:
flutter_native_video_trimmer: ^1.0.8
Or install via command line:
flutter pub add flutter_native_video_trimmer
Or specify the exact version:
flutter pub add flutter_native_video_trimmer:1.0.8
Minimum Requirements #
- Flutter: 3.0.0 or higher
- Dart: 3.0.0 or higher
- Android: minSdkVersion 21 (Android 5.0)
- iOS: iOS 12.0 or higher
ð Usage #
Import #
import 'package:flutter_native_video_trimmer/flutter_native_video_trimmer.dart';
Initialize #
final videoTrimmer = VideoTrimmer();
Load a Video #
await videoTrimmer.loadVideo('/path/to/video.mp4');
Trim Video #
// Trim the first 5 seconds of the video
final trimmedPath = await videoTrimmer.trimVideo(
startTimeMs: 0, // Start time in milliseconds
endTimeMs: 5000, // End time in milliseconds (5 seconds)
);
Generate Thumbnail #
// Generate a thumbnail at 1 second mark
final thumbnailPath = await videoTrimmer.getVideoThumbnail(
positionMs: 1000, // Position in milliseconds
quality: 100, // Quality (0-100)
width: 640, // Optional width
height: 480, // Optional height
);
Get Video Information #
final videoInfo = await videoTrimmer.getVideoInfo();
print('Duration: ${videoInfo.durationMs}');
print('Width: ${videoInfo.width}');
print('Height: ${videoInfo.height}');
Example #
Check the example folder for a complete sample app demonstrating all features.
ðą Platform Support #
Platform | Implementation | Minimum Version | Status |
---|---|---|---|
Android | Media3 | API 21 (5.0) | â |
iOS | AVFoundation | iOS 12.0 | â |
ð ïļ Requirements #
Android #
- Minimum SDK: API 21 (Android 5.0)
- Target SDK: API 34
- Kotlin: 1.9.0
- AndroidX
iOS #
- Minimum iOS: 12.0
- Swift: 5.0
- Xcode: Latest version
ðĪ Contributing #
Contributions are always welcome! Here's how you can help:
- ð Report bugs by opening an issue
- ðĄ Suggest new features or improvements
- ð Improve documentation
- ð§ Submit pull requests
Development Process #
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
ð License #
This project is licensed under the MIT License - see the LICENSE file for details.
ð§ Author #
â Show Your Support #
If you find this plugin helpful, please give it a star on GitHub! It helps others discover the plugin and motivates me to keep improving it.