自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

OSSRS

https://github.com/ossrs

  • 博客(291)
  • 资源 (30)
  • 收藏
  • 关注

原创 GO方便的类型系统

GO类型系统GO中很方便在基本类型上定义新的类型,这个虽然是个小东西,但是有时候非常好用。IsXXX经常需要定义这样的函数,譬如RTMP的消息IsAudio,IsVideo等等。如果是C++就需要定义个结构体,然后加函数:class SrsCommonMessage{public: SrsMessageHeader header;};class SrsMessageHeader{p

2015-11-20 10:19:09 272

原创 GO-SRS with TravisCI

GO-SRS with TravisCIGO的测试支持得比较好,GITHUB和TravisCI集成得很好,因此GO-SRS不仅仅可以做到TDD测试驱动,而且可以很方便的CI,一点点都不增加使用成本。GO TestCI的前提是TDD比较完善,GO对于Test是支持的很好的,执行命令:cd go-srs && go test .就可以运行GO-SRS的测试,结果如下:localhost:go-srs w

2015-10-24 14:23:34 1274

原创 Kafka协议分析

Kafka协议分析Kafka客户端协议可以分析出Producer、Consumer以及Kafka一些细节。HostBroker有个配置,是配置Host的,默认获取的系统的host。这个对于刚刚接触Kafka的用户不好理解,这个host干什么用的呢?其实,Broker连接到zookeeper后,注册的是自己的host,也就是不是zookeeper自动获取的Broker的IP,而是Broker自己告诉z

2015-10-22 11:27:39 1921

原创 CURL GITLAB API

GITLAB的API可以直接使用CURL发起,不过如果是POST,得指定是json才行,否则就死活报没有指定里面的某个字段。譬如,创建PullRequest这个API,CURL的命令如下:project_id=10000private_key=DUEHdkdhueUEiejdnieesource_branch=testtarget_branch=mastercurl "https://git

2015-10-10 18:04:20 3183

翻译 Kafka协议翻译

Kafka协议Kafka是linkedin开源的一个数据传输框架,主要的定位是解决一个数据源多个消费者的应用场景,支持和Storm、Spark、Flume对接,提供负载均衡和容错的集群,用来传输各种数据日志。Links关于Kafka的介绍,请参考kafka doc。关于Kafaka的协议,请参考kafka protocol。关于Kafka的设计理念,参考kafka log。本文主要是记录kafka协

2015-09-17 16:42:55 2080

原创 两个贷款计算器

贷款计算器都知道复利,但实际上只有算出来才知道复利多么牛逼。车贷# -*- coding: utf-8 -*-import math;rate=3.5 #投资年利率years=5 #还款年限extra_pay=15960 #贷款额外花费total=201315-extra_pay #全款卖车费用=总共花费的-贷款额外花费的first_pay=70965 #首付款sum=total-fir

2015-09-07 22:17:09 2435

原创 GO环境设置

关于go的特点,参考:http://blog.csdn.net/win_lin/article/details/18236737GO环境下载linux 64位的go的包:https://storage.googleapis.com/golang/go1.3.3.linux-amd64.tar.gz 其他参考:http://www.golangtc.com/download解压后移动到/urs/lo

2015-09-07 14:48:18 3948 1

原创 GO备忘录

GO备忘录GO是C之后一门难得有鲜明特色的语言,不仅仅是一些语法糖,确实解决问题的思路,想法是不太一样的。这篇文章是我看到的,和用到的,一些常见的GO的备忘录,但是有的地方不仅仅局限于用法,而是汇总一个专题。errorGO的error错误对象GO只要实现了error接口,就可以是一个error对象了。常见的是项目有全局的错误对象,就像错误码一样,返回错误对象,比较错误是否是某个错误对象。var Er

2015-09-07 14:42:09 3084

原创 Spark分析SRS日志,以及Zookeeper和Kafka备忘录

Spark分析SRS日志本文描述了如何使用Spark分析SRS的日志,环境搭建参考HDFS和Spark,下载SRS实例日志。ClusterHDFS和Spark的URI是hdfs://hdfs.winlin.cn:9000和spark://hdfs.winlin.cn:7077,集群的配置如下: Server OS Role CPU Mem(MB) Namenode Ubun

2015-07-14 16:51:10 2726

原创 IDEA调试SPARK程序

IDEA调试SPARK程序为SPARK部署好HDFS后,就可以部署SPARK环境了。如何部署HDFS参考HDFS。IDEA for Scala在Scala官网,就有IDE的说明,IDEA中比较方便的编写和调试Scala程序。步骤如下:下载IDEA社区版,注意你的版本,譬如是IDEA 14.0.3,特别是Build #IC-139.1117。Scala插件要求IDEA的指定版本。下载Scala P

2015-07-13 18:14:28 4276

原创 对各种语言的偏见

对各种语言的偏见这大致是我编程语言的学习经历:2003年学html/js2004年开始学C2004年学C++2005年学汇编和C#2007年学PHP2009年学Python2013年学GO,深入学了JS(JQuery,AngularJS)2014年学Java(Android)2015年学Scala(Spark)我虽然没有发明一门语言,但这些语言都用在实际不小的项目中,作为使用者对

2015-07-10 17:33:09 2575 9

原创 Scala语法要点

Scala语法要点变量和函数的声明Scala中比较奇怪的是变量和函数声明,譬如:// 下面是两种变量,一种是普通变量,另外一种类似C++的引用var v0 = 10val v1 = 10// 函数的声明,用的def关键字,但是也用等号def f0(): Unit = { println("this is a function")}Scala的函数返回值Unit是没有返回值的意思,参数也

2015-07-09 19:01:24 1198

原创 为Spark部署HADOOP2.6的HDFS集群

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl

2015-07-08 12:13:53 1509

原创 FlashP2P中的key交换

观察RTMPLITE和CUMULUS中的代码,可以发现FlashP2P中的key交换,有两种可能的模式。首先,IHello和KEY交换没有关系,可以忽略。RHello的cert,即rcert,可能有两个模式:4+64+9 bytes,这种是服务器返回的模式;而4+128 bytes是flash返回的模式,即后面128字节是pub key。IIKeying的skic,用来计算secret

2015-06-11 17:49:00 1005

原创 SRS进入20K时代,不仅仅是并发

SRS进入20K时代,不仅仅是并发2015-05-29 winlin SRS单进程SRS支持7.5k并发,如果单机需要单机100K并发,可以使用多进程SRS,即SRS-DOLPHIN。目前测试SRS-DOLPHIN的测试数据是20K并发,理论上多进程的扩展性可以到达任意并发,只要你的CPU和网卡还有交换机够。而SRS-DOLPHIN不仅仅是高并发,还可以做容错,提高稳定

2015-05-29 11:29:13 8756 3

原创 HADOOP和Spark统计SRS的代码的单词频率

先clone下来SRS的代码,国内推荐oschina阿里云的镜像:mkdir -p ~/git/ && cd ~/git &&git clone git@git.oschina.net:winlinvip/srs.oschina.git设置好java环境,解压hadoop 2.7,添加到PATH,也就是能执行java和hadoop之后,就可以统计SRS的代码了:cd /usr/loc

2015-05-09 09:26:22 1433

原创 golang的局部作用域和变量推导

很多人喜欢golang的接口,不用声明就可以实现;但我更喜欢golang的变量推导和if表达式,看下面一段代码: var ok bool var vhost *SrsVhost if vid,err := bravo_json_get_number(stream, "vhost"); err != n

2015-04-02 17:28:49 2398

原创 SRS微信号和QQ群

联系方式:https://github.com/winlinvip/simple-rtmp-server/wiki/v1_CN_Contact

2015-03-14 23:25:55 3242 1

原创 git的branch以及merge

用惯了svn,对于git的merge和branch始终不太会用,srs在github上后开始用git,用了一年多才慢慢搞清楚一点点东西。git的merge很靠谱,不用每次都手工merge,必须使用branch的merge,否则会很慢。不过merge需要搞清楚那些branch,以及merge,还有commit之类,需要花些时间。一般的惯例是master+release+develop,或

2014-11-28 10:56:48 3861

原创 linux centos5.5 usb wireless card setup,USB无线网卡配置

台式机上弄了个USB无线网卡,无线网卡是

2014-11-23 01:57:42 2205

原创 GO的TCP性能测试,优化结果

之前做过一次测试,没有rrh

2014-11-22 13:18:45 9549 8

原创 linux通过samba共享在windows下直接修改

安装完linux后,关闭防火墙和selinux。防火墙有时候关闭后每次还会启动,所以登录后最好再关闭一次:

2014-11-20 12:27:20 2575

原创 st(state-threads) coroutine调度

st(state-threads) https://github.com/winlinvip/state-threads以及基于st的RTMP/HLS服务器:https://github.com/winlinvip/simple-rtmp-serverst是实现了coroutine的一套机制,即用户态线程,或者叫做协程。将epoll(async,nonblocking socket

2014-11-11 12:16:37 5070

原创 st(state-threads) coroutine和setjmp/longjmp的关系

st(state-threads) https://github.com/winlinvip/state-threads以及基于st的RTMP/HLS服务器:

2014-11-09 11:47:01 5169

原创 GO性能测试:未进行任何优化

srs.go中对于GO的tcp模块,以及web服务器martini做了初步的性能测试,没有rr

2014-11-03 18:02:44 8860 1

原创 GO环境设置

关于go的特点,参考:http://blog.csdn.net/win_lin/article/details/18236737

2014-10-30 14:01:34 2596

原创 BASH代码Refine实例

有段代码是这么写的:#!/bin/bashfunction build_license_3_0(){ echo "build license_3.0 in ${work_dir}" cat << END cd ${work_dir} && "Building C object license.o" gcc -DARCH_X86

2014-09-25 16:59:28 1041

原创 读《逍遥游》感叹中国教育

庄子的这个文章,上过高中都读过,就算没上过高中知道“鲲鹏展翅”这个成语的也算知道。真的知道逍遥游在说什么吗?我敢肯定绝对不知道,因为我特地读了N遍,就是为了搞懂说的是什么,可惜就是搞不懂,似懂非懂——我想可能是老师也没怎么搞懂的缘故吧,我一直心有不甘:都说好文章,我自己都说好,可惜都不知道说的是什么,就说人家文章好么?!我现在也不能说懂了,至少我知道了几点很重要的:1.庄子没有什么

2014-09-21 09:37:32 1992 1

原创 FlashP2P系统(客户端)系统分析和设计谍照

前段时间做完了RTMFPD,即FlashP2P服务器端;现在在优化和改进客户端。稍微分析和设计了下FlashP2P系统的客户端,即as3播放器

2014-09-07 11:32:47 1558

原创 AS3代码Refine实例

最近看公司flashp2p客户端,拾起了童年写as的梦。

2014-09-04 18:45:35 1588 5

原创 可伸缩的高性能高并发RTMFP集群架构

集群分为RTMFP FARM和SSL Cluster FARM,负责uu

2014-08-24 21:34:07 2226 2

原创 一组RTMFP服务器性能对比

最近研发了公司的rtmfp服务器,参考http://blog.csdn.net/win_lin/article/details/38779151,原因是cumulus性能还是不满意。对性能进行对比测试,

2014-08-24 07:11:01 3526 1

原创 RTMFP服务器的研发过程

SRS大家见到时,已经准备release 1.0了,其实从0到1.0的过程才是最重要的。最近在弄RTMFP服务器,虽然我们公司不开源,但是记录我们做这个服务器的过程,应该是没有问题的。简介RTMFP有开源的服务器,譬如cumulus,我们也是用的cumulus。cumulus一个进程大约能支持5000并发,我们给新蓝网做直播前两期有近20万,第三期少一点也有4万

2014-08-23 16:10:28 6684 11

原创 c++的基本概念还是非常值得学习和使用的东西

autofree可以参考:http://blog.csdn.net/win_lin/article/details/13621145

2014-08-14 11:21:45 1389

原创 cubieboard刷机

我用的是cubieboard2(在cubieboard内部是cubieboard20),而cubietrunk好像

2014-08-12 12:06:51 4260

原创 前前后后23工作日,调通了rtmfp握手过程

前面花了11工作日,搭建了一个rtmfp的demo,第一个连接上的

2014-08-08 16:02:52 2900

原创 为何没有单元测试就没有高质量代码?

写代码的几乎都不写单元测试,写单元测试的几乎都是被逼无奈。只有当自己的目标是写自己的软件,质量当然是最重要,而且没有时间x

2014-07-05 11:29:14 1530

原创 angularjs代码refine,还是老一套

有段定时刷新的代码是这么写的:

2014-06-24 14:35:13 1198

原创 angularjs和jquery在CRUD上的区别

angularjs最大的优势,在于对于CRUD采取了对象化。以前要用jquery将数据绑定到dom中,现在是直接对象处理。所以在这个层次上来讲,angularjs的定位和思路是很不错的。对比下面jquery做的一个用户注册y

2014-06-14 17:55:33 1976

转载 转载:公司都以什么为技术的核心竞争力

别说,google的图像搜索能找到,baidu的不行。 google很牛逼啊,为何国外公司能这么牛,而且还挺愿意开放的。而我们国家的公司就生怕代码外泄,html都不能外泄。让我跑一下火车:可能我们国家大多是没有格局和胸怀的公司,也可能是被生存逼迫的。 让火车跑快点:如果以打仗为类比,最重要的是大将军,如果没有大将军就要靠将军,如果将军都没有就靠士卒勇猛,如果士卒都怕死只

2014-05-10 13:49:52 1464

Effective Go (中文版).pdf

Effective Go (中文版) .

2015-11-11

nginx-rtmp

nginx-rtmp

2014-01-01

H.264-AVC-ISO_IEC_14496-15.pdf

H.264-AVC-ISO_IEC_14496-15.pdf

2013-11-24

nginx-rtmp build script

build nginx rtmp base one nginx1.5

2013-11-14

OOAD booch 3rd edition

OOAD booch 3rd edition

2013-10-14

Effective.STL

Effective.STL Effective.STL

2013-03-22

android桌面小组件最简实例

android桌面小组件最简实例,最少代码。

2013-01-06

android桌面小组件

android桌面小组件官网实例 android桌面小组件

2013-01-06

Pattern.Oriented.Software.Architecture.Volume.2

Pattern.Oriented.Software.Architecture.Volume.2

2012-11-29

ISO_IEC_14496-1

ISO_IEC_14496-1

2012-11-18

ISO_IEC_14496-3

ISO_IEC_14496-3

2012-11-18

ISO_IEC_14496-10

ISO_IEC_14496-10

2012-11-17

f4v-moov

f4v-moov

2012-11-16

ISO_IEC_14496-15

ISO_IEC_14496-15

2012-11-16

Node.js开发指南

Node.js开发指南, about the node.js

2012-11-05

mp4 file format引用文档

mp4 file format引用文档 mp4 file format是 ISO_IEC_14496-14,引用了“ ISO_IEC_14496-12”文档。

2012-11-04

原版 mp4 file format

mp4-file-format ISO/IEC 14496-14

2012-11-04

ISO_IEC_14496-14_mp4-file-format

ISO_IEC_14496-14_mp4-file-format

2012-11-04

mp4 file format

mp4 file format, ISO_IEC_14496-14

2012-11-04

amf3_spec_121207

adobe amf3_spec_121207 format.

2012-10-29

amf0_spec_121207

adobe amf0_spec_121207 for amf0 format.

2012-10-29

video_file_format_spec_v10_1

video_file_format_spec_v10_1

2012-10-29

rtmp_specification_1.0

rtmp_specification_1.0

2012-10-29

The.Cpp.Programming.Language.Special.Edition

The.Cpp.Programming.Language.Special.Edition

2012-10-29

gperftools-2.0.tar.gz

gperftools-2.0.tar.gz

2012-08-04

空空如也

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

TA关注的人

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