【问题标题】:Convert Landscape Video to Portrait Video将横向视频转换为纵向视频
【发布时间】:2023-04-02 13:00:02
【问题描述】:

如何将横向视频转换为纵向视频并在 Swift 中保存?

我在视频编辑器应用中工作。但我不知道如何快速转换视频方向。

【问题讨论】:

  • 显示你尝试过的代码
  • @Anbu.Karthik 我不知道该怎么做。
  • 看到这个寻求帮助:medium.com/@sunnyleeyun/…
  • @Anbu.Karthik 我试图只旋转视频而不是 ViewController。
  • 然后根据方向更改视图框架

标签: ios swift avfoundation swift4


【解决方案1】:

首先使用以下代码获取视频方向:

func getVideoOrientationFromAsset(asset: AVAsset) -> UIImageOrientation {
    let videoTrack = asset.tracks(withMediaType: .video)[0]
    let size = videoTrack.naturalSize

    guard let txf = asset.tracks(withMediaType: .video).first?.preferredTransform else {
        return .up
    }

    if (size.width == txf.tx && size.height == txf.ty) {
        return .left
    }
    else if (txf.tx == 0 && txf.ty == 0) {
        return .right
    }
    else if (txf.tx == 0 && txf.ty == size.width) {
        return .down
    }
    else {
        return .up
    }
}

然后使用 AVMutableVideoCompositionInstruction 和 AVMutableVideoComposition 对视频应用基于方向的平移和旋转以呈现正确的输出。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-11
  • 2012-09-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多