AVMutableComposition 创建后视频结束时出现黑框

Black frame at video end after AVMutableComposition creation

当我创建一个 AVMutableComposition 并排显示 2 个视频 AVMutableCompositionTrack 对象时,如果我 trim 视频的结尾或开头(所以有 2 个不同的持续时间),我有一个黑帧而不是最后一帧在通过 AVAssetExportSession 对象导出 AVMutableVideoComposition 对象后播放最终视频时的视频。

下面的代码向您展示了我如何为第一个视频插入时间范围:

let start = CMTimeMakeWithSeconds(trimStart, 600)
let end  = CMTimeMakeWithSeconds(trimEnd, 600)

try videoTrack.insertTimeRange(CMTimeRangeMake(start, end), of: videoAssetTrack, at: kCMTimeZero)

如果能提供一些帮助以保持显示最后几帧,我们将不胜感激

CMTimeRangeMake 的第二个参数应该是持续时间,但看起来您使用的是时间点。将代码更改为 CMTimeRangeMake(start, CMTimeSubtract(start, end)) 有帮助吗?