GPUImageMovieWriter原生BUG(2)黑屏问题

使用GPUImageVideoCamera和GPUImageMovieWriter ,视频前面一帧有白屏(或者黑屏帧)
主要原因是音频采集会更快。

 #import "GPUImageContext.h"

 #import "GLProgram.h"

 #import "GPUImageFilter.h"

+static BOOL allowWriteAudio = NO;

 

/////////////////////////////////////////////////////////

- (void)startRecording;
{
    + allowWriteAudio = NO;

    alreadyFinishedRecording = NO;

    startTime = kCMTimeInvalid;
}

//////////////////////////////////////////////////////////


- (void)finishRecordingWithCompletionHandler:(void (^)(void))handler;

 - (void)processAudioBuffer:(CMSampleBufferRef)audioBuffer;
 {
        + if (!allowWriteAudio) {
        + return;
        + }
 if (!isRecording)
 {
       return;

////////////////////////////////////////////////////////////////////////////////////

 - (void)processAudioBuffer:(CMSampleBufferRef)audioBuffer;
 {
   if (![assetWriterAudioInput appendSampleBuffer:audioBuffer])

   NSLog(@"Problem appending audio buffer at time: %@", CFBridgingRelease(CMTimeCopyDescription(kCFAllocatorDefault, currentSampleTime)));

  + allowWriteAudio = YES;

  • 上述改法可能也有bug,参考另外的改法
    参考代码2

  • [self.videoCamera addAudioInputsAndOutputs];
    调用GPUImageVideoCamera这句话就可以避免一开始黑屏

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容