WebRTC音视频通话-WebRTC推拉流过程中日志log输出

WebRTC音视频通话-WebRTC推拉流过程中日志log输出

之前实现iOS端调用ossrs服务实现推拉流流程。

推流:https://blog.csdn.net/gloryFlow/article/details/132262724

拉流:https://blog.csdn.net/gloryFlow/article/details/132417602

在推拉流过程中的WebRTC的相关日志log输出可以看到一些相关描述信息。在WebRTC日志需要用到RTCCallbackLogger,使用startWithMessageAndSeverityHandler来处理日志输出。

一、实现log输出WebRTCLogger

实现开启log,启动startWithMessageAndSeverityHandler将在执行日志记录回调。

objectivec 复制代码
- (void)start {
    __weak typeof(self) weakSelf = self;
    [weakSelf.logger startWithMessageAndSeverityHandler:^(NSString * _Nonnull message, RTCLoggingSeverity severity) {
        DebugLog(@"WebRTCLogger startWithMessageAndSeverityHandler severity:%@,message:%@", [weakSelf loggingSeverityDescription:severity], message);
    }];
}

完整代码如下

WebRTCLogger.h

objectivec 复制代码
#import <Foundation/Foundation.h>
#import <WebRTC/WebRTC.h>
#import <UIKit/UIKit.h>

@interface WebRTCLogger : NSObject

- (void)start;

- (void)stop;

@end

WebRTCLogger.m

objectivec 复制代码
#import "WebRTCLogger.h"

@interface WebRTCLogger ()

@property (nonatomic, strong) RTCCallbackLogger *logger;

@end

@implementation WebRTCLogger

- (instancetype)init
{
    self = [super init];
    if (self) {
        self.logger.severity = RTCLoggingSeverityVerbose;
        // 设置日志记录器
        RTCSetMinDebugLogLevel(RTCLoggingSeverityVerbose);
    }
    return self;
}

- (void)start {
    __weak typeof(self) weakSelf = self;
    [weakSelf.logger startWithMessageAndSeverityHandler:^(NSString * _Nonnull message, RTCLoggingSeverity severity) {
        DebugLog(@"WebRTCLogger startWithMessageAndSeverityHandler severity:%@,message:%@", [weakSelf loggingSeverityDescription:severity], message);
    }];
}

- (void)stop {
    [self.logger stop];
}

- (NSString *)loggingSeverityDescription:(RTCLoggingSeverity)severity {
    if (RTCLoggingSeverityVerbose == severity) {
        return @"RTCLoggingSeverityVerbose";
    }
    
    if (RTCLoggingSeverityInfo == severity) {
        return @"RTCLoggingSeverityInfo";
    }
    
    if (RTCLoggingSeverityWarning == severity) {
        return @"RTCLoggingSeverityWarning";
    }
    
    if (RTCLoggingSeverityError == severity) {
        return @"RTCLoggingSeverityError";
    }
    
    if (RTCLoggingSeverityNone == severity) {
        return @"RTCLoggingSeverityNone";
    }
    
    return @"RTCLoggingSeverityNone";
}

#pragma mark - Lazy
- (RTCCallbackLogger *)logger {
    if (!_logger) {
        _logger = [[RTCCallbackLogger alloc] init];
    }
    return _logger;
}

@end

二、使用WebRTCLogger

我们需要启动WebRTCLogger,我们在使用地方,创建实例对象。

objectivec 复制代码
- (WebRTCLogger *)webRTCLogger {
    if (!_webRTCLogger) {
        _webRTCLogger = [[WebRTCLogger alloc] init];
    }
    return _webRTCLogger;
}

在需要的地方开启日志log

objectivec 复制代码
/**
 开启RTCLogger
 */
- (void)startWebRTCLogger {
    [self.webRTCLogger start];
}

当关闭推拉流后关闭日子log

objectivec 复制代码
/**
 停止RTCLogger
 */
- (void)stopWebRTCLogger {
    [self.webRTCLogger stop];
}

至此,通过webRTCLogger看到WebRTC在推拉流过程中输出的相关日志信息

其他

之前搭建ossrs服务,可以查看:https://blog.csdn.net/gloryFlow/article/details/132257196

之前实现iOS端调用ossrs音视频通话,可以查看:https://blog.csdn.net/gloryFlow/article/details/132262724

之前WebRTC音视频通话高分辨率不显示画面问题,可以查看:https://blog.csdn.net/gloryFlow/article/details/132240952

修改SDP中的码率Bitrate,可以查看:https://blog.csdn.net/gloryFlow/article/details/132263021

GPUImage视频通话视频美颜滤镜,可以查看:https://blog.csdn.net/gloryFlow/article/details/132265842

RTC直播本地视频或相册视频,可以查看:https://blog.csdn.net/gloryFlow/article/details/132267068

实现ossrs拉流,可以查看:https://blog.csdn.net/gloryFlow/article/details/132417602

三、小结

WebRTC音视频通话-WebRTC推拉流过程中日志log输出。在WebRTC日志需要用到RTCCallbackLogger,使用startWithMessageAndSeverityHandler来处理日志输出。

https://blog.csdn.net/gloryFlow/article/details/132598363

学习记录,每天不停进步。

相关推荐
luoqice16 分钟前
利用librtmp实现h264和AAC音频的推流
音视频·aac
byte轻骑兵20 分钟前
蓝牙CAP规范解析:构建多设备协同的通用音频新生态
人工智能·音视频·le audio·低功耗音频·蓝牙通话
大象AI共学30 分钟前
我让AI写了个网页,它自动变成了视频
人工智能·音视频
Prannt36 分钟前
星朗智能语音——视频音色替换
ai·音视频·语音识别
时空自由民.1 天前
音视频图片压缩
音视频
日取其半万世不竭1 天前
PeerTube 部署指南:自建视频托管平台
云原生·eureka·音视频
luoqice1 天前
FLV文件解析
音视频
byte轻骑兵1 天前
【AVRCP】规范精讲[10]:链路管理器LM互操作规则与场景落地
人工智能·音视频·蓝牙·avrcp·音视频控制
JK Chen1 天前
faster_whisper,视频转文字,并生成字幕文件
python·whisper·音视频
Fisher3Star1 天前
mediasoup Transport详解与代码实现
webrtc