Platform Setup Overview¶
Configure FFmpeg for your target platform
Fluvie requires FFmpeg to encode video output. This guide covers how to set up FFmpeg for each supported platform.
Table of Contents¶
- Supported Platforms
- Quick Start
- Checking FFmpeg Availability
- Custom FFmpeg Path
- Platform-Specific Guides
Supported Platforms¶
| Platform | Provider | Setup Required | Notes |
|---|---|---|---|
| Linux | ProcessFFmpegProvider | Install FFmpeg via package manager | Best performance |
| macOS | ProcessFFmpegProvider | Install FFmpeg via Homebrew | Best performance |
| Windows | ProcessFFmpegProvider | Download FFmpeg and add to PATH | Best performance |
| Web | WasmFFmpegProvider | Add CORS headers to server | ~50% slower than native |
| Android | Custom (FFmpegKit) | Add ffmpeg_kit_flutter dependency | +8-35MB app size |
| iOS | Custom (FFmpegKit) | Add ffmpeg_kit_flutter dependency | +8-35MB app size |
Quick Start¶
Desktop (Linux, macOS, Windows)¶
FFmpeg must be installed and available in your system PATH:
# Linux
sudo apt install ffmpeg
# macOS
brew install ffmpeg
# Windows - Download from ffmpeg.org and add to PATH
Web¶
No installation needed - Fluvie uses ffmpeg.wasm automatically. However, your server must send these headers:
Mobile (Android/iOS)¶
Mobile platforms require a custom FFmpeg provider. We recommend using FFmpegKit:
// In your app's main.dart
import 'package:fluvie/fluvie.dart';
import 'your_ffmpeg_kit_provider.dart';
void main() {
FFmpegProviderRegistry.setProvider(FFmpegKitProvider());
runApp(MyApp());
}
Checking FFmpeg Availability¶
Use FFmpegChecker to verify setup:
import 'package:fluvie/fluvie.dart';
void checkSetup() async {
final diagnostics = await FFmpegChecker.check();
if (diagnostics.isAvailable) {
print('FFmpeg ready: ${diagnostics.providerName}');
} else {
print('FFmpeg not found: ${diagnostics.errorMessage}');
print(diagnostics.installationInstructions);
}
}
Custom FFmpeg Path¶
If FFmpeg is installed in a non-standard location:
void main() {
FluvieConfig.configure(
ffmpegPath: '/opt/ffmpeg/bin/ffmpeg',
ffprobePath: '/opt/ffmpeg/bin/ffprobe',
);
runApp(MyApp());
}
Platform-Specific Guides¶
| Guide | Platform | Description |
|---|---|---|
| Linux Setup | Ubuntu, Fedora, Arch | Package manager installation |
| macOS Setup | macOS 10.15+ | Homebrew installation, code signing |
| Windows Setup | Windows 10/11 | Manual or Chocolatey installation |
| Web Setup | Browsers | CORS configuration for ffmpeg.wasm |
| Mobile Setup | Android/iOS | FFmpegKit integration |
Related¶
- Getting Started - First steps with Fluvie
- FFmpeg Setup - Detailed FFmpeg guide
- Custom FFmpeg Provider - Custom integrations
- Server Mode - Server-only rendering