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

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

相关推荐
AI浩1 小时前
学习语言驱动的序列级别模态不变表示用于视频可见光-红外行人重识别
学习·音视频
老陈聊架构3 小时前
『AI视频创作』Remotion Skills 完全指南:用自然语言创作视频的革命
人工智能·音视频·skill·remotion
视频技术分享3 小时前
2026年实时音视频服务选型深度解析
音视频·实时音视频·视频
三十_A20 小时前
前端技术分享:基于 Canvas 实现视频帧截取与下载方案
前端·音视频
地狱为王20 小时前
Unity使用NovaSR将沉闷的16kHz音频升频成清晰的48kHz音频
unity·游戏引擎·音视频·novasr
Dreams°12320 小时前
进阶实战:Wan2.2-T2V-A5B 实现可点击跳转的互动式教育视频
算法·microsoft·ai·音视频
Coovally AI模型快速验证1 天前
YOLO26技术详解:原生NMS-Free架构设计与实现原理
人工智能·计算机视觉·开源·音视频·无人机
郭涤生1 天前
高斯滤波从入门到精通
linux·音视频
想你依然心痛1 天前
AI 音效新征程:HunyuanVideo-Foley 视频配音实战
人工智能·音视频·智能电视
子夜江寒1 天前
OpenCV 学习:文档扫描与视频运动检测与跟踪
opencv·学习·计算机视觉·音视频