Vai al contenuto

Per iniziare

GitHub

Puoi usare il nostro setup assistito dall'IA per installare il plugin. Aggiungi le skill Capgo al tuo strumento di IA usando il seguente comando:

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

Poi usa il seguente prompt:

Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/capacitor-ffmpeg` plugin in my project.

Se preferisci la configurazione manuale, installa il plugin eseguendo questi comandi e segui le istruzioni specifiche per piattaforma qui sotto:

Finestra del terminale
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: rimuovi gli handle quando gli schermi vengono smontati.
  • Sync nativo: esegui npx cap sync dopo gli aggiornamenti dei plugin.
  • Fonte di verità: fidati src/definitions.ts nel repo GitHub.

Restituisce la matrice delle capacità in formato machine-readable per la piattaforma corrente.

import { CapacitorFFmpeg } from '@capgo/capacitor-ffmpeg';
const result = await CapacitorFFmpeg.getCapabilities();
console.log(result);

Metti in coda un job di re-encoding video.

Su iOS, la promise restituita viene risolta quando il layer nativo accetta il job. Il successo o il fallimento finale viene comunicato tramite il progress listener manuale.

Android e web attualmente rifiutano con 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);

Converti un'immagine statica in un altro formato.

iOS supporta attualmente jpeg e .png. Android supporta attualmente .webp, jpeg, e .png. Al momento il web restituisce un errore: 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);

Converti l'audio in un altro container o codec.

iOS supporta attualmente m4a. Android e web al momento restituiscono un errore: 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';

Questa pagina è generata dal src/definitions.ts. Riesegui la sync quando il API pubblico cambia upstream.

Se stai usando Per iniziare per pianificare le operazioni della dashboard e di API, collegalo a Utilizzo di @capgo/capacitor-ffmpeg per la funzionalità nativa in Utilizzo di @capgo/capacitor-ffmpeg, Panoramica API per i dettagli di implementazione in Panoramica di API, Introduzione per i dettagli di implementazione in Introduzione, Chiavi API per i dettagli di implementazione in Chiavi API, e Dispositivi per i dettagli di implementazione in Dispositivi.