Erste Schritte
Kopiere einen Setup-Prompt mit den Installationsschritten und dem vollständigen Markdown-Guide für dieses Plugin.
Set up this Capacitor plugin in the project.
Use the package manager already used by the project.
Install these package(s): `@capgo/capacitor-ffmpeg`
Run the required Capacitor sync/update step after installation.
Read this markdown guide for the full setup steps: https://raw.githubusercontent.com/Cap-go/website/refs/heads/main/apps/docs/src/content/docs/docs/plugins/ffmpeg/getting-started.mdx
Use that guide for platform-specific steps, native file edits, permissions, config changes, imports, and usage setup.
If that guide references other docs pages, read them too.
Installieren
Abschnitt „Installation“Du kannst unser KI-gestütztes Setup nutzen, um das Plugin zu installieren. Füge die Capgo Skills mit dem folgenden Befehl deinem KI-Tool hinzu:
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-pluginsNutze dann diesen Prompt:
Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/capacitor-ffmpeg` plugin in my project.Wenn du ein manuelles Setup bevorzugst, installiere das Plugin mit den folgenden Befehlen und befolge die plattformspezifischen Anweisungen unten:
npm install @capgo/capacitor-ffmpegnpx cap syncImportieren
Abschnitt mit dem Titel „Import“import { CapacitorFFmpeg } from '@capgo/capacitor-ffmpeg';Quickstart
Abschnitt „Quick start“import { CapacitorFFmpeg } from '@capgo/capacitor-ffmpeg';
const result = await CapacitorFFmpeg.getCapabilities();console.log(result);Beispiel: reencodeVideo
Abschnitt mit dem Titel „Beispiel: reencodeVideo“import { CapacitorFFmpeg } from '@capgo/capacitor-ffmpeg';
const progressListener = await CapacitorFFmpeg.addListener('progress', ({ progress }) => { console.log('Encode progress', progress);});
const job = await CapacitorFFmpeg.reencodeVideo({ inputPath: 'path/to/file', outputPath: 'path/to/file', width: 1080, height: 1920,});// Job acceptance only; wait for progress/completion listeners before using the output file.console.log(job);
await progressListener.remove();Beispiel: convertImage
Abschnitt mit dem Titel „Beispiel: convertImage“import { CapacitorFFmpeg } from '@capgo/capacitor-ffmpeg';
const result = await CapacitorFFmpeg.convertImage({ inputPath: 'path/to/file', outputPath: 'path/to/file', format: 'jpeg',});console.log(result);Häufige Stolperfallen
Abschnitt „Häufige Fallstricke“- Listener: Handles beim Unmounten von Screens entfernen.
- Nativer Sync: ausführen
npx cap syncnach Plugin-Upgrades. - Single Source of Truth: Vertrauen
src/definitions.tsim GitHub Repo.
API Übersicht
Abschnitt „API Übersicht“getCapabilities
Abschnitt mit dem Titel „getCapabilities“Gibt die maschinenlesbare Capability-Matrix für die aktuelle Plattform zurück.
import { CapacitorFFmpeg } from '@capgo/capacitor-ffmpeg';
const result = await CapacitorFFmpeg.getCapabilities();console.log(result);reencodeVideo
Abschnitt „reencodeVideo“Einen Video-Reencode-Job in die Warteschlange stellen.
Unter iOS wird das zurückgegebene Promise aufgelöst, sobald der Native-Layer den Job akzeptiert.
Der endgültige Erfolg oder Fehler wird über den progress Listener.
Android und Web lehnen derzeit mit UNIMPLEMENTED.
import { CapacitorFFmpeg } from '@capgo/capacitor-ffmpeg';
const result = await CapacitorFFmpeg.reencodeVideo({ inputPath: 'path/to/file', outputPath: 'path/to/file', width: 1080, height: 1920,});console.log(result);convertImage
Abschnitt „convertImage“Ein Standbild in ein anderes Format konvertieren.
iOS unterstützt derzeit jpeg und .png.
Android unterstützt derzeit .webp, jpeg, und .png.
Web lehnt derzeit ab mit UNIMPLEMENTED.
import { CapacitorFFmpeg } from '@capgo/capacitor-ffmpeg';
const result = await CapacitorFFmpeg.convertImage({ inputPath: 'path/to/file', outputPath: 'path/to/file', format: 'webp',});console.log(result);convertAudio
Abschnitt mit dem Titel „convertAudio“Audio in einen anderen Container oder Codec konvertieren.
iOS unterstützt derzeit m4a.
Android und Web lehnen derzeit ab mit UNIMPLEMENTED.
import { CapacitorFFmpeg } from '@capgo/capacitor-ffmpeg';
const result = await CapacitorFFmpeg.convertAudio({ inputPath: 'path/to/file', outputPath: 'path/to/file', format: 'm4a',});console.log(result);Typreferenz
Abschnitt mit dem Titel „Typreferenz“FFmpegCapabilitiesResult
Abschnitt mit dem Titel „FFmpegCapabilitiesResult“export interface FFmpegCapabilitiesResult { platform: string; features: FFmpegCapabilitiesFeatures;}ReencodeVideoOptions
Abschnitt mit dem Titel „ReencodeVideoOptions“export interface ReencodeVideoOptions { inputPath: string; outputPath: string; width: number; height: number; bitrate?: number;}FFmpegAcceptedJob
Abschnitt mit dem Titel „FFmpegAcceptedJob“export interface FFmpegAcceptedJob { jobId: string; status: 'queued';}ConvertImageOptions
Abschnitt mit dem Titel „ConvertImageOptions“export interface ConvertImageOptions { inputPath: string; outputPath: string; format: ImageOutputFormat; /** * Compression quality in the inclusive range `0.0..1.0`. * * Native platforms reject values outside that range. */ quality?: number;}ConvertImageResult
Abschnitt mit dem Titel „ConvertImageResult“export interface ConvertImageResult { outputPath: string; format: ImageOutputFormat;}ConvertAudioOptions
Abschnitt mit dem Titel „ConvertAudioOptions“export interface ConvertAudioOptions { inputPath: string; outputPath: string; format: AudioOutputFormat;}ConvertAudioResult
Abschnitt mit dem Titel „ConvertAudioResult“export interface ConvertAudioResult { outputPath: string; format: AudioOutputFormat;}FFmpegProgressEvent
Abschnitt „FFmpegProgressEvent“export interface FFmpegProgressEvent { jobId: string; /** * Normalized progress as a floating-point value in the inclusive range `0.0..1.0`. */ progress: number; state: FFmpegProgressState; message?: string; outputPath?: string; /** * Legacy alias kept for compatibility while callers migrate to `jobId`. */ fileId?: string;}PluginVersionResult
Abschnitt mit dem Titel „PluginVersionResult“export interface PluginVersionResult { version: string;}FFmpegCapabilitiesFeatures
Abschnitt „FFmpegCapabilitiesFeatures“export interface FFmpegCapabilitiesFeatures { getPluginVersion: FFmpegCapability; getCapabilities: FFmpegCapability; reencodeVideo: FFmpegCapability; convertImage: FFmpegCapability; convertAudio?: FFmpegCapability; progressEvents: FFmpegCapability; probeMedia: FFmpegCapability; generateThumbnail: FFmpegCapability; extractAudio: FFmpegCapability; remux: FFmpegCapability; trim: FFmpegCapability;}ImageOutputFormat
Abschnitt „ImageOutputFormat“export type ImageOutputFormat = '.webp' | 'jpeg' | '.png';AudioOutputFormat
Abschnitt „AudioOutputFormat“export type AudioOutputFormat = 'm4a';Source of Truth
Abschnitt mit dem Titel „Source of Truth“Diese Seite wird aus dem Plugin generiert src/definitions.ts. Führe den Sync erneut aus, wenn sich das öffentliche API upstream ändert.
Weiter geht's nach Getting Started
Abschnitt: „Weiter geht’s mit Getting Started“Wenn du es nutzt Erste Schritte um Dashboard- und API-Operationen zu planen, verbinde es mit Verwendung von @capgo/capacitor-ffmpeg für die native Funktion bei der Verwendung von @capgo/capacitor-ffmpeg, API Übersicht für Details zur Implementierung im API Overview, Einführung für die Implementierungsdetails in der Einleitung, API Schlüssel für das Implementierungsdetail in API Keys und Geräte für das Implementierungsdetail in Devices.