前段时间我发布了一个堆栈溢出问题,用于将图像插入到视频合成中,最终创建了一个解决方案,将我的图像转换为单独的视频并将其与原始视频拼接在一起。
(链接到原始问题以供参考/上下文:Mixing Images and Video using AVFoundation)
此解决方案似乎运作良好。但是今天我发现在iOS 8.1上这个解决方案崩溃了。最终导出的视频仅包含原始视频,其中包含插入图像视频的空白区域。
我已经尝试将图片视频替换为另一个,但这也没有任何影响。 我已经查看了苹果提供的API难度,但事实证明它们并没有那么有用。我注意到在CoreMedia模块中修改了像CMTime和CMTimeAdd这样的标记,但它们并没有真正说明如何。
有谁知道可能有什么变化可以打破这个,或者有任何建议?
答案 0 :(得分:0)
解决了这个问题。
原来在iOS 7.1上这很好
AVAsset* frameVideo = [[AVURLAsset alloc] initWithURL:vidURL options:options];
gFramesTrack = [gFrameVideoAsset tracksWithMediaType:AVMediaTypeVideo][0];
[frameVideo release];
但是在iOS 8.1上发布frameVideo对象也阻止了AVAssetWriter / Reader输入轨道应该具有的数据
所以要解决这个问题,我不会在帧视频上发布释放,直到我完成了我的最终视频制作。