すべてのプロダクト
Search
ドキュメントセンター

ApsaraVideo VOD:ビデオトリミング

最終更新日:Mar 12, 2025

ショートビデオSDKにはトリミングモジュールがあり、ビデオをデュレーションとアスペクト比でトリミングしたり、オーディオをデュレーションでトリミングしたり、画像をアスペクト比でトリミングしたりできます。 このトピックでは、iOS用のショートビデオSDKを使用してビデオをトリミングする方法について説明します。

サポートされているエディション

エディション対応
Professional必須
標準モード必須
基本必須

関連クラス

分類説明
AliyunCropビデオとオーディオのトリミング、トリミングパラメーター設定、コールバック設定など、オーディオとビデオのトリミング機能を定義するコアクラス。
AliyunImageCrop画像のトリミング、トリミングパラメーター設定、コールバック設定など、画像のトリミング機能を定義するコアクラス。
重要 オーディオとビデオは非同期でトリミングされます。 AliyunCropインスタンスのオブジェクトは、ローカル変数ではなくメンバー変数である必要があります。 トリミング中に背景に切り替えると、トリミングは失敗します。

ビデオのトリミング-定期的なトリミング

ビデオは、通常のクロッピング中に再び符号化および復号される。 出力解像度、ビットレート、フレームレート、キーフレーム間隔、エンコード形式、ビデオ品質など、出力ビデオのパラメーターを設定できます。

AliyunCrop操作パラメーターの詳細については、

初期化の実行
// 初期化メソッドを呼び出して、トリミングオブジェクトを作成します。
self.crop = [[AliyunCrop alloc] initWithDelegate:self];
入力パス、出力パス、およびトリミング期間の設定
// ビデオの入力パスと出力パスを指定します。
self.crop.inputPath = [self.class resourcePath:@ "input.mp4"];
self.crop.outputPath = [self.class resourcePath:@ "output.mp4"];

// トリミングの開始と終了の時点を指定します。 (単位:秒)
self.crop.startTime = 0.0;
self.crop.endTime = 5.0;
説明 出力ファイルのパスがマルチレベルディレクトリの場合は, 必ずディレクトリを作成してください。
トリミングパラメーターの設定
// 出力ビデオの解像度を指定します。
self.crop.outputSize = CGSizeMake(720、720);

// トリミングエリアを指定します。
self.crop.rect = CGRectMake(0, (1280-720) / 2, 720, 720);

// トリミングモードを指定します。
self.crop.cropMode = AliyunCropModeScaleAspectCut;

// ビットレートを指定します。 単位:bit/s。
self.crop.bitrate = 1000*1000;

// フレームレートを指定します。
self.cropl.fps = 30;

// キーフレーム間隔を指定します。
self.crop.gop = 90;

// ビデオ品質を指定します。
self.crop.videoQuality = AliyunVideoQualityHight;

// エンコードモードをハードウェアエンコードに設定します。
self.crop.encodeMode = 1;
トリミングを開始
[self.crop startCrop]; 
トリミングコールバックの設定
// トリミング中にエラーが発生した場合に返されるコールバック。
- (void)cropOnError :( int)error {
}
 
 // トリミングの進行状況のコールバック。
- (void)cropTaskOnProgress :( float)progress {
}

// トリミングが完了したときに返されるコールバック。
- (void)cropTaskOnComplete {
}

// トリミングがキャンセルされたときに返されるコールバック。
- (void)cropTaskOnCancel {
}

ビデオトリミング-高速トリミング

ビデオは、高速クロッピング中に再び符号化および復号されない。 ビデオを指定した期間にトリミングできますが、他のパラメーターは設定できません。

AliyunCrop操作パラメーターの詳細については、

初期化の実行
// 初期化メソッドを呼び出して、トリミングオブジェクトを作成します。
self.crop = [[AliyunCrop alloc] initWithDelegate:self];
高速トリミングの有効化
// クロッピングの最適化を有効にして、高速クロッピングを可能にします。
self.crop.shouldOptimize = YES;
入力パス、出力パス、およびトリミング期間の設定
// ビデオの入力パスと出力パスを指定します。
self.crop.inputPath = [self.class resourcePath:@ "input.mp4"];
self.crop.outputPath = [self.class resourcePath:@ "output.mp4"];

// トリミングの開始と終了の時点を指定します。
self.crop.startTime = 0.0;
self.crop.endTime = 5.0;
説明 出力ファイルのパスがマルチレベルディレクトリの場合は, 必ずディレクトリを作成してください。
トリミングを開始
[self.crop startCrop]; 
トリミングコールバックの設定
// トリミング中にエラーが発生した場合に返されるコールバック。
- (void)cropOnError :( int)error {
}
 
 // トリミングの進行状況のコールバック。
- (void)cropTaskOnProgress :( float)progress {
}

// トリミングが完了したときに返されるコールバック。
- (void)cropTaskOnComplete {
}

// トリミングがキャンセルされたときに返されるコールバック。
- (void)cropTaskOnCancel {
}

オーディオトリミング

AliyunCrop操作パラメーターの詳細については、

初期化の実行
// 初期化メソッドを呼び出して、トリミングオブジェクトを作成します。
self.crop = [[AliyunCrop alloc] initWithDelegate:self];
入力パス、出力パス、およびトリミング期間の設定
// オーディオファイルの入力パスと出力パスを指定します。
self.crop.inputPath = [self.class resourcePath:@ "input.mp3"];
self.crop.outputPath = [self.class resourcePath:@ "output.mp3"];

// トリミングの開始と終了の時点を指定します。 (単位:秒)
self.crop.startTime = 0.0;
self.crop.endTime = 5.0;
説明 出力ファイルのパスがマルチレベルディレクトリの場合は, 必ずディレクトリを作成してください。
トリミングを開始
[self.crop startCrop]; 
トリミングコールバックの設定
// トリミング中にエラーが発生した場合に返されるコールバック。
- (void)cropOnError :( int)error {
}
 
 // トリミングの進行状況のコールバック。
- (void)cropTaskOnProgress :( float)progress {
}

// トリミングが完了したときに返されるコールバック。
- (void)cropTaskOnComplete {
}

// トリミングがキャンセルされたときに返されるコールバック。
- (void)cropTaskOnCancel {
}

画像のトリミング

AliyunImageCrop操作パラメーターの詳細については、

初期化の実行
// 初期化メソッドを呼び出して、トリミングオブジェクトを作成します。
AliyunImageCrop * imageCrop = [[AliyunImageCrop alloc] init];
入力イメージの指定
imageCrop.originImage=イメージ;
トリミングパラメーターの設定
// 出力画像の解像度を指定します。
imageCrop.outputSize = CGSizeMake(200、200);
// (オプション) トリミングエリアを指定します。 単位: ピクセル。
imageCrop.cropRect = CGRectMake(50、0、200、200);
// (オプション) 画像のトリミングモードを指定します。
imageCrop.cropMode = AliyunImageCropModeAspectCut;
トリミングを開始してトリミング画像を生成する
UIImage * outputImage = [imageCrop generateImage];