快速入门
复制一条配置 prompt,包含安装步骤和该插件的完整 Markdown 指南。
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 listener.
Android 和 Web 端目前会 reject,错误信息为 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 时,获取 Native Build 能力: API 概览 关于 API 概览中的实现细节, 简介 有关 Introduction 中的实现细节, API 密钥 有关 API Keys 中的实现细节,以及 设备 有关 Devices 中的实现细节。