tinyfecVPN的android版本编译

在考虑实现一个P2P的公网监控点播方案,监控端通过局域网组网,局域网放一台服务器(双网卡,可上外网),作为局域网内所有监控的控制出口,该服务器上运行ZLMediaKit Server程序,集成tinyfecVPN Server的能力,通过该端口维持一个端口到公网STUN服务器的心跳(并转换为公网的地址和端口),所有接入的客户端通过公网的地址和端口点播实时的监控(协议走rtmp、rtsp或者hls均
阅读全文

FMP4与DASH的概念理解

查找HLS的切片格式的时候发现有ABR/DASH/FMP4等新概念,记录下这些概念,以备后续使用!
阅读全文

Serverless概念笔记

Serverless直译是无服务器的意思,俗称“无服务器架构”;所谓“无服务器”,并不是说基于 Serverless架构的软件应用不需要服务器就可以运行,其指的是用户无须关心软件应用运行涉及的底层服务器的状态、资源(比如 CPU、内存、磁盘及网络)及数量,软件应用正常运行所需要的计算资源由底层的云计算平台动态提供。传统的软件开发流程中,软件开发人员需要考虑真正的服务器,因为应用是跑在这个服务器上的
阅读全文

一个UDP可读缓冲区不够导致丢包的现象

今天看到一篇写UDP 丢包场景的文章,其中提到如果UDP 缓冲区填满导致丢包的问题,写了个小程序验证了下,确实之前没有细究过,如何解决,以libevent测试程序为例,在接收到缓冲区有数据的事件后,首先通过如下的方法,或者libevent封装的方法,获取到系统缓冲区中可读数据的大小,然后申请到对应大小的buffer去调用recvfrom方法,否则会出现如上UDP可读缓冲区小余可读数据的情况,导致出现UDP数据读不全的问题!
阅读全文

搭建UDP加速访问网络

最近接触到关于UDP加速的开源项目,感觉蛮有使用价值,做了个简单的应用,分享给大家!
阅读全文

知识能学到,而技能只能习得

​知识和技能是有关联,有重叠,知识能学到,而技能只能习得,所以你最先开始识别你学习的是一种知识,还是一种技能,并采用不同的方法来应对;比方编程是在理解计算机程序知识的基础之上,在计算机上进行的一种体力劳动,那么编程有一半可以理解为知识,而另一半则理解为技能,所以培训的活动既要有学习知识的记忆,消化,也有技能学习的不断地刻意练习,实战,两种都要扎实,两种都不可偏废!
阅读全文

Jitsi服务器搭建过程问题记录

Jitsi是一个基于WebRTC的开源会议服务系统,主要提供高质量、安全、可扩展性强的视频会议能力;使用网上的安装过程,大都第一次能正常的安装,并打开一个人的会议,但未必能调通多人的会议功能,从github的Issure中,包括很多类似的问题“Jitsi-videobridge2 Failed to select initial bridge for participantRegion=null”,而且还很多,将修复的过程做了记录
阅读全文

docker安装zulip服务

zulip号称是特性强大的企业版即时聊天应用,开源并且有超过500家企业部署使用,出于好奇,所以安装了一个版本体验体验,国内鲜有安装过程记录,有一个通过docker-compose安装的脚本,但zulip的容器启动总是报错,所以单独安装了一遍,记录安装过程中的错误。
阅读全文

推荐短片《绝夜逢生》

假如世界末日来了,你的亲人,朋友,都未能躲过这场浩劫,而你,刚好意外地出现在诺亚方舟上,亲眼目睹灾难发生后的世界,在绝望不断地逃生,在自救和他救中,还原出人真正的本性!这就是这样子的一部片子《绝夜逢生》,第一季,一共6集,每一集就30多分钟,短小精悍,一口气就能看完的短剧,紧张,刺激,不拖泥带水,一气呵成,看完了,还想着看续集的那种意犹未尽之感!
阅读全文

关于I/O模型,和select、poll、epoll的区别

I/O模型主要包括:阻塞IO、非阻塞IO、I/O 多路复用、异步I/O和信号I/O;阻塞和非阻塞能应用于所有文件描述符。所谓阻塞方式的意思是指,当试图对该文件描述符进行读写时,如果当时没有东西可读,或者暂时不可写,程序就进入等待状态,直到有东西可读或者可写为止;而对于非阻塞状态,如果没有东西可读,或者不可写,读写函数马上返回,而不会等待,O_NONBLOCK 的标志打开文件/Socket/FIFO句柄,如果连续做 read 操作而没有数据可读,此时程序不会阻塞起来等待数据准备就绪返回,read 函数会返回
阅读全文