WIP
A Flutter application for parsing GoPro GPMF data. This library provides functionality to extract and parse GPMF (GoPro Metadata Format) data from GoPro video files.
Note: Currently, only Linux and Android platforms have been thoroughly tested. Other platforms may work but are not officially supported yet.
- Flutter SDK (>=3.2.3)
- CMake (>=3.10)
- Android SDK and NDK (for Android builds)
- A C compiler (gcc/clang for Linux, NDK toolchain for Android)
-
Clone the repository:
git clone https://github.com/yourusername/flutter_gpmf_parser.git cd flutter_gpmf_parser
-
Get Flutter dependencies:
flutter pub get
-
Build the native library:
mkdir -p build/linux cd build/linux cmake ../.. make
-
Run the tests:
flutter test
-
Make sure you have Android SDK and NDK installed and properly configured in your environment.
-
Set up local.properties in the android folder with your SDK and NDK paths:
sdk.dir=/path/to/your/Android/sdk ndk.dir=/path/to/your/Android/sdk/ndk/version
-
Build the APK:
flutter build apk
This will automatically build the native library using CMake and package it with the APK.
-
Add the dependency to your
pubspec.yaml
:dependencies: flutter_gpmf_parser: git: url: https://github.com/yourusername/flutter_gpmf_parser.git
-
Import and use in your code:
import 'package:flutter_gpmf_parser/src/gopro_telemetry_extractor.dart'; // Initialize the extractor final extractor = GoProTelemetryExtractor(); // Extract data from a video file final telemetryData = await extractor.extractTelemetry('path/to/video.mp4');
The repository includes a sample application demonstrating the usage of the library:
-
Run the sample app:
flutter run
-
Use the file picker to select a GoPro video file
-
The app will extract and display the GPMF metadata
Platform | Status | Notes |
---|---|---|
Linux | ✅ Tested | Primary development platform |
Android | ✅ Tested | Tested on various devices |
iOS | Should work but needs testing | |
Windows | Should work but needs testing | |
macOS | Should work but needs testing | |
Web | ❌ N/A | Native code not supported on web platform |
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
[Add your license information here]
This project is a starting point for a Flutter application.
A few resources to get you started if this is your first Flutter project:
For help getting started with Flutter development, view the online documentation, which offers tutorials, samples, guidance on mobile development, and a full API reference.