いくつかのフレームの間にオーディオとともにビデオファイルで「スローモーション」を実行する必要があり、ランプビデオを新しいビデオとして保存する必要があります。
参照: http://www.youtube.com/watch?v=BJ3_xMGzauk (0 から 10 までを見る)
私の分析から、AVFoundationフレームワークが役立つことがわかりました。
上記のリンクからコピーして貼り付けます:
" AV Foundation の編集では、コンポジションを使用して、既存のメディア (通常、1 つまたは複数のビデオおよびオーディオ トラック) から新しいアセットを作成します。変更可能なコンポジションを使用して、トラックを追加および削除し、それらの時間的な順序を調整します。オーディオ トラックのボリュームとランピング; ビデオ トラックの不透明度と不透明度ランプを設定します. コンポジションは、メモリに保持されたメディアの集合体です. エクスポート セッションを使用してコンポジションをエクスポートすると、ファイルに折りたたまれます. オンiOS 4.1 以降では、アセット ライターを使用して、サンプル バッファーや静止画像などのメディアからアセットを作成することもできます。
"
質問: AVFoundation フレームワークを使用してビデオ/オーディオ ファイルを「スロー モーション」できますか? または、利用可能な他のパッケージはありますか? オーディオとビデオを別々に処理したい場合は、どうすればよいですか?
更新 :: AV エクスポート セッションのコード:
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *outputURL = paths[0];
NSFileManager *manager = [NSFileManager defaultManager];
[manager createDirectoryAtPath:outputURL withIntermediateDirectories:YES attributes:nil error:nil];
outputURL = [outputURL stringByAppendingPathComponent:@"output.mp4"];
// Remove Existing File
[manager removeItemAtPath:outputURL error:nil];
AVAssetExportSession *exportSession = [[AVAssetExportSession alloc] initWithAsset:self.inputAsset presetName:AVAssetExportPresetLowQuality];
exportSession.outputURL = [NSURL fileURLWithPath:outputURL]; // output path;
exportSession.outputFileType = AVFileTypeQuickTimeMovie;
[exportSession exportAsynchronouslyWithCompletionHandler:^(void) {
if (exportSession.status == AVAssetExportSessionStatusCompleted) {
[self writeVideoToPhotoLibrary:[NSURL fileURLWithPath:outputURL]];
ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];
[library writeVideoAtPathToSavedPhotosAlbum:[NSURL fileURLWithPath:outputURL] completionBlock:^(NSURL *assetURL, NSError *error){
if (error) {
NSLog(@"Video could not be saved");
}
}];
} else {
NSLog(@"error: %@", [exportSession error]);
}
}];