将视频调整为正方形,而不会裁剪帧的任何部分

时间:2018-08-25 12:54:46

标签: swift avfoundation cgaffinetransform avasset avmutablecomposition

我正在调整我的肖像视频的大小,但我不想从顶部和底部裁剪帧的某些部分,以下是我使用的代码:

let videoComposition = AVMutableVideoComposition()
videoComposition.renderSize = CGSize(width: CGFloat(clipVideoTrack.naturalSize.height), height: CGFloat(clipVideoTrack.naturalSize.height))
videoComposition.frameDuration = CMTimeMake(1, 30)
let instruction = AVMutableVideoCompositionInstruction()
instruction.timeRange = CMTimeRangeMake(kCMTimeZero, CMTimeMakeWithSeconds(60, 30))
// let firstInstruction = VideoHelper.videoCompositionInstruction(videoComposition, asset: asset)

//rotate to potrait
let transformer = AVMutableVideoCompositionLayerInstruction(assetTrack: clipVideoTrack)
let t1 = CGAffineTransform(translationX: clipVideoTrack.naturalSize.height, y: -(clipVideoTrack.naturalSize.width - clipVideoTrack.naturalSize.height) / 2)
let t2: CGAffineTransform = t1.rotated(by: .pi/2)
//  let t3:CGAffineTransform = t2.scaledBy(x: 1.0 , y: 1.0)
let finalTransform: CGAffineTransform = t2
transformer.setTransform(finalTransform, at: kCMTimeZero)
instruction.layerInstructions = [transformer]
videoComposition.instructions = [instruction]

在此之后,我导出了资产,但它切了我的框架,有什么方法可以调整视频的大小而无需裁剪

0 个答案:

没有答案