iOS用LFLiveKit-ReplayKit錄螢屏的時候,當音頻質量選擇LFLiveAudioQuality_Low就會提示AudioCodecInitialize failed,推流上去的視頻就沒有聲音,用LFLiveAudioQuality_Medium以上就全是雜音,又遇到這種情況的嗎?
推流的主機用的是ffmpeg的ffplay和Nginx的rtmp模式
協議用的是rtmp。
推流的內容用的是Video和Audio。
下面是session的設定。
- (LFLiveSession *)session {
if (_session == nil) {
LFLiveAudioConfiguration *audioConfiguration = [LFLiveAudioConfiguration defaultConfigurationForQuality:LFLiveAudioQuality_Low];
audioConfiguration.numberOfChannels = 1;
LFLiveVideoConfiguration *videoConfiguration;
videoConfiguration = [LFLiveVideoConfiguration defaultConfigurationForQuality:(_frameQuality==0)?LFLiveVideoQuality_High2:(_frameQuality==1)?LFLiveVideoQuality_Medium2:LFLiveVideoQuality_Low2 outputImageOrientation:UIInterfaceOrientationLandscapeRight];
videoConfiguration.autorotate = YES;
_session = [[LFLiveSession alloc] initWithAudioConfiguration:audioConfiguration videoConfiguration:videoConfiguration captureType:_mic?LFLiveInputMaskAll:LFLiveInputMaskVideo];
_session.delegate = self;
_session.showDebugInfo = YES;
}
return _session;
}
下面是推流呼叫的部分
[_recorder startCaptureWithHandler:^(CMSampleBufferRef _Nonnull sampleBuffer, RPSampleBufferType bufferType, NSError * _Nullable error) {
if (error==nil) {
switch (bufferType) {
case RPSampleBufferTypeVideo: {
// NSLog(@"視頻的內容");
[self.tool sendVideoBuffer:sampleBuffer];
}
break;
case RPSampleBufferTypeAudioApp: {
// NSLog(@"App的音效");
[self.tool sendAudioBuffer:sampleBuffer];
}
break;
case RPSampleBufferTypeAudioMic: {
NSLog(@"麥克風的音效");
// [self.tool sendAudioBuffer:sampleBuffer];
}
break;
default:
break;
}
}
} completionHandler:^(NSError * _Nullable error) {
if (error!=nil) {
NSLog(@"error = %@",[error description]);
}
}];
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/10778.html
標籤:iOS
上一篇:Android
下一篇:window下如何除錯蘋果手機
