AVAssetWriter录制音频慢2倍吗?

丁什(Dinesh)

我正在尝试使用AVAssetWriter录制音频。但是在播放文件时,其播放速度比原始音频慢2倍。我所做的是按照以下方式创建AVAssetWriter。

_writer = [AVAssetWriter assetWriterWithURL:url fileType:AVFileTypeMPEG4 error:nil];
AudioChannelLayout acl;
bzero( &acl, sizeof(acl));
acl.mChannelLayoutTag = kAudioChannelLayoutTag_Mono;

NSDictionary *audioOutputSettings = [NSDictionary dictionaryWithObjectsAndKeys:
                                     [ NSNumber numberWithInt: kAudioFormatMPEG4AAC ], AVFormatIDKey,
                                     [ NSNumber numberWithInt: 1 ], AVNumberOfChannelsKey,
                                     [ NSNumber numberWithFloat: 44100.0 ], AVSampleRateKey,
                                     [ NSNumber numberWithInt: 64000 ], AVEncoderBitRateKey,
                                     [ NSData dataWithBytes: &acl length: sizeof( acl ) ], AVChannelLayoutKey,
                                     nil];

_audioWriterInput = [AVAssetWriterInput assetWriterInputWithMediaType:AVMediaTypeAudio outputSettings:audioOutputSettings];
_audioWriterInput.expectsMediaDataInRealTime=YES;
[_writer addInput:_audioWriterInput];

然后,我开始在数据中追加缓冲区,如下所示

if (_audioWriterInput.readyForMoreMediaData == YES) {
            [_audioWriterInput appendSampleBuffer:sampleBuffer];
            return  YES;
        }

我正在做的是在以下委托函数中使用AVCapureSession获取麦克风输出

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

并将sampleBuffer直接传递给avassetWriter以写入文件。

有人可以让我知道为什么它这么慢地将音频数据写入文件..还有其他人面临类似的问题吗?以及可能解决该问题的方法。

丁什(Dinesh)

有问题了..

我将麦克风捕获添加到与捕获摄像机相同的会话中。将这些会话分开,现在看来一切正常。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章