背景 随着全民直播时代的到来,以及最近疫情的爆发,在线教育行业又变的炙手可热,成为了新的风口。这两者的背后都是依靠着 CDN 以及视频云等基础服务,而这些基础服务的底层又依靠着流媒体服...
作者前言 作为Monibuca流媒体服务器的开发者,我们一直在寻求提供更高效、更灵活的流媒体解决方案。随着Web前端技术的发展,特别是Media Source Extensions (MSE) 的广泛应用,我们逐渐认识到...
作者前言 作为Monibuca流媒体服务器的开发者,我们一直在寻求提供更高效、更灵活的流媒体解决方案。随着Web前端技术的发展,特别是Media Source Extensions (MSE) 的广泛应用,我们逐渐认识到...
背景 在 monibuca 的开发中,虽然经过了从 v1 到 v4 的架构的不断演进。有一个问题始终困扰着我,就是流程退出时的并发问题。这次通过面向任务编程彻底解决了这个痛点。 文末有视频版 面向任...
背景 在之前我们提到采用自定义的内存分配器来解决防止频繁 make 导致的 gc 问题。gc 问题本质上是 CPU 消耗,而内存分配器本身如果产生了大量的 CPU 消耗那就得不偿失。经过测试初代内存分配...
背景 在开发高 IO 的程序都会面临一个问题,就是如何提供从网络层读取数据的性能。 直接读取 直接读取类似下面这种情况 b:= make(100) io.ReadFull(conn,b) 优点是简单,而且延迟较低,可以立...
背景 v4 中使用了链表存储了不同大小的内存块的方式进行内存池的实现(参考这篇v4内存复用机制),实际测试中发现内存浪费比较严重,因此如何设计出使用效率高,操作简洁的内存池就成了 v5 的...
Go语言本身具备出色的性能,然而在流媒体服务器这种CPU密集+IO密集的双重压力下,GC带来的性能损失是最主要的矛盾。而减少GC的操作最直接的办法就是减少内存申请,多多复用内存。本文将围绕内...
总体流程图 详细说明 创建工作目录 在电脑上新建一个目录,用于存放我们的启动工程和插件工程等。 建议可以直接使用vscode打开这个目录,更方便后续操作。需要安装好go 1.19以上,vscode安装...
对于golang新手来说,经常会出现无法编译一个github上的项目,主要原因是http://golang.org域名被墙,导致无法正常下载依赖项,另外go module还有GOPATH等一些概念不熟悉导致的。本人以http:...
OBS官方明确表态不支持H265,貌似以后也不会支持,什么原因呢?可以看官方论坛上的吵架 h265 Supportobsproject.com 不想看英文的,我这里简单说一下,就是因为Adobe公司的RTMP协议里面并没有...
其中Function、Object是JavaScript的内建类,JavaScript的类实际上是一个function 而function对象会凭空多出一个prototype属性 这就是一切困扰的起源 凡是function类型的对象,constructor都...
没有更多内容
加载失败,请刷新页面
文章删除后无法恢复,确定删除此文章吗?
动弹删除后,数据将无法恢复
评论删除后,数据将无法恢复