
学习笔记
文章平均质量分 69
winlinvip
直播和WebRTC程序员,开源服务器SRS
展开
-
Prometheus笔记
Prometheus的学习笔记。原创 2022-08-16 20:52:44 · 1505 阅读 · 1 评论 -
如何开发宝塔插件
宝塔管理服务器比较方便,管理网站和数据库,安装各种插件,比较灵活。如果能用宝塔安装云SRS,那可以在很多云和虚拟机都可能安装了。说干就干,先去下载资料,宝塔插件的官方手册和官方论坛,还有官方Demo,可以直接下载下来后在你的宝塔中安装。我跟着操作了一遍,发现还是有些地方没有说清楚,而官方Demo比较复杂,写得比较隐晦,就重新写了个教程。Note: 目前插件开发,需要企业认证,认证通过后,才能开发第三方应用插件。Develop Mode记得一定要打开开发者模式,否则修改代码不生效:Note原创 2022-04-26 16:15:51 · 2181 阅读 · 0 评论 -
PhpStorm+Apache+Xdebug3开发调试环境搭建
我搭建过C/C++/Go/Nodejs/Python等开发调试环境,PHP的是最难搭建的,因为PHP的调试工具是PhpStorm,而服务器是Apache,调试模块是Xdebug(2和3还不同),加上PHP有各种调试姿势,比如还有ZEND调试,眼花缭乱,更加不容易搞好。原创 2022-04-14 07:47:15 · 1213 阅读 · 0 评论 -
SRS官网如何发布新版本
SRS官网ossrs.net全部部署在K8S上,由以下服务组成:Web服务:http://ossrs.net 和 https://ossrs.net,包括SRS的安装包下载,版本信息,播放器页面,演示页面。稳定版SRS流媒体服务,演示比较稳定的服务,比如SRS v3.0-r3:r.ossrs.net开发版SRS流媒体服务,演示最新的功能,比如SRS v4.0.76:d.ossrs.net发布时,先获取官网代码,SRS官网是在srs.release这个仓库:git clone https://g原创 2021-03-02 21:25:45 · 1582 阅读 · 0 评论 -
UDP服务器性能优化:Perf和GCP的对比
RTC服务器是UDP协议,存在以下几个难点:UDP包数目众多,包普遍比较小。比如一个视频关键帧,可能会被分成几十个UDP发送。比如每个Opus包,几十到一百多字节不等。不同协议需要复用端口(才能支持K8S云原生平台),每个包都需要找到对应的Session处理,客户端地址可能还会变更。高实时性,每个Session要即时的收发数据,不能做主动聚集包后收发,每个Session短时间就一两个包处理,没有太多可以批量处理的包。内核对UDP协议的性能优化,不如TCP高,优化方式也不如TCP多。需要加密和解密原创 2021-03-01 15:22:20 · 1282 阅读 · 1 评论 -
Bootstrap笔记
链接默认div布局就是不断的堆叠。默认布局主要是上面的间隙太少,可以加增加间隙。标签和Badges可以用在显示状态,参考:这里警告框样式,可以用来显示错误消息提示。参考:这里进度条样式,显示进度,可以参考:这里导航条样式,一般的导航和菜单栏,可以参考:这里分页样式,可以参考:这里导航和TAB分栏,可以参考:这里下拉按钮组,可以参考:这里按钮组,可以参考:这里下拉菜单组,可以参考:这里折叠组,可以参考:这里信息展示方式,可以用dl/dt/dd也就是水平描述的方式。列表可以用ul/ol/原创 2021-02-15 22:17:08 · 1235 阅读 · 1 评论 -
Mac使用技巧
手势基本手势设置:Settings => Trackpad轻点:Tap to click全屏App切换。Launch Pad。窗口拖动手势:Settings => Accessibility => Point Control => Trackpad Options => Enable DraggingTAB:最近使用的App的快速切换。快速锁屏:Settings => Mission ControlTerminal终端Tab,以及切换快捷键,Com原创 2021-02-15 21:53:16 · 299 阅读 · 0 评论 -
笔记:K8S备忘录
K8S的概念:Node(节点),节点机器,可以是物理机或虚拟机,比如ECS,运行了各种进程和docker等。Pod(容器组),应用的执行单元,创建和部署的单元;包含一个或多个容器,存储和网络资源,以及配置项。Controller(应用),管理Pods、复制和自愈,例如Node失败时自动迁移Pods到其他节点。Deployment(无状态),无状态Controller(应用)。Container(容器),一个Pod可以跑N>=1个Container,这些Container可以共享一些东西。原创 2021-02-01 16:34:31 · 565 阅读 · 0 评论 -
笔记:C++中正确使用PRId64
例子参考高性能流媒体服务器SRS:https://github.com/winlinvip/simple-rtmp-serverSRS中广泛使用PRId64实现32和64位系统通用。c++使用PRID64,需要两步:包含头文件:<inttypes.h> 定义宏:__STDC_FORMAT_MACROS,可以通过编译时加-D__STDC_FORMAT_MACRO...原创 2019-12-29 19:21:30 · 31373 阅读 · 1 评论 -
笔记:函数调用过程、参数和寄存器
这里写自定义目录标题函数调用过程、参数和寄存器GDB函数调用过程长参数函数调用函数调用过程、参数和寄存器之前实现macOS的coroutine汇编代码时,有分析过如何实现函数状态保存和恢复,这几天仔细看了下函数调用和传参,以及几个寄存器的使用。GDBGDB可以查看当前代码的汇编代码和寄存器,可以多次执行选择不同的layout:(gdb) layout pre如下图所示:按照汇编指令执行,可以用:(gdb) si函数调用过程代码参考frame0.cpp, 总结如下图所示:rb原创 2020-10-29 12:25:39 · 2692 阅读 · 0 评论 -
笔记:WASM WebAssembly
HelloWorld编写C++代码:helloworld.cpp#include <stdio.h>int main(int argc, char ** argv) { printf("Hello World!!!\n");}使用Docker将C++代码,编译成wasm,生成调用的js和html:docker run --rm -v $(pwd):/src emscripten/emsdk emcc helloworld.cpp -o helloworld.html可以原创 2021-02-01 13:53:56 · 818 阅读 · 0 评论 -
笔记:DOCKER相关
镜像管理看本机存在的imagesdocker images删除某个镜像,参数是ImageID:docker rmi -f 32c921902fdb容器管理启动容器:docker run -p 1935:1935 ossrs/srs:3查看运行中的容器:docker ps查看所有容器,包括已经停止的容器:docker ps -a可以指定当容器退出时,自动删除,参数--rm:docker run --rm -p 1935:1935 ossrs/srs:3删除已经停止的容器原创 2021-02-01 13:18:00 · 660 阅读 · 0 评论 -
笔记:一些UNIX命令小点心
Mac下看端口对应的pidlsof -nP比如:winlin$ lsof -nP|grep 9999server 24435 winlin 4u IPv6 0x51e37b3ca4d1227 0t0 UDP *:19999client 24572 winlin 5u IPv4 0x51e37b3d4513657 0t0 UDP 127.0.0.1:62689->127.0.0.1:19999参数:-P no port names原创 2021-02-01 12:34:51 · 371 阅读 · 0 评论 -
笔记:Envoy on macOS
Envoy笔记:macOS在macOS下,学习Envoy的笔记。macOS编译和调试Envoy下载Envoy源代码:git clone https://github.com/envoyproxy/envoy.git && cd envoy && echo "OK"使用brew安装依赖:brew install bazelisk &&brew install coreutils wget cmake libtool go bazel autom原创 2021-01-31 14:43:49 · 964 阅读 · 0 评论 -
笔记:GIT配置和命令
推荐使用推荐配置成每个项目单独配置的方式:git config --local user.name "winlin"git config --local user.email "winlin@vip.126.com"git config --listGIT设置ALIAS别名git config --global alias.co checkoutgit config --global alias.br branchgit config --global alias.ci commitgi原创 2021-02-01 12:27:55 · 266 阅读 · 0 评论