AVMutableComposition - 视频资源之间的空白/黑框

Agg*_*nda 5 ios avmutablecomposition avurlasset avassetexportsession

我目前正在尝试使用 AVMutableComposition 将 5 个视频背靠背放置,如下所示:

[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];
Run Code Online (Sandbox Code Playgroud)

然后,我使用 AVAssetExportSession 导出视频,但在每个视频之间,我会得到一个需要删除的空白/黑色帧。以前有人遇到过这个问题吗?如果有的话,你解决了吗?

此外,空白帧不在源视频文件中。

提前致谢。

Vah*_*yan 2

前几天我也遇到了同样的问题。

如果您通过从再次使用 insertTimeRange 创建的其他资产导出资产(资产 1、资产 2 等)来获取资产,则情况相同。

问题是,当您导出使用 insertTimeRange 创建的资源时,导出不会正确,当您附加此类视频时,它们之间会出现黑框。

尝试使用 AVAssetExportSession 的“timeRange”选项,并从主资源中剪切所需的范围。然后你的资产就会正确附加。