AVMutableComposition – video资产之间的空白/黑框
我目前正在尝试使用AVMutableComposition将5个video背对背放置,如下所示:
[mixComposition insertTimeRange:CMTimeRangeMake(kCMTimeZero, asset1.duration) ofAsset:asset1 atTime:[mixComposition duration] error:nil]; [mixComposition insertTimeRange:CMTimeRangeMake(kCMTimeZero, asset2.duration) ofAsset:asset2 atTime:[mixComposition duration] error:nil]; [mixComposition insertTimeRange:CMTimeRangeMake(kCMTimeZero, asset3.duration) ofAsset:asset3 atTime:[mixComposition duration] error:nil]; [mixComposition insertTimeRange:CMTimeRangeMake(kCMTimeZero, asset4.duration) ofAsset:asset4 atTime:[mixComposition duration] error:nil]; [mixComposition insertTimeRange:CMTimeRangeMake(kCMTimeZero, asset5.duration) ofAsset:asset5 atTime:[mixComposition duration] error:nil];
然后,我使用AVAssetExportSession导出video,然而,每个video之间的工作,我得到一个空白/黑框,我需要删除。 有没有人有过这个问题,如果是你设法解决它?
另外,空白帧不在源video文件中。
提前致谢。
前几天我也有同样的问题。
如果通过再次使用insertTimeRange创build的其他资产导出资产(资产1,资产2等),则情况也是如此。
问题是,当您导出使用insertTimeRange创build的资产时,导出不正确,当您附加这些video黑色框架之间出现之间。
尝试使用AVAssetExportSession的“timeRange”选项,并从主资源中剪切所需的范围。 那么你的资产将附上正确的。
我刚刚遇到了同样的问题。 打开解决scheme是使用AVMutableCompositionTrack和合成video轨道,这样的事情。
AVMutableCompositionTrack * videoTrack = [composition addMutableTrackWithMediaType:AVMediaTypeVideo preferredTrackID:kCMPersistentTrackID_Invalid]; [videoTrack insertTimeRange:CMTimeRangeMake(kCMTimeZero, asset.duration) ofTrack:[[asset tracksWithMediaType:AVMediaTypeVideo] objectAtIndex:0] atTime:composition.duration error:&error];
对于audio部分,我认为你必须添加一个AVMediaTypeAudiotypes的单独的轨道。
- 在后台工作的AVAssetExportSession
- AVExportSession在后台运行
- iOS 5:将3个video与AVAssetExportSession合并时出错
- 自定义AVVideoCompositing类不按预期方式工作
- AVAssetExportSession导出失败,带有错误:“操作已停止,NSLocalizedFailureReason =video无法合成。
- 如何使用AVAssetWriter制作缩小尺寸的video?
- 在iOS中裁剪和修复video方向
- ios 10中的AVAssetExportSession不适用于iPhone 7
- 在后台启动AVAssetExportSession