gpt4 book ai didi

ios - AVMutableCompositionTrack 和 AVMutableVideoComposition 问题中没有视频的范围

转载 作者:行者123 更新时间:2023-11-29 13:37:41 24 4
gpt4 key购买 nike

我创建了一个包含多个视频剪辑的合成,我还添加了一些空白范围,用于显示带有 CoreAnimation 的标题屏幕。

|--Video1--|--NoVideo(AVsyncLayer)--|--Video2--|

等等......一切正常,当我开始使用时问题来了:AVMutableVideoComposition、AVMutableVideoCompositionInstruction 和 AVMutableVideoCompositionLayerInstruction,我必须这样做才能正确旋转视频。

|--Video1--|--NoVideo(AVsyncLayer)--|

在我的 AVPlayer 中工作正常,但如果我这样做:

|--NoVideo(AVsyncLayer)--|--Video1--|

下次我推送新 View Controller 或将当前 View Controller 弹出我的导航 Controller 堆栈时,应用程序崩溃。有时有内存警告,有时没有,但根据仪器,我只分配了 1.5Mb。

去年 WWDC 的 Working With Media in AVFoundation 看了好几遍,我唯一能想到的就是评论

AVMutableVideoCompositionInstruction must not overlap or contain gaps.

它真的没有。我有作曲整个持续时间的说明。但是我不打算在 AVMutableCompositionTrack(我的视频轨道)中显示视频,而只打算显示 CoreAnimation 层。

有没有其他人遇到过类似的问题?

最佳答案

扩展 Erik 的解决方案,这是我所做的。我创建了一个非常简短的黑色影片剪辑,并将其添加到空白时间范围的末尾。它似乎工作正常,但我希望存在更优雅的解决方案。 (请注意,在我的代码中,TMAVCompositionTrack 只是一个包装器,它包含用于音频和视频的 AVMutableCompositionTrack,以及其他一些东西。

- (void)createEmptySpaceOnTrack:(TMAVCompositionTrack*)avtrack timeRange:(CMTimeRange)timeRangeOfShot {
[avtrack.videoCompositionTrack insertEmptyTimeRange:timeRangeOfShot];
[avtrack.audioCompositionTrack insertEmptyTimeRange:timeRangeOfShot];

// there is a bug where emptyness is trimmed out, so put a brief burst of video blackness at the end of the "emptyness"
NSURL* assetURL = [[NSBundle mainBundle] URLForResource:@"blackness" withExtension:@"mov"];
AVAsset* asset = [AVURLAsset URLAssetWithURL:assetURL options:@{ AVURLAssetPreferPreciseDurationAndTimingKey:@(YES) }];
AVAssetTrack *clipVideoTrack = [[asset tracksWithMediaType:AVMediaTypeVideo] objectAtIndex:0];
CMTimeRange timeRangeInAsset = CMTimeRangeMake(kCMTimeZero, CMTimeMakeWithSeconds(0.01, 600));
CMTime tailEnd = CMTimeSubtract(CMTimeRangeGetEnd(timeRangeOfShot), timeRangeInAsset.duration);
[avtrack.videoCompositionTrack insertTimeRange:timeRangeInAsset ofTrack:clipVideoTrack atTime:tailEnd error:nil];
}

关于ios - AVMutableCompositionTrack 和 AVMutableVideoComposition 问题中没有视频的范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10085691/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com