自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(90)
  • 收藏
  • 关注

原创 五分钟搞定WebRTC视频录制

WebRTC中文社区是一个为大家解决在使用WebRTC当中遇到问题所建立的社区,欢迎更多学习和使用WebRTC的人加入进来,一起建设。视频录制在之前的文章里我们提到过视频录制的两种方式:客户端录制和服务端录制,以及他们的优缺点WebRTC-Client-Record服务端录制要根据你所使用的服务端,来决定视频录制的解决方案。所以不是本文讨论的重点,本文主要讨论使用WebRTC的客户端解决方案WebRTC-Client-Record是基于WebRTC所写的客户端视频录制解决方案,他已经完美得集成到

2020-08-03 19:16:59 3539

原创 使用Jibri进行Jitsi Meet视频录制

前言我们在做视频会议系统的时候,通常都会有会议录制功能,那么作为视频会议开源的翘楚,Jitsi是怎么做这一点的,在官方文档及其隐晦的情况下,我们该怎么成功搭建视频录制服务呢?下面我就带大家来了解下实战操作一把什么的JibriJibri提供用于录制或流式传输Jitsi Meet会议的服务。它通过启动在虚拟帧缓冲区中呈现的Chrome实例并使用ffmpeg捕获和编码输出来工作。它旨在在单独的计算机(或VM)上运行,而没有其他使用显示或音频设备的应用程序。单个jibri一次仅支持一次录制。这里注意 **

2020-07-16 23:32:05 6944 10

原创 WebRTC之完整搭建Jitsi Meet指南

前言Jitsi是个优秀的WebRTC流媒体服务器,使用Java语言做开发,可以让很多Java人员也能进行流媒体开发,但是奈何国内的教程太少,官方文档更新太快,导致很多想用他的人却望而却步。在写这篇文章之前,在搜索引擎上进行了搜索,发现没有一篇文章完整的把Jitsi Meet搭建起来并且能够多人正常音视频通话的文章不管是论坛和QQ群经常有人问Jitsi搭建的问题,在此我就分享一篇我自己的搭建经验注意!!!本篇使用的官方教程Manual installation(手动安装),为什么使用手动安装不是快速安

2020-06-29 20:29:03 18270 11

原创 史上最全的WebRTC服务器技术选型分析

在上一篇文章里我们介绍了我们介绍了MCU和SFU的优缺点,webRTC通信方案SFU和MCU的区别?下面就来探讨下常见的SFU开源解决方案,当然,你也可以自己实现 SFU 流媒体服务器,但自已实现流媒体服务器困难还是蛮多的,它里面至少要涉及到 DTLS 协议、ICE 协议、SRTP/SRTCP 协议等,光理解这些协议就要花不少的时间,更何况要实现它了。前言所以最常见的办法就是使用开源的实现。但是这里我也想给大家说一定,用了开源的解决方案,能快速的搭建起业务,但是无疑也欠下了技术债,因为开源的解决方案肯

2020-06-07 17:28:59 6244 6

原创 jitsi meet 视频会议录制方案

我们都知道视频会议录制是个很常见的功能,但是由于jitsi meet使用jibri进行录制很耗资源,所以类似腾讯会议这种前端录制,不占用服务器资源,也是一种可选项。

2024-02-25 22:40:34 498

原创 Jitsi Meet 大型视频会议调优方案

我们的想法是,我们选择n 个参与者的子集来显示其视频,并停止其他人的视频。这允许非常高效的 CPU 实现,但它们需要的网络资源通常更高。在举办一些大型会议的时候,比如100个人会议,为了节约宽带和节省资源,我们并不会选择传输全部的音视频资源。举个例子,比如100个人线下会议,如果大家都说话的情况下,大家要么听不清,要么听得是声音最大的那几个人。

2024-02-25 22:30:30 958

原创 镜像方式安装Jitsi-No subject alternative DNS name matching authfound. Tried auth,internal.auth

之前在测试环境安装过jitsi,然后使用打机器镜像的方式又重新安装了一次,出现这样的错误,记录一下,送给有缘人。

2023-06-23 15:40:06 276

原创 我的创作纪念日

提示:你过去写得最好的一段代码是什么?提示:当前创作和你的工作、学习是什么样的关系。提示:可以和大家分享最初成为创作者的初心。提示:在创作的过程中都有哪些收获。提示:职业规划、创作规划等​​。

2023-06-06 13:56:30 475

原创 jitsi meet提示 Video Quality Impaired - Bridge Channel Disconnected (Real Time Video Attached)的解决方案

1.首先这个提示Video Quality Impaired - Bridge Channel Disconnected (Real Time Video Attached)3.检查jvb的日志。比如jvb默认监听10000 udp端口,端口被占用,启动出问题,就会连接websocket失败。2.jvb和客户端是通过websocket连接的,所以要检查websocket连接是否有问题。代表是客户端和jvb组件连接出现问题,一般浏览器都会有日志。

2023-01-04 11:26:08 812 1

原创 ssh 免密登录失败

近期遇到个ssh的问题,使用ssh key免密登录,帮小时前都是正常的,突然使用的时候就需要输入密码了,错误信息如下这里记一下解决思路客户端开启debug模式,这里可以使用-vvv -vv来查看日志由于我们这边只有登录13这台服务器是 不行。其他服务器是正常的,所以排除掉是客户端的问题服务端的日志可以在/var/log/secure 下查看,但是一般也看不出什么有用的信息解决思路,新监听一个ssh端口,客户端往新端口ssh,服务端能看到详细的日志这里看到服务端的日志是因为权限问题还要确保路径是存在的。

2022-12-27 17:23:31 569

原创 jitsi-meet安卓端进入房间就断开连接

近安装jitsi-meet后,web端使用chrome正常,但是安卓端进房间就报错。

2022-12-24 20:22:35 1086 1

原创 chrome108 版本跨域问题

客户访问我公司的公网的网站,比如http://example.com,然后客户连接vpn。网站根据客户登录的账号,找到服务器,坐席通过vpn和服务器通信• 服务器的ip地址:10.20.31.72• 客户连接了vpn后的地址为10.20.25.124客户使用chrome浏览器,chrome自动更新策略,浏览器更新到了当前最新版本108.0.5359.95,更新后客户登录网址发生了如下错误。The request client is not a secure context and the resou

2022-12-06 17:14:01 3341 1

原创 你知道吗?chrome自动更新到104版本,居然引起Java服务内存泄漏

近期在工作中,遇到了一次很有意思的内存泄漏,把排查过程和思路记下来,供大家参考和学习,如有不正确的,欢迎指正。1、为什么都是半托管的客户报这个问题,公有云未有客户反馈答:只有半托管客户满足公有ip访问私有ip的条件,且部分用户的chrome浏览器自动更新了2、这些半托管的客户为了稳定,代码已经很久没升级,代码都是2021年的,为什么都跟商量好似的,一起报问题,难道我有bug吸引体质?答:chrome自动更新导致3、为什么这些客户,物理机房隔离,问题表象却都一样?...

2022-08-12 09:53:46 384

原创 一次跨域问题的记录

最近一个项目,因为某些原因,需要从https访问改为http访问,在改造中出现了跨域的问题,在这里记录下。项目使用nginx做反向代理。

2022-07-26 15:52:39 998

原创 一次java内存top res高排查记录

分享一个最近的问题,top 看java进程res不断升高,一天能涨3个G,使用jmap dump内存快照后,dump下来的文件只有300多M,没有发现内存泄漏。这是个什么情况呢,我们深入分析下。首先,使用top来查看下当前进程的信息请添加图片描述可以看到top的res占用5.3g,jvm的参数如下早上的时候是4个g,下午的时候涨到7个g。通过gc日志和gc次数和时间来看,fullgc并没有有效的清理掉内存。我们使用手动触发一次fullgc,发现res还在持续增长,也就是说内存肯定有泄漏的地方。使用jmap

2022-07-11 15:33:39 4736 1

原创 编译jitsi-meet安卓遇到的问题

最近编译jitsi-meet的最新版的时候。在安卓的时候遇到个错误,而且官方现在还没有修复。记录一下,给有需要的人。react-native-gesture-handler RNGestureHandlerModule.kt: (11, 22): Unresolved reference: common解决方案,在package.json里面,把react-native-gesture-handler的版本升级成v2.2.0,在重新npm install,安卓在重新build 就好了。或者,修改代码在

2022-07-06 16:05:56 1373 2

原创 前端跨域问题的解决思路

做了一个简单页面,做了一些数据埋点,想通过企业微信机器人来推送数据,遇到了一些问题,顺便记录下。由于是项目比较简单,直接使用了ajax去请求,代码如下请求的时候发现了跨域问题这里为什么会跨域呢?因为我在我自己域名上去请求其他域名。• jsonp(维信机器人接口只支持json)• 后端设置跨域 (改不了微信接口的后台)那有什么方案呢?先明白问题所在,是因为浏览器同源政策导致跨域的问题,那我请求的域名是同源的不就好了吗?下面说下具体方法我只需要把ajax请求的url更换成自己的域名,然后使用nginx转发到

2022-06-24 17:49:50 727

原创 webrtc弃用并删除plan-b,jitsi-meet同步支持

前言webrtc弃用plan-b,在chrome96版本以上,如果使用plan-b,那么会创建RTCPeerConnection的时候会失败,公告如下: https://chromestatus.com/feature/5823036655665152解决方案• 使用chrome96版本以下的浏览器• 参加chrome延期plan-b计划,地址如下 https://developer.chrome.com/origintrials/#/view_trial/389223597795495

2022-05-17 18:53:51 288

原创 你应该了解Redis性能边界

## 前言之前线上发生一次redis cpu 使用率高的问题,导致服务雪崩。今天来复盘下。#### 环境信息redis:一主两从三哨兵客户端java:部署在k8s## 复盘早上告警群,收到告警,redis cpu使用率百分之90多,随后部署在k8s的JAVA服务,健康检查失败,k8s杀死pod,开始重启。至于为什么会这也,我们下一篇文章在进行分析。### 排查redis连接进redis查看现在redis给的建议```latency doctor```Warning: Using a password wit

2022-04-27 19:40:44 1158

原创 jitsi-meet修复log4j安全漏洞

前言之前log4j爆出漏洞CVE-2021-44228 和 CVE-2021-45046,作为视频会议框架的jitsi-meet也收到了波动,需要修复下这个漏洞,不然会存在安全隐患。修复方式在jitsi-meet模块中,jitsi-videobridge使用了log4j日志框架。下面我们来谈一下怎么修复• 首先网上下载log4j的jar包,如果网上搜索不到的可以找我。• 进入目录,替换jar包cd /usr/share/jitsi-videobridge/lib/mv&nbs

2022-04-25 15:58:34 435

原创 线上真实案例:mongo被OOM的一次历险

前言近期线上平台出现一次故障,mongo数据库被oom了,由于是高可用架构,重新选举了主节点后,继续工作,没想到刚选举完又被oom,mongo重启达到了分钟级别,多个节点被oom后,不能很快的拉起来提供服务,对业务产生了巨大的影响。分析•目前从表面来看,有这样几个问题1.内存128g,在这么高的配置下都发生了OOM,那么看来是有优化空间的,mongo为什么吃了这么多内存 2.为什么启动这么慢通过表分析,发现有很多大表,其中一个巨大的表占用了110个g,且有频繁的读写。原因是因为有很多冷数据,未做冷热数据分离

2022-04-11 17:14:25 682

原创 腾讯云和阿里云tcp三次握手的区别

前言近日同事遇到一个诡异的问题,帮忙进行了排查,好家伙不查不知道,一查让我知道了,腾讯云和阿里云TCP三次握手居然还有差异,没有想到云厂商这种Iass级别的服务,还有不同的标准~问题现象•客户是半托管客户,我们部署服务请求阿里云的nginx,nginx作为LB,反向代理了N个java服务,Java服务入库.请求链路如下: 客户物理机Java->阿里云 nginx->阿里云Java•从客户物理机请求阿里云的nginx的时候,出现了包太大,读取超时,包小,则无问题。从 物理机到-腾讯云的nginx-

2022-03-11 09:48:30 3394

原创 记一次TCP TIME_WAIT引发的血案

前言记录线上一次故障,状态延迟,状态使用短连接,长轮训的方式获取,在每天的固定时间点,出现状态延迟,持续几分钟,然后又莫名其妙的恢复了,很是怪异,下面就来复盘下,这次问题的定位和思考。冰山一角我们可以掌握的线索有1.固定的时间点,发生。2.通过监控可以看到,流量并不高,但是TCP TIMEWAIT一瞬间疯涨3.出问题的时间点,远程客户的电脑(全内网),ping网关和服务器,发现有大量延时4.有同事通过jstat看,发现gc的次数很多,认为gc导致了接口延时。5.接口超时的时间点,CPU不高

2022-02-28 18:19:17 2542

原创 来了,metaRTC2.0的时代

概述虎年的到来,metaRTC2.0稳定版本发布了,社区也开始规划3.0版本。开发者和企业利用在metartc2.0的基础上开发产品。下载地址[1]metaRTC和FFmpeg的绑定ffmpeg具有强大的音视频生态,metaRTC集成FFmpeg,降低了音视频开发门槛。FFmpeg可以被JAVA,JS,C#等调用,借助FFmpeg强大生态,可以让metartc支持跨平台。metartc3.0社区规划•支持android,ios,mac等操作系统•FFmpeg深度集成•wasm支持web H265•其他web

2022-02-09 10:49:42 4542

原创 如何监控JVM GC

如何监控GCgc监控是GC调优的必要前提,只有监控数据,才能知道该不该GC调优?如何调优?调优是不是有效果?有很多种方法可以监控GC,其差别只是展现的形式而已,所以不用特意的去学习所有监控gc的方法。jstatjstat 是HotSpot JVM提供的一个监控工具,jstat 不仅提供GC操作的信息,还提供类装载操作的信息以及运行时编译器操作的信息。jstat 被放置在 $JDK_HOME/bin。因此只要java 和 javac能执行,jstat 同样可以执行。你可以在命令行环境下执行如下语句

2022-02-08 18:29:07 6243 1

原创 jvm基础理论。

前言我们常说的JVM调优,到底指的是什么?你应该牢记一个名词stop-the-world,无论您选择哪种 GC 算法,都会发生stop-the-world,stop-the-world意味着 JVM 因为要执行GC而停止了应用程序的执行。当stop-the-world发生时,除了GC所需的线程以外,所有线程都处于等待状态,直到GC任务完成。我们常说的JVM调优大多数指的是减少stop-the-world时间建议不要使用System.gc()在JAVA中,不能显示的分配和删除内存,大多数程序员

2022-02-07 16:54:28 292

原创 Linux组件被爆漏洞,程序员:过年修复漏洞

前言近日Linux操作系统被爆出Polkit组件中pkexec程序存在权限提升漏洞(漏洞编号为CVE-2021-4034)。鉴于该漏洞影响范围大,潜在危害程度高,请各研发团队尽快根据Linux发行版官方提供的安全补丁,对开发、测试环境以及项目上的生产环境进行升级,运维环境由客户负责的还请通知客户安装补丁。漏洞详情如下:l 【漏洞描述】pkexec 应用程序是一个 setuid 工具,旨在允许非特权用户根据预定义的策略以特权用户身份运行命令。由于当前版本的 pkexec 无法正确处理调用参数计数,并最终会尝试

2022-01-27 16:48:33 9185 1

原创 FFmpeg实现拉WebRTC流,MetaRTC业界首个全开源方案来了

前言最近MetaRTC微信群。杨成立大佬提了一个建议,MetaRTC集成FFmpeg中,这样FFmpeg就可以实现推拉WebRTC流,MetaRTC采取了大佬的建议,与2022-1-20实现了FFmpeg拉webRTC流进行播放。全开源的方案,没有二进制库和私有协议,全都是开源代码和公开的协议。下面给大家介绍下使用方法。下载源代码gitee快速下载通道github下载通道打开连接后内容如下:ffmpeg-n4.3.3.7z为集成MetaRTC的FFmpeg...

2022-01-20 11:33:58 5677 3

原创 Linux出现Operation Not Permitted 问题

在linxu下删除和读写文件的时候出现问题 Operation not permitted之前一直没有纠结过这个问题,最近部署一个私有云的时候遇到了这个问题,我是root权限,文件也有编辑权限,但是无法读写。原因是因为给一些文件打了flags:查看flagslsattr 1.md----i--------e-- ./1.md文件上存在i标记,那肯定是删除不掉的,同样文件也不能编辑。去掉标机chattr -i 1.md打标机chattr +i 1.md...

2021-12-29 14:38:05 5995

原创 嵌入式音视频解决方案 Webrtc vs MetaRTC

前言疫情后,音视频领域引来新的腾飞,视频会议,云桌面,云游戏等应用层出不穷。实时,高效,协同成了企业的代名词,没有这几点,感觉企业跟不上时代的步伐。前几日,刷爆朋友圈的 “天空课堂”,神舟十三号乘组航天员翟志刚、王亚平、叶光富将在空间站进行太空授课,中国载人航天工程办公室联合教育部、科技部、中国科协、中央广播电视总台共同主办。中央广播电视总台将进行全程现场直播。我们可以看到随着5G技术的成熟,人们对实时性,互动性提出了更高的要求。大名鼎鼎的Webrtc提到音视频,就不得不提谷歌的Webrtc,很多

2021-12-19 21:57:22 8662

原创 https和wss使用tls加密套件RC4,不安全导致账户数据被泄露

前言现在https和wss已经很普遍了,所以我们经常会使用https代替http,wss代替ws,但是使用https加密也不意味着安全。安全无小事注意 任何架构和任何技术都必须要把安全放在第一位,一个安全事故,能摧毁一个公司和一个行业起因部署程序在客户机房,被客户扫描出一个漏洞,漏洞如下:SSL/TLS协议是一个被广泛使用的加密协议,Bar Mitzvah攻击实际上是利用了"不变性漏洞",这是RC4算法中的一个缺陷,它能够在某些情况下泄露SSL/TLS加密流量中的密文,从而将账户用户名密

2021-12-07 15:20:19 5269

原创 centos7 gam_server进程导致CPU使用率100%,系统负载很高

现象gam_server的进程占用吃满cpu,导致系统负载很高,top命令卡死作用gam_server是gamin的二进制文件,作用是文件交替监控方案找到最高的进程PIDtop是Linux常用的监控命令,但是在系统负载很高的情况下,我们使用不了top,此时可以使用其他命令代替查看cpu最高的进程 类似top (然后按下M,注意这里是大写)ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head查看内存占用最高的进程 类似top (然

2021-11-30 10:29:20 2866

原创 Uroboros一个 GNU/Linux 监控和分析工具,专注于单个进程。

介绍Uroboros 旨在通过提供单一工具来在终端中实时记录、重放和呈现进程运行时信息来填补这一空白,而不会像基于 ptrace 的更具侵入性的解决方案那样影响进程性能。安装需要先安装gogit clone https://github.com/canha/golang-tools-install-script.gitbash golang-tools-install-script/goinstall.shsource /root/.bashrc设置代理export GOPROXY

2021-11-15 11:30:10 152

原创 记一次线上环境redis响应慢,导致雪崩

前言redis是主从加哨兵架构,java服务放在k8s上,使用springboot的actuator来进行健康检查。故障原因如下,redis因为cpu激增,导致响应慢,断开了和java的连接,正好在k8s健康检查的时间内,检查到java服务不正常,k8s干掉了java服务,导致业务不正常。解决思路首先防止雪崩效应,避免雪球越滚越大,网络波动是我们避免不了的,我们也不能因为这个原因,去加大k8s检查间隙时间或者关闭k8s的健康检查,不能因为丢了西瓜去捡芝麻,所以更合适的解决办法是,sprin.

2021-10-18 16:00:11 538

原创 JAVA线上内存忽高忽低排查方案

今天线上出现了内存忽高忽低,由于业务正在大量使用,没有第一时间dump内存,下面介绍下几种查看内存占用情况。1.动态观察内存情况watch -n 5 'jmap -histo pid'这里观察的内,我们可以在arthas查看详细的内容,比如vmtool --action getInstances --className java.lang.String --limit 102.通过arthas生成火焰图profiler start --event allocprofiler stop

2021-10-08 16:29:27 1021

原创 记一次opensips DNS问题

现象invite 到opensips的时候,发现opensips无响应,这个情况不是固定出现,而是周期性的,比如几个invite出现一次。日志将日志调整为debug级别后,查看到关键日志的信息DBG:core:mk_proxy: doing DNS lookup...Aug 19 19:42:25 tv7-inbound-proxy-1 /usr/local/sbin/opensips[25820]: DBG:core:sip_resolvehost: no port, no proto -&gt

2021-08-19 21:39:09 240

原创 记录rsyslog丢日志问题

现象使用rsyslog记录opensips的日志,当访问量大的时候,会出现丢日志的问题在系统日志有以下输入imjournal: 12856 messages lost due to rate-limiting或者Suppressed 6273 messages from /user.slice/user-1085.slice原因在 Linux 中,默认情况下有一些不同的机制可能会限制速率日志记录。这些主要是默认设置的 systemd 日志和 rsyslog 速率限制。为什么限速?日志记录的

2021-08-18 17:12:42 1504

原创 记一次centos7上权限问题Permission Denied

权限在确认了是有访问权限和文件有权限的情况下,可以看下是不是和我一样的情况开启了SELinux或者AppArmor案例在nginx上使用方向代理python程序,nginx一直报502nginx配置测试 curl localhost/getNumbernginx访问日志127.0.0.1 - - [03/Aug/2021:15:46:03 +0800] "GET /getNumber HTTP/1.1" 502 3693 "-" "curl/7.29.0" "-"127

2021-08-03 17:31:52 3238

原创 记一次python cpu100%分析记录

找到进程号 pid比如我这里进程号为3151 ps -ef | grep python root 3151 1 0 15:56 ? 00:00:10 python random-server.py 9999查看进程中线程占用情况top -Hp 3151跟踪进程的执行栈watch pstack 3151跟踪函数的调用strace -f -p 3151查看进程中线程的详细信息cat /proc/3151/task/3151/status..

2021-08-03 17:17:09 1073 1

原创 搭建简易版的k3s

机器规划服务器规划ipk3s-master主节点/mysql/rancherUI172.16.3.2k3s-work工作节点172.16.3.3注意每台计算机必须具有唯一的主机名。如果您的计算机没有唯一的主机名,请传递K3S_NODE_NAME环境变量,并为每个节点提供一个有效且唯一的主机名。我就是因为这个问题耽误了很长时间,如果主机名相同,请设置export K3S_NODE_NAME=work搭建mysql在master节点使用docker搭建my

2021-07-06 19:30:42 351

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除