Total Pageviews

Saturday, 5 May 2018

go.srs

srs(simple-rtmp-server)  written in go.
SRS(simple-rtmp-server) written by go language.

产品定位

GO.SRS和SRS的定位不太一样,可以互补。
SRS主要是RTMP源站,外加HLS和转码,单线程(通过转码消耗系统能力)。
GO.SRS主要是流服务器,包括源站和边缘,支持RTMP/RTMPT/RTMPE/RTMPS/HLS/DASH/RTMFP/RTSP等,支持多线程。
如下图所示:
+---------------------------+    +------------------------------+
|     GO.SRS(流服务器)      +-->-+  SRS转码/Chnvideo编转码集群  |
|   (IPv4/IPv6/TCP/UDP)     |    +------------------------------+
| (源站/边缘/单线程/多线程) |                                    
| (RTMP/RTMPE/RTMPT/RTMPS)  |    +------------------------------+
|   (HTTP/HLS/HDS/DASH)     |-->-+  Chnvideo收录/时移/播放器    |
|     (RTSP,RTMFP)          |    +------------------------------+
+---------------------------+                                    
IPv4/IPv6: 同时支持IPv4/IPv6。
TCP:支持基于TCP的协议,譬如RTMP和HTTP系列。
UDP:支持基于UDP的协议,譬如RTMFP等。
源站和边缘:支持集群,譬如RTMP系列的源站和边缘,HTTP只需要支持源站(边缘用NGINX等成熟方案)。
RTMP系列:流服务器的基础协议。
RTSP系列:支持RTSP流协议,支持一些摄像头。
RTMFP:Adobe的FlashP2P方案。
SRS转码:SRS可以用ffmpeg转码,为转码的开源方案。
Chnvideo:商业方案

GO开发环境

参考http://golang.org/doc/install
Step 1:下载GO
https://code.google.com/p/go/downloads/list
Step 2:解压GO
tar xf go1.2.linux-amd64.tar.gz
sudo ln -sf `pwd`/go /usr/local/go
Step 3:设置环境变量
export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin
注意:所有环境变量的设置可以编辑/etc/profile

编译方法(Build)

Step 1: set GOPATH if not set
export GOPATH=~/mygo
Step 2: get and build srs
go get github.com/winlinvip/go.srs/go_srs
Step 3: start SRS
$GOPATH/bin/go_srs
注意:编译出来的go_srs不依赖于GO开发环境,可以独立部署。

from  https://github.com/huhaibo/go.srs

No comments:

Post a Comment