Zum Inhalt springen

Erste Schritte

GitHub

Du kannst unser KI-gestütztes Setup nutzen, um das Plugin zu installieren. Füge deinem KI-Tool die Capgo Skills mit folgendem Befehl hinzu:

Terminalfenster
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-plugins

Nutze 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:

Terminalfenster
npm install @capgo/capacitor-ffmpeg
npx cap sync
import { CapacitorFFmpeg } from '@capgo/capacitor-ffmpeg';
import { CapacitorFFmpeg } from '@capgo/capacitor-ffmpeg';
const result = await CapacitorFFmpeg.getCapabilities();
console.log(result);
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();
import { CapacitorFFmpeg } from '@capgo/capacitor-ffmpeg';
const result = await CapacitorFFmpeg.convertImage({
inputPath: 'path/to/file',
outputPath: 'path/to/file',
format: 'jpeg',
});
console.log(result);
  • Listener: Handles werden beim Unmount der Screens entfernt.
  • Native Sync: Ausführen npx cap sync nach Plugin-Upgrades.
  • Single Source of Truth: Vertrauen src/definitions.ts im GitHub Repo.

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);

Einen Video-Reencode-Job in die Queue stellen.

Unter iOS wird das 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);

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);

Convert audio into another container or codec.

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);
export interface FFmpegCapabilitiesResult {
platform: string;
features: FFmpegCapabilitiesFeatures;
}
export interface ReencodeVideoOptions {
inputPath: string;
outputPath: string;
width: number;
height: number;
bitrate?: number;
}
export interface FFmpegAcceptedJob {
jobId: string;
status: 'queued';
}
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;
}
export interface ConvertImageResult {
outputPath: string;
format: ImageOutputFormat;
}
export interface ConvertAudioOptions {
inputPath: string;
outputPath: string;
format: AudioOutputFormat;
}
export interface ConvertAudioResult {
outputPath: string;
format: AudioOutputFormat;
}
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;
}
export interface PluginVersionResult {
version: string;
}
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;
}
export type ImageOutputFormat = '.webp' | 'jpeg' | '.png';
export type AudioOutputFormat = 'm4a';

Diese Seite wird aus dem Plugin- src/definitions.tsFühre den Sync erneut aus, wenn sich der öffentliche API upstream ändert.

If you are using Erste Schritte um Dashboard- und API Operationen zu planen, verbinde es mit Verwendung von @capgo/capacitor-ffmpeg für die native Funktionalität in Verwendung von @capgo/capacitor-ffmpeg, API Übersicht für die Implementierungsdetails in API Übersicht, Einführung für die Implementierungsdetails in der Einleitung, API Keys für die Implementierungsdetails in API Keys und Geräte für die Implementierungsdetails bei Devices.