使用AVMutableComposition导出镜像视频会导致调整大小问题

时间:2018-06-10 11:25:32

标签: ios swift avfoundation avmutablecomposition avkit

如果我关闭前置摄像头上的镜像,一切都按预期工作。但是,如果我打开它,我最终导出的视频会出现重要的调整大小问题:

Problem

这就是我目前管理视频镜像的方式:

<li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem">
  <meta itemprop="position" content="1" />
  <div itemprop="item" itemscope itemtype="http://schema.org/Product">
    <!-- your Product -->
  </div>
</li>

这就是我导出视频的方式:

       if currentDevice == frontCamera {

            if let connection = output.connections.first {
                if connection.isVideoMirroringSupported {
                    connection.automaticallyAdjustsVideoMirroring = false
                    connection.isVideoMirrored = true //if true, this bug occurs.
                }
            }


        }else {
             //disabling photo mirroring on backCamera
            if let connection = output.connections.first {
                if connection.isVideoMirroringSupported {
                    connection.automaticallyAdjustsVideoMirroring = false
                    connection.isVideoMirrored = false
                }
            }
        }

我正在使用NextLevelSessionExporter导出视频。如果我使用默认导出器并不重要,则仍会出现调整大小问题。

1 个答案:

答案 0 :(得分:2)

存在一个阻止您正确导出镜像视频的活动错误。您需要一些解决方法:

  1. 关闭movieOutputFile上的镜像
  2. 在需要时手动翻转视频:

    if needsMirroring == true {
    
        var transform:CGAffineTransform = CGAffineTransform(scaleX: -1.0, y: 1.0)
        transform = transform.translatedBy(x: -naturalSize.width, y: 0.0)
        transform = transform.rotated(by: CGFloat(Double.pi/2))
        transform = transform.translatedBy(x: 0.0, y: -naturalSize.width)
        videoTransform = transform
    }
    
  3. 花了我几天的时间才想出来,希望它有所帮助。