Изменение размера видео на квадрат без обрезки любой части кадра avfoundation swift - PullRequest
0 голосов
/ 25 августа 2018

Я изменяю размер моего портретного видео в квадрате, но оно обрезает некоторую часть кадров сверху и снизу, что мне не нужно, вот код, который я использую:

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]

после этого я экспортируюактив, но он обрезает мой кадр, есть ли способ изменить размер видео без обрезки

...