メインコンテンツへスキップ

はじめに

GitHub

AIアシストセットアップを使ってプラグインをインストールできます。以下のコマンドで、お使いのAIツールに Capgo スキルを追加してください:

ターミナルウィンドウ
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-plugins

次に、以下のプロンプトを使用します:

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

手動セットアップを希望する場合は、以下のコマンドでプラグインをインストールし、下記のプラットフォーム別の手順に従ってください:

ターミナルウィンドウ
npm install @capgo/capacitor-ffmpeg
npx cap sync
import { CapacitorFFmpeg } from '@capgo/capacitor-ffmpeg';

クイックスタート

「Quick start」セクション
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);

よくある落とし穴

「Common pitfalls」セクション
  • リスナー: 画面のアンマウント時にハンドルを削除します。
  • ネイティブ同期: 実行 npx cap sync プラグインのアップグレード後。
  • 信頼できる情報源: 信頼する src/definitions.ts GitHub リポジトリ内に

現在のプラットフォームにおける、マシンリーダブルな機能マトリックスを返します。

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

ビデオの再エンコードジョブをキューに追加します。

iOSでは、ネイティブレイヤーがジョブを受け付けるとPromiseが解決されます。 最終的な成功または失敗の結果は、以下の 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);

静止画を別のフォーマットに変換します。

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

オーディオを別のコンテナまたはコーデックに変換します。

現在、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);
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';

このページはプラグインの src/definitions.tsから生成されています。上流で公開 API が変更されたら、sync を再実行してください。

以下を使用している場合: はじめに ダッシュボードと API の操作を計画するには、以下と連携してください @capgo/capacitor-ffmpeg の使用方法 @capgo/capacitor-ffmpeg でネイティブ機能を使用する場合、 API の概要 API Overview の実装の詳細については、 はじめに Introduction の実装の詳細については、 API キー API Keys の実装の詳細については、 デバイス Devices の実装の詳細については。