当前位置: 首页 > wzjs >正文

为什么选用美食做网站主页北京网站制作公司公司

为什么选用美食做网站主页,北京网站制作公司公司,重庆大渝网官网,做一个营销网站一、rtc_event_log 简介 在学习分析webrtc的过程中,发现其内部提供了一个实时数据捕获接口RtcEventLog。通过该接口可以实时捕获进出webrtc的RTP报文头数据、音视频配置参数、webrtc的探测数据等。其内容实现可参考RtcEventLogImpl类的定义。其文件所在路径 loggin…

一、rtc_event_log 简介

在学习分析webrtc的过程中,发现其内部提供了一个实时数据捕获接口RtcEventLog。通过该接口可以实时捕获进出webrtc的RTP报文头数据、音视频配置参数、webrtc的探测数据等。其内容实现可参考RtcEventLogImpl类的定义。其文件所在路径 logging/rtc_event_log/rtc_event_log_impl.h / cc。

在android demo中也可以发现平台层api也有rtc_event_log的对应实现RtcEventLog。其使用方式代码如下

  public void start(final File outputFile) {if (state == RtcEventLogState.STARTED) {Log.e(TAG, "RtcEventLog has already started.");return;}final ParcelFileDescriptor fileDescriptor;try {fileDescriptor = ParcelFileDescriptor.open(outputFile,ParcelFileDescriptor.MODE_READ_WRITE | ParcelFileDescriptor.MODE_CREATE| ParcelFileDescriptor.MODE_TRUNCATE);} catch (IOException e) {Log.e(TAG, "Failed to create a new file", e);return;}// Passes ownership of the file to WebRTC.boolean success =peerConnection.startRtcEventLog(fileDescriptor.detachFd(), OUTPUT_FILE_MAX_BYTES);if (!success) {Log.e(TAG, "Failed to start RTC event log.");return;}state = RtcEventLogState.STARTED;Log.d(TAG, "RtcEventLog started.");}

然而你在打开写入的log文件后,你会发现一通乱码无法阅读,那是因为webrtc内部使用protobuf协议,以二进制的格式存储这批数据。那怎么办?此时我们需要借助webrtc系统自带的工具。

二、rtc_event tools

webrtc以源码的方式提供了一系列自带的工具,其中就有 rtc_event_log_to_text 和 event_log_visualizer,我们需要先自己编译构建出来,编译前置条件请参考 探讨如何在AS上构建webrtc(1)再谈webrtc的下载&编译

gn gen out/tools --verbose \
--args='rtc_include_tests=true rtc_build_examples=false rtc_build_tools=true rtc_enable_protobuf=true treat_warnings_as_errors=false ' \
--extra-gn-switches='-v'ninja -C out/tools

编译指令如上,必须设置rtc_include_tests=true、rtc_enable_protobuf=true这两项。等构建完成后就可以在out/tools目录下找到rtc_event_log_to_text等一系列工具。之后使用命令把proto格式的log文件,转化成可以人类可阅读的txt文本。

tools/rtc_event_log_to_text   event_log_20250221_0945_37.log     event_log_0945_totext.txt

内容格式大致如下:

还可以使用如下指令工具 event_log_visualizer 将事件日志转换成简易的图表。(需要依赖python3 pyplotlib)

tools/event_log_visualizer    event_log_20250221_0945_37.log  | python3

三、启用消息日志

但对于初学者来说,事件日志可能难于捡取到有用的信息,常用的自定义打印跟踪日志更易于使用。那么如何开启?

对于Android平台为例,我们在全局配置PeerConnectionFactory的时候,可以向webrtc注入logger,这样就可以捕获到webrtc运行时的消息日志了。

PeerConnectionFactory.InitializationOptions initializationOptions = PeerConnectionFactory.InitializationOptions.builder(ApplicaitonContext()).setEnableInternalTracer(true) //启用内部跟踪器。内部跟踪器用于WebRTC组件的调试和性能分析.setInjectableLogger(new MyInjectableLogger(), Logging.Severity.LS_INFO) //设置可注入的日志记录器.createInitializationOptions();PeerConnectionFactory.initialize(initializationOptions);public class MyInjectableLogger implements Loggable {@Overridepublic void onLogMessage(String msg, Logging.Severity severity, String tag) { }
}

That‘s it。欢迎补充。

http://www.dtcms.com/wzjs/605890.html

相关文章:

  • 北京网站制作工作室wordpress提交评论卡死
  • 网站修改图片怎么做网站视频转码软件
  • 样式模板网站深圳网站优化费用
  • 廊坊网站建设招聘网站备案用户名忘了怎么办
  • 在上海卖商铺做哪个网站好手机上怎么做自己卖菜的网站
  • 秒赞网站建设有质感的wordpress主题
  • 厦门免费网站建设21世纪上海人才网官网
  • wordpress建设企业网站宁波seo推广优化
  • 广州网站建设app开发百度站长工具综合查询
  • 套用网站模板企业网站导航下拉菜单怎么做
  • 武安网站建设哪些网站是用php编写的
  • 长治网站制作怎么做网站快照怎么更新
  • 为网站开发uwp应用企业网站建设后期维护费用
  • 建设flash网站四川城乡和住房建设厅网站首页
  • 宜昌市建设监理协会网站网站建设公司 2018
  • 找人做试管婴儿的网站个人如何做跨境电商?
  • 嘉兴企业做网站别人的做网站
  • 网站优化推广方法代理做网站
  • 检查网站死链接百度知道答题赚钱
  • 宁波智能模板建站南宁网站建设方案报价
  • 网站建设与管理模拟试卷企业网站html
  • 东莞 企业网站建设专门做餐厅设计的网站
  • 网站域名提交重庆建设人才网站
  • 拖拽式网站建设费用网站建设招聘兼职
  • 外贸建设网站制作怎样在内网建设一个网站
  • 广州机械网站开发永嘉专业网站设计公司
  • 枣阳网站定制网站开发规范有哪些
  • 自己用iis怎么建设网站照片做视频ppt模板下载网站
  • 如何在网站上做qq群链接移动宽带续费多少钱
  • 适合新手做网站的唯品会一家专门做特卖的网站