iOS相机以初始变焦记录视频,在第一秒内出现黑框

问题描述 投票:1回答:1

我有一个录制视频的应用程序。我可以开始和停止记录,因此可以像TikTok一样记录各种片段。最近,我实现了将videoZoomFactor设置为AVCaptureDevice。录制时正常工作。但是,如果我在录制之前进行缩放并按录制开始,则输出视频结果的第一帧为黑色。同样,如果在同一张AVCaptureSession中我使用变焦记录时,删除该记录并再次使用变焦记录,则不会出现黑框。由此得出的结论是,在startRecording上调用AVCaptureMovieFileOutput可以解决第一次录制和第二次录制之间的问题。

有人可以给我建议解决方案吗?我正在考虑一种解决方法,如果第一帧是用初始变焦记录的,我将删除第一帧,但是我想了解为什么会发生这种情况并有适当的解决方法。

我有一个非常简单的摄像头设置。我从documentation开始遵循官方指南中的步骤。这是设置缩放系数的一部分。

self.sessionQueue.async {
        do {
            try device.lockForConfiguration()
            device.videoZoomFactor = factor
            device.unlockForConfiguration()
        } catch {
            print("\(error.localizedDescription)")
        }
    }
ios video camera avfoundation recording
1个回答
0
投票

最后,我弄清楚是什么原因引起的。在整个捕获会话设置过程中,我没有在输出连接中添加稳定性。因此,在将文件输出添加到会话后,我添加了该部分,现在视频已正常拍摄,并且开始时没有黑框。这是一段代码。

        self.captureSession.addOutput(self.videoFileOutput)
        if let connection = self.videoFileOutput.connection(with: AVMediaType.video) {
            if connection.isVideoStabilizationSupported {
                connection.preferredVideoStabilizationMode = .auto
            }
        }
© www.soinside.com 2019 - 2024. All rights reserved.