Tag: CIPAD avfoundation

如何在AVMutableComposition中使用scaleTimeRange?

我有一个关于在AVMutableComposition中缩放video长度的问题,以加快或减慢它的速度。 我知道这样做的代码是 scaleTimeRange:(CMTimeRange)timeRange toDuration:(CMTime)duration 问题是我不知道如何使用该代码。 我目前对我的作品有一个录制的video轨道和一个音轨提供。 有人可以告诉我如何添加这个来让我的video加速或减速? 这是我的代码: AVURLAsset* audioAsset = [[AVURLAsset alloc]initWithURL:audioURL options:nil]; AVURLAsset* videoAsset = [[AVURLAsset alloc]initWithURL:videoURL options:nil]; AVMutableComposition* mixComposition = [AVMutableComposition composition]; AVMutableCompositionTrack *compositionCommentaryTrack = [mixComposition addMutableTrackWithMediaType:AVMediaTypeAudio preferredTrackID:kCMPersistentTrackID_Invalid]; [compositionCommentaryTrack insertTimeRange:CMTimeRangeMake(kCMTimeZero, videoAsset.duration) ofTrack:[[audioAsset tracksWithMediaType:AVMediaTypeAudio] objectAtIndex:0] atTime:kCMTimeZero error:nil]; AVMutableCompositionTrack *compositionVideoTrack = [mixComposition addMutableTrackWithMediaType:AVMediaTypeVideo preferredTrackID:kCMPersistentTrackID_Invalid]; [compositionVideoTrack insertTimeRange:CMTimeRangeMake(kCMTimeZero, videoAsset.duration) ofTrack:[[videoAsset tracksWithMediaType:AVMediaTypeVideo] objectAtIndex:0] atTime:kCMTimeZero error:nil]; AVAssetExportSession* _assetExport […]