swift - 如何制作方形视频?

标签 swift video crop square

尝试通过animationTool制作方形视频。 请参阅下面的代码。视频放大了(/image/HscTk.jpg),我该如何修复?

let exportSession = AVAssetExportSession(asset: composition, presetName: AVAssetExportPresetHighestQuality)
        let strFilePath: String = generateMergedVideoFilePath()
        try? FileManager.default.removeItem(atPath: strFilePath)
        exportSession?.outputURL = URL(fileURLWithPath: strFilePath)
        exportSession?.outputFileType = .mp4
        exportSession?.shouldOptimizeForNetworkUse = true
        let mutableVideoComposition = AVMutableVideoComposition(propertiesOf: composition)
        mutableVideoComposition.instructions = instructions
        mutableVideoComposition.frameDuration = CMTimeMake(value: 1, timescale: 30)
        mutableVideoComposition.renderSize = CGSize(width: 1080, height: 1080)

        let parentLayer = CALayer()
        parentLayer.frame = CGRect(x: 0, y: 0, width: 1080, height: 1080)
        let videoLayer = CALayer()
        videoLayer.frame.size = videoSize
        videoLayer.position = parentLayer.position
        videoLayer.contentsGravity = .resizeAspectFill
        parentLayer.addSublayer(videoLayer)


        mutableVideoComposition.animationTool = AVVideoCompositionCoreAnimationTool(postProcessingAsVideoLayer: videoLayer, in: parentLayer)



最佳答案

mutableVideoComposition.renderSize = CGSize (width: 1080, height: 1080)

使用此分辨率,它会获取相对于顶点的图像,因此我将变换向上移动

let coeConst = videoAssetWidth/videoAssetHeight
transform.translatedBy(x: -(videoAssetHeight-videoAssetHeight*coeConst)/2, y: 0)

关于swift - 如何制作方形视频?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57473499/

相关文章:

ios - UISearchController 转场

android - MediaStore.Video.Media.DURATION 中的 DURATION 错误

video - 是否可以 'losslessly' 裁剪基于宏 block 的视频流,例如 h.264?

c++ - 裁剪大 jpeg

swift - 以编程方式将渐变边框颜色应用于 UIButton

ios - 在 Swift 中将数据从第一个 VC 发送到第四个 VC 时出现问题

video - 为什么 MP4 mdat atom 不以 H.264 NALU 起始码开头?

javascript - 在灯箱中打开视频时显示暂停状态

android - 在android中使用人脸检测裁剪图像

Swift 特定的通知观察者初始化