[AVFoundation-当我在视频上粘贴标签时,视频文件的大小增加了

问题描述 投票:0回答:1

当我将图像叠加到视频时,AVFoundation正在增加视频文件的大小。我已将输出文件类型设置为mp4。有时视频文件的大小没有增加,但有时增加了约40 MB。是否有可能总是减小文件大小?

avfoundation overlay filesize
1个回答
0
投票

您应该检查在视频上粘贴标签的方式。它是动画(贴纸运动的图像)还是仅仅是图像。如果仅是单个图像,例如在开始导出会话之前,您可以执行以下操作:

    let parentLayer = CALayer()
    let videoLayer = CALayer()
    let overlayLayer = CALayer()
    let stickerLayer = CALayer()

    parentLayer.frame = CGRect(origin: .zero, size: renderSize)
    videoLayer.frame = parentLayer.frame
    stickerLayer.frame = parentLayer.frame
    overlayLayer.frame = parentLayer.bounds
    //Add the image inside of stickerLayer(in this case its from a screen shot of UIView, you can change to your custom UIImage
    stickerLayer.contents = self.stickerView.asImage().cgImage
    parentLayer.addSublayer(videoLayer)
    parentLayer.addSublayer(stickerLayer)
    parentLayer.addSublayer(overlayLayer)

    //create composition
    let videoComposition = AVMutableVideoComposition()
    videoComposition.renderSize = CGSize(width: renderSize.width, height: renderSize.height)
    videoComposition.frameDuration = CMTimeMake(value: 1, timescale: 30)
    videoComposition.renderScale = 1.0

    //finally add layers with animationTool
    videoComposition.animationTool = AVVideoCompositionCoreAnimationTool(postProcessingAsVideoLayers: [videoLayer], in: parentLayer)
© www.soinside.com 2019 - 2024. All rights reserved.