1
私はカスタムビデオレコーダーを作成する方法を学びます。ノイズは多くのノイズを含むオーディオを除いてすべて正常に動作します。私は、システムのカメラ、instagramまたは他のカメラアプリで彼らのオーディオ品質は非常に良いと低レベルのサウンドのいくつかの種類を持っていないしようとします。さらに、ビデオの録画された音量も他のカメラアプリに比べて大幅に低くなっています。私はほとんど答えがAVAudioSession
については回答していますが、AVCaptureSession
にはないstackoverflowに関する回答は見つかりませんでした。ここで AVFoundationカスタムビデオレコーダーのオーディオの問題
_session = [[AVCaptureSession alloc]init];
NSArray *devices = [AVCaptureDevice devicesWithMediaType:AVMediaTypeAudio];
AVCaptureDeviceInput *audioInput = [[AVCaptureDeviceInput alloc] initWithDevice:[devices objectAtIndex:0] error:nil];
if ([_session canAddInput:audioInput])
[_session addInput:audioInput];
AVCaptureDevice *inputDevice = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
AVCaptureDeviceInput *deviceInput = [AVCaptureDeviceInput deviceInputWithDevice:inputDevice error:nil];
if ([_session canAddInput:deviceInput])
[_session addInput:deviceInput];
_videoOutput = [[AVCaptureVideoDataOutput alloc] init];
_videoOutput.alwaysDiscardsLateVideoFrames = NO;
if ([_session canAddOutput:_videoOutput])
[_session addOutput:_videoOutput];
_audioOutput = [[AVCaptureAudioDataOutput alloc] init];
if ([_session canAddOutput:_audioOutput])
[_session addOutput:_audioOutput];
AVCaptureVideoPreviewLayer *previewLayer = [[AVCaptureVideoPreviewLayer alloc] initWithSession:_session];
[previewLayer setVideoGravity:AVLayerVideoGravityResizeAspectFill];
CALayer *rootLayer = [[self view] layer];
[rootLayer setMasksToBounds:YES];
[previewLayer setFrame:CGRectMake(0, 0, rootLayer.bounds.size.width, rootLayer.bounds.size.height)];
[rootLayer insertSublayer:previewLayer atIndex:0];
[_session setSessionPreset:AVCaptureSessionPresetHigh];
dispatch_queue_t queue = dispatch_queue_create("MyQueue", NULL);
[_videoOutput setSampleBufferDelegate:self queue:queue];
[_audioOutput setSampleBufferDelegate:self queue:queue];
AVCaptureConnection *videoConnection = [_videoOutput connectionWithMediaType:AVMediaTypeVideo];
[videoConnection setVideoOrientation:AVCaptureVideoOrientationPortrait];
[_session startRunning];
ビデオ品質は大丈夫で、コードがちょうど音声部分に問題を抱えて、作業を実装する方法のコードです。 So
- ビデオの録音時に音質を改善するにはどうすればよいですか?
- ビデオの録画容量を増やすにはどうすればよいですか?
私は以下のコードでオーディオを純粋に録画するだけで、ビデオを録画するときにはそれを増やす方法を知っています。
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord withOptions:(AVAudioSessionCategoryOptionDefaultToSpeaker | AVAudioSessionCategoryOptionAllowBluetooth) error:&sessionCategoryError];