Cross-platform Dart SDK for iOS & Android
Available on pub.dev
pub.dev/packages/turbina_sdkRequirements
Add Turbina SDK to your pubspec.yaml:
dependencies:
turbina_sdk: ^1.0.0Install dependencies:
flutter pub getimport 'package:turbina_sdk/turbina_sdk.dart';
final turbina = TurbinaSDK();
// Initialize with your license
await turbina.initialize(TurbinaConfig(
licenseKey: 'your_license_key_here',
appId: 'com.yourcompany.yourapp',
debug: true,
));// Start camera
await turbina.startCamera(CameraConfig(
facing: CameraFacing.front,
resolution: CameraResolution.high,
fps: 30,
));
// Apply a filter
await turbina.applyFilter(FilterType.cinematic, 0.8);
// Switch camera
await turbina.switchCamera();// Start recording
await turbina.startRecording(
'output.mp4',
RecordingConfig(
codec: VideoCodec.h264,
bitrate: 5000000, // 5 Mbps
quality: 80,
),
);
// Stop recording
final outputPath = await turbina.stopRecording();
print('Video saved: $outputPath');// Trim video
await turbina.trimVideo(
inputPath: 'input.mp4',
outputPath: 'output.mp4',
startTime: 5.0,
endTime: 15.0,
);
// Merge videos
await turbina.mergeVideos(
inputPaths: ['video1.mp4', 'video2.mp4'],
outputPath: 'merged.mp4',
);
// Add music
await turbina.addMusic(
videoPath: 'video.mp4',
audioPath: 'music.mp3',
outputPath: 'output.mp4',
volume: 0.5,
fadeIn: 2.0,
fadeOut: 2.0,
);Complete camera widget with built-in controls:
TurbinaCamera(
showControls: true,
showFilterButton: true,
showEffectButton: true,
showRecordButton: true,
onCameraReady: () => print('Ready!'),
)Complete video editing interface:
VideoEditor(
videoPath: '/path/to/video.mp4',
onExportComplete: (path) => print('Exported: $path'),
)platform :ios, '13.0'
# Add if needed
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '13.0'
end
end
endandroid {
defaultConfig {
minSdkVersion 24 // Required
targetSdkVersion 34
}
}