#毛主席的六大读书笔记

webrtc笔记(3): 多人视频通讯常用架构Mesh/MCU/SFU

问题:为什么要搞这么多架构?webrtc虽然是一项主要使用p2p的实时通讯技术,本应该是无中心化节点的,但是在一些大型多人通讯场景,如果都使用端对端直连,端上会遇到很带宽和性能的问题,所以就有了下图的三种架构。一、Mesh架构即:每个端都与其它端互连。以上图最左侧为例,5个浏览器,二二建立p2p连接,每个浏览器与其它4...

webrtc笔记(2): 1对1实时视频/语音通讯原理概述

开始正文之前,先思考1个问题:2个处于不同网络环境的(具备摄像头/麦克风多媒体设备的)浏览器,要实现点对点的实时视频/语音通讯,难点在哪?至少得先搞定下面2个问题:1、彼此要了解对方支持的媒体格式、支持的最大分辨率等媒体信息比如:peerA端可支持MPEG-1/2、H264多种编码格式,而peerB端支持MPEG-4、...

webrtc笔记(1): 基于coturn项目的stun/turn服务器搭建

webrtc是google推出的基于浏览器的实时语音-视频通讯架构。其典型的应用场景为:浏览器之间端到端(p2p)实时视频对话,但由于网络环境的复杂性(比如:路由器/交换机/防火墙等),浏览器与浏览器很多时候无法建立p2p连接,只能通过公网上的中继服务器(也就是所谓的turn服务器)中转。示例图如下:上图中的Relay...

pulsar学习笔记1:helloworld

pulsar号称是下一代的消息系统,这二年风光无限,大有干掉kafka的势头,如果想快速体验下,可以按以下步骤在本地搭建一个单机版本:(mac环境+jdk8) 一、下载wgethttps://www.apache.org/dyn/mirrors/mirrors.cgi?action=download&...

alibaba canal安装笔记

canal是alibaba开源的基于mysqlbinlog解析工具,可利用它实现mysql增量订阅/消费,典型的应用场景如下图: 利用canal,可以将mysql的数据变化,通过解析binlog,投递到kafka(或rocketmq),mq的消费方,可以把这些数据变化,应用到不同的业务场景,比如:1.同步到r...
代码星球 ·2020-04-06

开源流媒体服务器SRS学习笔记(4)

 单台服务器做直播,总归有单点风险,利用SRS的Forward机制+EdgeServer设计,可以很容易搭建一个大规模的高可用集群,示意图如下 源站服务器集群:originservercluster,可以借助forward机制,仅用少量的服务器,专用于处理推流请求。 边缘服务器集群:edg...

开源流媒体服务器SRS学习笔记(3)

按上回继续,安全论证是绝大多数应用的基本要求,如果任何人都能无限制的发布/播放视频,显然不适合。SRS中可以通过HTTPCallback机制来实现,参考下面的配置:...vhost__defaultVhost__{...#http回调http_hooks{enabledon;on_connecthttp://192.1...

开源流媒体服务器SRS学习笔记(2)

对rtmp/http-flv/hls这三种协议不熟悉的同学,强烈建议先看看网友写的这篇文章科普下:理解RTMP、HttpFlv和HLS的正确姿势 。 srs可以同时支持这3种协议,只要修改conf配置文件即可,默认情况下加载的是 /usr/local/srs/conf/srs.conf,参...

开源流媒体服务器SRS学习笔记(1)

SRS(SimpleRTMPServer) 是国人写的一款非常优秀的开源流媒体服务器软件,可用于直播/录播/视频客服等多种场景,其定位是运营级的互联网直播服务器集群。一、安装官网提供了3种安装方式:从源码编译安装、利用docker(学习用)、直接下载安装包安装相信很多人主要目的是出于学习srs如何使用,对c+...

pygame 笔记-10 摩擦力与屏幕环绕

多年前写过一篇 Flash/Flex学习笔记(25):摩擦力与屏幕环绕,可惜的当时上传的flash,服务器后来无人维护,现在flash链接都失效了。本篇用pygame重新实现了一个:原理是类似,但要注意的是:pygame中旋转的角度采用逆时针系统,即:逆时针方向旋转,角度为正,反之为负。所以在外理角度时,y轴...

pygame 笔记-9 图片旋转及边界反弹

h5或flash中,可以直接对矢量对象,比如line,rectange旋转,但是pygame中,仅支持对image旋转,本以为这个是很简单的事情,但是发现还是有很多小猫腻的,记录一下:先看一个错误的版本:1importpygame2importsys34pygame.init()56SIZE=WIDTH,HEIGHT=...

pygame 笔记-8 背景音乐&子弹音效

游戏哪能没有音效?这节我们研究下如何加背景音乐,其实也很简单:#加载背景音乐pygame.mixer.music.load(music_base_path+"music.mp3")#设置音量pygame.mixer.music.set_volume(0.1)#循环播放pygame.mixer.music.play(-1...

pygame 笔记-7 生命值/血条处理

通常游戏中的角色都有所谓的生命值,而且头顶上会有一个血条显示。生命值无非就是一个属性而已,很容易在Player.py类中增加,头顶上的血条其实就是绘制二个矩形,叠加在一起。以上节的Player.py为例:importpygame#主角classPlayer(object):def__init__(self,x,y,wi...

pygame 笔记-6 碰撞检测

这一节学习碰撞检测,先看原理图: 2个矩形如果发生碰撞(即:图形有重叠区域),按上图的判断条件就能检测出来,如果是圆形,则稍微变通一下,用半径检测。如果是其它不规则图形,大多数游戏中,并不要求精确检测,可以在外层套一个矩形,大致用上图的原理检测。可以封装一个函数:defcollision_check(a,b)...
代码星球 ·2020-04-06

pygame 笔记-5 模块化&加入敌人

上一节,已经用OOP方法,把几个类抽象出来了,但是都集中在一个.py文件中,代码显得很冗长,这一节复用模块化的思想,把这个大文件拆分成几个小文件:先把主角Player单独放到一个文件player.py里:importpygame#主角classPlayer(object):def__init__(self,x,y,wi...
首页上一页...167168169170171...下一页尾页