如何制作方形视频?
How to make a square video?
正在尝试通过动画工具制作方形视频。
请参阅下面的代码。视频放大了(https://i.stack.imgur.com/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)
正在尝试通过动画工具制作方形视频。 请参阅下面的代码。视频放大了(https://i.stack.imgur.com/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)