iOS录制视频第一帧是黑色的

时间:2013-07-26 09:25:05

标签: ios video-recording

我制作了一个录制视频应用,但第一帧始终是黑色。

我用:

- (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer fromConnection:(AVCaptureConnection *)connection 

和assetWriter编写样本缓冲区。

我发现第一个样本缓冲区是mediaType:'soun',这是问题所在。

我该怎么做

2 个答案:

答案 0 :(得分:12)

我遇到了同样的问题。我认为第一个样本缓冲区是"声音"应该是问题所在。我试图做的是忽略第一个样本缓冲区,如果它的声音。等到第一个"视频"样本缓冲区进来然后执行AVAssetWriter startWriting事情。我这样解决了我的问题。

答案 1 :(得分:0)

感谢@ethanchli的回复,它对我有所帮助,所以我决定添加一些细节。

首先,如果不使用AVCaptureAudioDataOutputSampleBufferDelegate扩展,请尝试将其卸载,因为它与AVCaptureVideoDataOutputSampleBufferDelegate扩展运行相同的功能。

func captureOutput(_ output: AVCaptureOutput, didOutput sampleBuffer: CMSampleBuffer, from connection: AVCaptureConnection){}

或者如果您需要audioSamleBoofer:)

尝试一下-检查仅在视频连接中存在的方向支持。

    if connection.isVideoOrientationSupported {
        // Work with video samle boofer
    } else {
        // Work with audio sample boofer audio
    }