У меня большая проблема с проверкой ориентации видео. Есть код, чтобы проверить, находится ли видеофайл в портретном режиме:
private func checkIfVideoIsPortrait(videoURL: NSURL) -> Bool {
let videoAsset = AVAsset.init(URL: videoURL)
let videoTrack = videoAsset.tracksWithMediaType(AVMediaTypeVideo)[0]
let size = videoTrack.naturalSize
let txf = videoTrack.preferredTransform
let realSize = CGSizeApplyAffineTransform(size, txf)
print(videoTrack)
print(txf)
print(size)
print(realSize)
if (size.width == txf.tx && size.height == txf.ty) {
return false
} else if (txf.tx == 0 && txf.ty == 0) {
return false
} else if (txf.tx == 0 && txf.ty == size.width) {
return true
} else {
return true
}
}
У меня есть два видеофайла: 1080x1920 и 360x640. Дело в том, что код возвращает разные размеры файлов, и я не мог распознать ориентацию видео.
Есть логи:
‹ AVAssetTrack: 0x157dee9a0, trackID = 2, mediaType = видео >
CGAffineTransform(a: 1,0, b: 0,0, c: 0,0, d: 1,0, tx: 0,0, ty: 0,0)
(320,0, 568,0)
(320,0, 568,0)
‹ AVAssetTrack: 0x1593643c0, trackID = 2, mediaType = см. >
CGAffineTransform(a: 0,0, b: 1,0, c: -1,0, d: 0,0, tx: 720,0, ty: 0,0)
(1280,0, 720,0)
(-720,0, 1280,0)
Как правильно проверить размеры видео? Буду рад помощи.