视频方向UIImagePickerController

时间:2011-10-24 17:48:49

标签: objective-c ios xcode ios4 ios5

我使用UIImagePickerController选择视频,然后使用ASIHTTPRequest将视频上传到Web服务器。但是,使用iPhone拍摄的视频在横向或纵向中颠倒倒置在Web服务器上。当这些上传的视频在iPhone上观看时,它们也会在垂直方向上缩放75%左右,以便它们看起来被压扁。

有没有办法确定使用UIImagePickerController选择的视频的视频方向(包括它是否被倒置)?

另外,有没有办法在上传之前更改视频的方向?

我也不想允许上传以纵向拍摄的视频。

由于

2 个答案:

答案 0 :(得分:1)

在另一篇文章中找到答案。 AVAsset为您提供了两个属性,[avAsset naturalSize]和[avAsset preferredTransform],可用于确定视频方向。

以下是相关帖子:

How to detect (iPhone SDK) if a video file was recorded in portrait orientation, or landscape.

答案 1 :(得分:0)

您可以使用该功能学习视频肖像和assetOrientation:

 static func orientationFromTransform(_ transform: CGAffineTransform) -> (orientation: UIImageOrientation, isPortrait: Bool) {
    var assetOrientation = UIImageOrientation.up
    var isPortrait = false
    if transform.a == 0 && transform.b == 1.0 && transform.c == -1.0 && transform.d == 0 {
      assetOrientation = .right
      isPortrait = true
    } else if transform.a == 0 && transform.b == -1.0 && transform.c == 1.0 && transform.d == 0 {
      assetOrientation = .left
      isPortrait = true
    } else if transform.a == 1.0 && transform.b == 0 && transform.c == 0 && transform.d == 1.0 {
      assetOrientation = .up
    } else if transform.a == -1.0 && transform.b == 0 && transform.c == 0 && transform.d == -1.0 {
      assetOrientation = .down
    }
    return (assetOrientation, isPortrait)
}

来源: https://www.raywenderlich.com/5135-how-to-play-record-and-merge-videos-in-ios-and-swift