go-oryx
The go-oryx is SRS++, focus on real-time live streaming cluster.
Usage
For linux/unix-like os:
go get github.com/ossrs/go-oryx &&
cd $GOPATH/src/github.com/ossrs/go-oryx &&
$GOPATH/bin/go-oryx -c conf/oryx.json
Or, for windows:
go get github.com/ossrs/go-oryx &&
cd %GOPATH%\src\github.com\ossrs\go-oryx &&
%GOPATH%\bin\go-oryx.exe -c conf\oryx.json
About how to build and run at current directory:
cd $GOPATH/src/github.com/ossrs/go-oryx &&
go build . && ./go-oryx -c conf/oryx.json
About how to set $GOPATH, read prepare go.
IDE
GO SDK: download
JetBrains IntelliJ IDEA: download
IntelliJ IDEA Golang Plugin: repository, download
SRS vs go-oryx
Why rewrite the SRS to go-oryx:
- Coroutine Or Goroutine: SRS base on ST, it’s more important than c/c++ language for streaming server; while golang support goroutine, which is actually what ST do.
- Multiple Processes: SRS is single process. It’s too weak for modern server with 16 or 64 CPUs and 2 or 4 10Gbps network. Multiple cpus and network interfaces requires multiple processes server.
- New Arch: New arch for HTTP/RTMP/FLV/HLS/RTSP or other protocol, it’s better to support many protocol especially private protocol, which will provides realtime streaming.
Features
- v0.1.0 Supports Multiple Processes.
- v0.1.0 Supports Linux, Unix-like and Windows.
- v0.1.1 Supports JSON style config file.
- v0.1.2 #41 Supports Reload config file.
- v0.1.3 Standard godoc, gofmt, gotest and TravisCI.
- v0.1.4 Support daemon over ossrs/go-daemon(fork from sevlyar/go-daemon).
- v0.1.5 Extend JSON with c++ style comments.
- v0.1.6 Support heartbeat to report for ARM.
- v0.1.7 Use agent(source+channel+sink) to build complex stream river.
- v0.1.8 #37 Supports Publish and Play VP6 RTMP stream.
- v0.1.9 Supports Delivery VP6/H.264 and Speex/AAC/MP3/Nellymoser codec.
- v0.1.10 Supports 10k(8CPUs) for RTMP players.
- v0.1.11 Supports 10k(4CPUs) for RTMP players.
- v0.1.12 Supports 10k(3CPUs) for RTMP players.
- v0.1.13 Supports 10k(2CPUs) for RTMP players.
- v0.1.14 Supports SRS style config file.
- v0.1.15 Supports LOG+, the connection-based tracable log.
- v0.1.16 Supports debug rtmp recv by config debug.rtmp_dump_recv.
- v0.1.17 Supports force to realtime mode by config vhost.min_latency.
- [dev] Supports gop-cache and drop frame strategy.
- [plan] #45 HLS: Support audio only HLS stream.
- [plan] #44 DASH: Support remux stream to MPEG-DASH
- [plan] #43 RTSP: Support push RTSP to server.
- [plan] #42 UDP: Support push MPEG-TS over UDP to server.
- [plan] #40 HDS: Support remux stream to HDS.
- [plan] #39 API: Support HTTP callbacks
- [plan] #38 API: Support HTTP API for client to access.
- [plan] #36 FLV: Remux stream to HTTP-FLV streaming.
- [plan] #35 HLS: Support HLS+ Edge Cluster.
- [plan] #24 RTMP: Support standard uri like http.
- [plan] #46 Codec: Support encode the audio and video device to stream.
- [plan] #47 System: Support copy stream to another vhost.
Winlin 2015.10