Primeros pasos
Copia un prompt de configuración con los pasos de instalación y la guía completa en markdown para este 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.
Instalar
Sección titulada “Instalación”Puedes usar nuestro setup asistido por IA para instalar el plugin. Añade las skills de Capgo a tu herramienta de IA con el siguiente comando:
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-pluginsLuego usa el siguiente prompt:
Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/capacitor-ffmpeg` plugin in my project.Si prefieres la configuración manual, instala el plugin ejecutando los siguientes comandos y sigue las instrucciones específicas para cada plataforma a continuación:
npm install @capgo/capacitor-ffmpegnpx cap syncImportar
Sección titulada “Importar”import { CapacitorFFmpeg } from '@capgo/capacitor-ffmpeg';Inicio rápido
Sección titulada “Inicio rápido”import { CapacitorFFmpeg } from '@capgo/capacitor-ffmpeg';
const result = await CapacitorFFmpeg.getCapabilities();console.log(result);Ejemplo: reencodeVideo
Sección titulada “Ejemplo: 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();Ejemplo: convertImage
Sección titulada “Ejemplo: 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);Errores comunes
Sección titulada “Errores comunes”- Listeners: eliminar los handles al desmontar las pantallas.
- Sync nativo: ejecutar
npx cap synctras actualizar los plugins. - Fuente de verdad: confiar
src/definitions.tsen el repo de GitHub.
Resumen de API
Sección titulada “Descripción general de API”getCapabilities
Sección titulada “getCapabilities”Devuelve la matriz de capacidades legible por máquina para la plataforma actual.
import { CapacitorFFmpeg } from '@capgo/capacitor-ffmpeg';
const result = await CapacitorFFmpeg.getCapabilities();console.log(result);reencodeVideo
Sección titulada “reencodeVideo”Encola un trabajo de re-codificación de video.
En iOS, la promesa se resuelve cuando la capa nativa acepta el trabajo.
El resultado final (éxito o error) se recibe a través del progress listener.
Android y web actualmente devuelven un error 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);convertImage
Sección titulada “convertImage”Convierte una imagen estática a otro formato.
iOS actualmente soporta jpeg y .png.
Android actualmente soporta .webp, jpeg, y .png.
La web actualmente devuelve un error: 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
Sección titulada “convertAudio”Convierte audio a otro contenedor o codec.
iOS actualmente es compatible con m4a.
Android y la web actualmente dan error: 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);Referencia de tipos
Sección titulada “Referencia de tipos”FFmpegCapabilitiesResult
Sección titulada “FFmpegCapabilitiesResult”export interface FFmpegCapabilitiesResult { platform: string; features: FFmpegCapabilitiesFeatures;}ReencodeVideoOptions
Sección titulada “ReencodeVideoOptions”export interface ReencodeVideoOptions { inputPath: string; outputPath: string; width: number; height: number; bitrate?: number;}FFmpegAcceptedJob
Sección titulada “FFmpegAcceptedJob”export interface FFmpegAcceptedJob { jobId: string; status: 'queued';}ConvertImageOptions
Sección titulada “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
Sección titulada “ConvertImageResult”export interface ConvertImageResult { outputPath: string; format: ImageOutputFormat;}ConvertAudioOptions
Sección titulada “ConvertAudioOptions”export interface ConvertAudioOptions { inputPath: string; outputPath: string; format: AudioOutputFormat;}ConvertAudioResult
Sección titulada “ConvertAudioResult”export interface ConvertAudioResult { outputPath: string; format: AudioOutputFormat;}FFmpegProgressEvent
Sección titulada “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
Sección titulada “PluginVersionResult”export interface PluginVersionResult { version: string;}FFmpegCapabilitiesFeatures
Sección titulada “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
Sección titulada “ImageOutputFormat”export type ImageOutputFormat = '.webp' | 'jpeg' | '.png';AudioOutputFormat
Sección titulada “AudioOutputFormat”export type AudioOutputFormat = 'm4a';Fuente de verdad
Sección titulada “Fuente de verdad”Esta página se genera a partir del src/definitions.ts. Vuelve a ejecutar el sync cuando el API público cambie en el upstream.
Continúa desde Primeros pasos
Sección titulada “Continúa desde Primeros pasos”Si estás usando Primeros pasos para planificar el dashboard y las operaciones de API, conéctalo con Usando @capgo/capacitor-ffmpeg para la capacidad nativa en Usando @capgo/capacitor-ffmpeg, Resumen de API para el detalle de implementación en Resumen de API Overview, Introducción para el detalle de implementación en Introducción, Claves de API para el detalle de implementación en Claves de API, y Dispositivos para el detalle de implementación en Dispositivos.