自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ffmpeg&webrtc&study

记录音视频工作及学习内容

  • 博客(58)
  • 收藏
  • 关注

原创 mediasoup企业级会议并发方案设计

单个mediasoup稳定支持200-300路流,为了增加服务的并发,在一个服务器上部署5个信令服务及mediasoup服务。由于csdn图片大小有5M限制,因此无法在文章中展示高清图,有需要的可以私我,给发高清图。单台服务器32核cpu,32G内存,带宽2000M及以上。

2024-07-18 21:15:26 271

原创 工作边界感

在工作之前就要明确自己和他人的边界,非别人本职工作的内容,也不要去强加给别人,毕竟干好了,是他人对你的帮助,但是如果干不好了,他人也可以甩锅说这本来就不是我的工作,然后相互扯皮。非自己分内的工作,该拒绝的时候要果断拒绝,切不可因为帮助他人完成了非自己本职工作,然后导致自己的本职工作无法按时完成。综上所述,处理工作边界问题需要明确各自的职责和权益,建立有效的沟通机制,制定明确的规则和流程,并保持开放和包容的心态。在处理工作边界问题时,应保持开放和包容的心态,尊重不同的观点和意见。

2024-07-18 20:26:33 273 2

原创 mysql高并发设计

连接池是一种管理数据库连接的技术,可以有效地减少连接的创建和销毁开销。当有新的请求到来时,可以从连接池中获取连接,而不需要每次都重新创建连接。通过适当设置查询缓存和系统缓存,可以减少磁盘IO操作,加快查询的执行速度。优化查询可以提高MySQL性能。可以通过合适的查询语句、索引和缓存机制来减少查询的执行时间,避免全表扫描和不必要的数据操作。写入扩展性:两个节点都可以处理写入操作,提高了写入操作的扩展性。数据冗余:提供了数据的热备份,降低了数据丢失的风险。数据延迟:由于复制是异步的,存在数据复制延迟的风险。

2024-07-11 19:34:18 850 20

原创 srs直播内网拉流带宽飙升问题记录

客户端从srs拉流,发现外网客户端拉流,cpu和带宽都正常。然而内网客户端拉流,拉流人数超过5人以上,带宽就会迅速飙升。经过排查公司内网环境,发现内网环境做了带宽限制,当客户端拉流带宽超过一定大小后,就限制拉流。用srs-bench进行srs压测,vlc播放器srs拉流,以及客户端srs拉流。缺陷:网络异常,srs不进行丢包重传,此时会出现马赛克,卡顿等问题。srs部署在云服务器上,32核cpu,64G内存,带宽300M.优势:内网及外网的网络正常情况下,直播拉流正常,带宽消耗少。

2024-07-08 19:40:44 1654 52

原创 我的创作纪念日

过往的工作经历中,虽然也时长做笔记,记录学习及工作的内容,但是始终没有坚持下去,浑浑噩噩,每天都是重复的上班下班,周而复始。说到收获,最主要是就是记录工作及学习中的技术,一方面可以在需要的时候回顾一下过往整理的技术点,另一方面也可以在此和各个领域的大牛一起学习,探讨,深入技术,这是之前没有的体验。工作任务较忙,也许没有经历每天都写博客,但是我不会中断我的创作之旅,在后续的日子里,依旧会在工作之余抽出时间创作博客,和众多大佬们共同进步。学无止境,保持初心,一往直前,做一个有理想有抱负的技术大佬。

2024-06-29 14:28:58 543 26

原创 程序员软实力

需求文档,设计文档,接口文档,流程图,架构图,思维导图,培训文档,PPT,这些都是日常工作中必须要具备的能力。对于很多普通本科或者非计算机专业的IT从业者来说,入行IT都是靠B站或者网上的一些计算机课程,或者培训机构突击4-6个月,然后入门从事IT行业,尽管刚入行的时候找到一个还可以应付的工作,但是拔苗助长,临时抱佛脚,背诵八股文的新手,实际上基础并不扎实,现在很多培训机构,尤其是打着零基础到精通,包分配的线下培训机构,其实并不是教你如何快速提升编程能力,而是教你如何应付面试,如何背八股文。

2024-06-25 23:50:41 1101 14

原创 mediasoup开源项目合辑

更多关于mediasoup的文章可以进入我的专栏查看。拥抱开源,站在巨人的肩膀上前行!

2024-06-25 22:14:52 1232 17

原创 mediasoup专栏介绍

mediasoup专栏记录

2024-06-23 11:10:47 1549 55

原创 mediasoup源码分析(七)transport传输

Transport收到数据packet后,会解析出packet中所带的ssrc字段,然后基于ssrc找到该数据的Producer。Produer也是基于ssrc找到RtpStreamRecv。二、RtpStreamRecv 处理收到的包。

2024-06-23 09:56:28 249 1

原创 mediasoup 源码分析(六)consumer和producer

mediasoup总共有四种消费者类型,SimpleConsumer、PipeConsumer、SvcConsumer、SimucastConsumer。consumer的类型是基于producer的类型来创建的。SimpleConsumer: 普通RTP数据的消费者,对应PlainTransport。PipeConsumer:不同Worker之间Router之间的数据流转,则其为接收或者消费从另外一个Worker中的Router传过来的数据。

2024-06-23 09:34:58 340

原创 mediasoup 源码分析 (八)分析PlainTransport

PlainTransport 可以接收裸RTP流,也可以接收AES加密的RTP流。源码中提供了一个通过ffmpeg发送裸RTP流到mediasoup的脚本,具体地址为:mediasoup-demo/broadcasters/ffmpeg.sh。脚本就是通过HTTP Post发送创建PlainTranport请求,然后通过ffmpeg向指定地址+端口,发送RTP流。真正绑定的地方在PortManager::BindUdp(ip)中,随机从指定Port范围中选出可用Port,然后绑定。

2024-06-23 09:13:13 443

原创 mediasoup 源码分析(五) 创建room 和 router

mediasoup-demo/server/node_modules/mediasoup/src/Channel.ts 中管理和C++通信的channel。代码见:mediasoup-demo/server/node_modules/mediasoup/worker/src/Worker.cpp。详情见:server/node_modules/mediasoup/src/Worker.ts。详情见mediasoup-demo/server/lib/Room.js。四、创建Router。

2024-06-22 23:08:36 738 1

原创 mediasoup源码分析(四)channel返回信令及notify通知

在mediasoup源码分析(三)channel创建及信令交互一文中介绍了mediasoup中channel的创建,接下来在本文中,会说明mediasoup c++层如何将处理后的数据返回到信令服务中。在 Mediasoup 中,C++ 编写的媒体层(mediasoup-worker)与信令服务之间的通信通常是通过 JSON 格式的数据进行的。这种数据格式易于解析和生成,并且被广泛用于 Web 服务和客户端之间的通信。一个有三个返回的接口。

2024-06-22 09:00:00 1927 28

原创 c++中log4cplus日志库引用

这些示例展示了如何配置和使用 log4cplus 进行基本的日志记录。大家可以根据项目的需求调整 Appender、Layout 和 Logger 的配置。log4cplus 是一个用于 C++ 的日志库,它提供了线程安全、灵活且细粒度的日志管理和配置控制。

2024-06-20 19:30:52 712 35

原创 分享vs code十大好用的插件

将 VS Code 界面改成简体中文。在VS Code 中打开 PDF文件。这个扩展会突出显示您的待办事项注释,并提醒存在未完成的注释或任务。该扩展附带了内置的关键字 TODO: 和 FIXME:,也可以添加自己的关键字并更改其外观。一些关键词汇高亮显示,方便对 需要重新检查的内容 作注释,支持自定义关键词。

2024-06-20 13:42:12 482 5

原创 mediasoup源码分析(二)--worker启动

官方提供的mediasoup-demo是由js(信令)+c++(流媒体服务)两部分服务,mediasoup的worker进程是nodejs通过child_process 的spawn()接口启动的。

2024-06-18 21:12:45 1087 6

原创 mediasoup源码分析(三)channel创建及信令交互

在golang实现mediasoup的tcp服务及channel通道一文中,已经介绍过信令服务中tcp和channel的创建,本文主要讲解c++中mediasoup的channel创建,以及信令服务和mediasoup服务如何交互。

2024-06-18 00:03:52 4343 37

原创 golang实现循环队列

假溢出通常发生在循环队列的头部和尾部索引在数组中相遇时,即使数组中还有空间可以存放新元素。出现假溢出的原因,从根本上来说,是因为循环队列的容量被错误地判断为已满。在Go语言中实现循环队列,我们需要定义一个循环队列的数据结构,并实现其基本操作,包括初始化、入队(Push)、出队(Pop)、获取队列长度等。避免假溢出的关键在于正确地维护队列的状态信息,确保在任何时候都能准确地判断队列是否真正满了或者空了。在设计循环队列时,应该根据具体的应用场景和性能要求来选择最合适的策略。

2024-06-17 00:00:00 1012 10

原创 机器学习-课程整理及初步介绍

机器学习是人工智能的一个分支,它使计算机系统能够从经验中学习并改进其在特定任务上的表现,而无需进行明确的编程。机器学习涉及多种算法和统计模型,它们可以从数据中学习规律,并做出预测或决策。机器学习的应用非常广泛,包括图像识别、语音识别、推荐系统、自动驾驶汽车、医疗诊断等。监督学习(Supervised Learning):算法从标记的训练数据中学习,以便对新的未标记数据进行预测。无监督学习(Unsupervised Learning):算法从未标记的数据中学习,以发现数据中的结构或模式。

2024-06-17 00:00:00 1255 5

原创 SRS压测--SRS-Bench

srs压测

2024-06-03 20:27:29 977 22

原创 mediasoup基础概览

mediasoup整体介绍

2024-06-02 13:56:30 2396 31

原创 c++字符串相关接口

c++字符串相关接口整理

2024-06-01 17:45:46 883 18

原创 SRS介绍及环境搭建

srs基础介绍

2024-05-30 23:52:39 1277 4

原创 golang实现mediasoup的tcp服务及channel通道

Client:表示客户端连接,包含网络连接conn、指向服务器的指针Server和Channel指针c。server:表示TCP服务器,包含服务器地址address、TLS配置config以及三个回调函数:onNewClientCallback:新客户端连接时调用。onClientConnectionClosed:客户端连接关闭时调用。onNewMessage:客户端接收新消息时调用。

2024-05-27 09:00:00 1242 22

原创 mediasoup源码分析-v2和v3版本差异

mediasoup分析v2和v3差异

2024-05-27 08:00:00 1584 5

原创 mediasoup源码分析(九)pipeTransport介绍

一个worker中的数据传到Router,然后传给Router中的消费者,而这个消费者的IP是另一个worker的地址,所以数据会传到另一个worker。此时数据是输入数据,所以相当于另一个worker的produer,即push数据。注意这个 OnConsumerSendRtpPacket()的理解,本worker的数据发送给另一个worker,对端的那个worker相当于一个消费者。当他订阅的时候,本worker就保存了对端worker的ip:port信息。而级联就是用来解决这个问题的。

2024-05-24 22:05:54 634 9

原创 golang通过go-aci适配神通数据库

设置环境变量:PKG_CONFIG_PATH,export PKG_CONFIG_PATH=$go-aci , $go-aci为go-aci代码的路径,比如export PKG_CONFIG_PATH=/usr/lib/go/src/go-aci。到/usr/lib/go/src/go-aci/test目录下,编译test.go : go build -o test_goaci test.go,如图。开启一个cmd,然后进入到C:\Go\src\go-aci目录下,依次执行,没有报错即为正确。

2024-05-24 21:38:22 1191 12

原创 golang适配GBase8s(南大通用)数据库

golang适配GBase8s

2024-05-17 10:38:32 1456 11

原创 mediasoup日志模块

mediasoup日志模块分析

2024-05-15 23:18:53 845 12

原创 mediasoup源码分析(一)编译及部署

mediasoup编译

2024-05-12 21:32:07 640 1

原创 网络编程--tcp三次握手四次挥手

三次握手四次挥手

2024-05-10 20:13:59 807 3

原创 janus源码分析(1)--代码结构整理

janus代码梳理

2024-05-09 23:18:11 1252 9

原创 c++代码规范整理

代码规范整理

2024-04-28 20:00:34 925 4

原创 开源sip服务整理

sip开源服务

2024-04-27 23:24:35 1100 2

原创 linux环境安装cmake

cmake安装

2024-04-24 22:34:09 957 1

原创 网络编程-libuv介绍

libuv整理

2024-04-23 23:19:17 1825

原创 janus模块介绍-SIP Gateway

janus模块sip gateway详解介绍

2024-04-22 23:20:08 1759 4

原创 SRS服务接入华为云CDN

SRS服务接入华为云CDN

2024-04-19 20:38:18 1398

原创 janus架构学习

记录janus架构

2024-04-17 23:46:15 1096

原创 mediasoup开源项目汇总

整理大佬们的mediasoup开源项目

2024-04-17 19:29:28 322

mediasoup类图

整理mediasoup的信令及流处理,包括worker,router,producer,consumer,transport等模块。跨职能流程图详细介绍mediasoup,有助于读者更深入的理解mediasoup。欢迎各位大佬莅临指导

2024-05-24

windows-hook-demo

一个关于hool技术的demo样例,通过该样例,读者可以清晰的了解到hook技术在我们日常开发中是如何应用。

2024-05-06

mediasoup学习整理

官网地址https://mediasoup.org/ 整理mediasoup相关api,资源,

2024-02-24

空空如也

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

TA关注的人

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