快速入门
复制包含安装步骤和该插件完整 Markdown 指南的配置 prompt。
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.
安装
“安装”章节你可以使用我们的 AI 辅助设置来安装插件。使用以下命令将 Capgo skills 添加到你的 AI 工具中:
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-plugins然后使用以下 prompt:
Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/capacitor-ffmpeg` plugin in my project.如果你更想手动设置,请运行以下命令安装插件,并按照下方各平台的说明操作:
npm install @capgo/capacitor-ffmpegnpx cap sync导入
“导入”章节import { CapacitorFFmpeg } from '@capgo/capacitor-ffmpeg';快速入门
章节标题为“快速入门”import { CapacitorFFmpeg } from '@capgo/capacitor-ffmpeg';
const result = await CapacitorFFmpeg.getCapabilities();console.log(result);示例:reencodeVideo
章节标题:“示例: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();示例:convertImage
章节标题:“示例: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);常见坑点
章节标题为“常见陷阱”- 监听器: 在页面卸载时移除句柄。
- 原生同步:运行
npx cap sync在插件升级后。 - 唯一可信来源:信任
src/definitions.ts在 GitHub 仓库中。
API 概览
章节标题:“API 概览”getCapabilities
标题为 “getCapabilities” 的章节返回当前平台的机器可读能力矩阵。
import { CapacitorFFmpeg } from '@capgo/capacitor-ffmpeg';
const result = await CapacitorFFmpeg.getCapabilities();console.log(result);reencodeVideo
标题为 “reencodeVideo” 的章节将视频转码任务加入队列。
在 iOS 上,当原生层接受任务时,返回的 promise 会 resolve。
最终的成败结果通过 progress 监听器相同。
Android 和 Web 目前会以 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
标题为 “convertImage” 的章节将静态图像转换为其他格式。
iOS 目前支持 jpeg 以及 .png。
Android 目前支持 .webp, jpeg,以及 .png。
Web 目前拒绝并返回 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
标题为“convertAudio”的章节将音频转换为其他封装格式或编解码器。
iOS 目前支持 m4a。
Android 和 Web 目前拒绝并返回 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);类型参考
“类型参考” 章节FFmpegCapabilitiesResult
标题为“FFmpegCapabilitiesResult”的章节export interface FFmpegCapabilitiesResult { platform: string; features: FFmpegCapabilitiesFeatures;}ReencodeVideoOptions
“ReencodeVideoOptions” 章节export interface ReencodeVideoOptions { inputPath: string; outputPath: string; width: number; height: number; bitrate?: number;}FFmpegAcceptedJob
“FFmpegAcceptedJob” 章节export interface FFmpegAcceptedJob { jobId: string; status: 'queued';}ConvertImageOptions
“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
“ConvertImageResult” 章节export interface ConvertImageResult { outputPath: string; format: ImageOutputFormat;}ConvertAudioOptions
“ConvertAudioOptions” 章节export interface ConvertAudioOptions { inputPath: string; outputPath: string; format: AudioOutputFormat;}ConvertAudioResult
“ConvertAudioResult” 章节export interface ConvertAudioResult { outputPath: string; format: AudioOutputFormat;}FFmpegProgressEvent
“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
标题为“PluginVersionResult”的章节export interface PluginVersionResult { version: string;}FFmpegCapabilitiesFeatures
“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
“ImageOutputFormat” 章节export type ImageOutputFormat = '.webp' | 'jpeg' | '.png';AudioOutputFormat
“AudioOutputFormat” 章节export type AudioOutputFormat = 'm4a';单一事实来源
标题为“单一事实来源”的部分本页面由插件的 src/definitions.ts生成。当上游的公共 API 发生变化时,请重新运行 sync。
从入门指南继续
“从入门指南继续”章节如果你正在使用 快速入门 要规划 dashboard 和 API 操作,请将其连接到 使用 @capgo/capacitor-ffmpeg 关于使用 @capgo/capacitor-ffmpeg 中的原生能力, API 概览 关于 API Overview 中的实现细节, 简介 关于 Introduction 中的实现细节, API 密钥 有关 API Keys 的实现细节,以及 设备 有关 Devices 的实现细节。