使用AVAssetExportSession后视频颜色错误

问题描述 投票:-2回答:1

我正在生成视频,并在其背景上添加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,也会更改。

我添加了具有纯色的视频enter image description here

并且导出后更改为enter image description here

测试视频:link for download

ios swift avfoundation avassetexportsession
1个回答
0
投票

我有相同的问题,无法长期解决

© www.soinside.com 2019 - 2024. All rights reserved.