我正在生成视频,并在其背景上添加backgroundView
。
[BackgroundView
包含颜色或图像。
[使用AVAssetExportSession
时,我们无法向视频添加背景。这就是为什么我从backgroundView
生成背景视频的原因。
guard let export = AVAssetExportSession(asset: mixComposition,presetName: AVAssetExportPresetHighestQuality) else { return }
export.videoComposition = mainComposition
export.outputFileType = .mp4
export.outputURL = exportURL
export.shouldOptimizeForNetworkUse = true
之后,通过视频背景上的说明添加AVURLAsset
。并生成最后一个。
guard let track = composition.addMutableTrack(withMediaType: .video, preferredTrackID: kCMPersistentTrackID_Invalid) else { return nil }
do {
try track.insertTimeRange(CMTimeRange(start: .zero, end: asset.duration),
of: asset.tracks(withMediaType: .video).first!, at: .zero)
} catch {
print(error)
}
return AVMutableVideoCompositionLayerInstruction(assetTrack: track)
还有我的颜色不正确的问题。从图像生成后,它是正确的,但是按照说明添加后,它变得更轻。
更新
发现AVAssetExportSession
后更改了视频的颜色。它不依赖于说明,如果将视频添加到videoLayer
,也会更改。
测试视频:link for download
我有相同的问题,无法长期解决