Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/wenjiegit/Bull-Live-Server


https://github.com/wenjiegit/Bull-Live-Server

Last synced: 3 months ago
JSON representation

Awesome Lists containing this project

README

        

Bull-Live-Server
================
Bull Live Server 简称 BLS ,旨在使用C++语言提供强大功能和高性能的流媒体直播服务器。

为何要写 BLS ?

1、simple rtmp server https://github.com/winlinvip/simple-rtmp-server

SRS很简洁却功能太少,BLS 使用C++语言强有力的现代特性,完全重新架构和编码,
结合基于state thread library的基础库和ST架构可以功能更强大,可以让编码更简洁,功能更强大。




2、crtmp server http://www.rtmpd.com/

CRTMPD功能很完善,架构上却很复杂,C++代码也写得晦涩难懂。

而BLS会使用更优秀的C++特性。



3、nginx-rtmp https://github.com/arut/nginx-rtmp-module

这个基于nginx,性能自不必说,功能比crtmp少,但是纯异步架构的复杂度和简洁性都不够好。



4、red 5 http://www.red5.org/

red 5 性能有瓶颈,而且和新的一些rtmp 服务器对接会有问题。



5、wowza http://www.wowza.com/

基于java语言,收费版,不适合屌丝们部署,但架构比较陈旧,而且配置很繁琐,正在作古之中。



6、FMS http://www.adobe.com

现在叫AMS,功能和性能都不差,基本什么功能都有,毕竟是adobe自家的,但是license很昂贵!





比较了这么多,BLS要做什么?目标是什么?定位是什么?

BLS 就是为了汲取上述软件的特点,做一个更好用的直播服务器,要免费,要开源,功能和性能不打折,

代码要简洁、易懂。

usage
=====
**Step 1**: get BLS

> git clone https://github.com/wenjiegit/Bull-Live-Server.git&& cd
> Bull-Live-Server/trunk

**Step 2**: build BLS

> ./autogen.sh && make

**Step 3**: start BLS

> ./bin/bls -f conf/bls.conf

Plan
================
[1] support AMF0/AMF3

[2] support RTMP streaming............................................**OK**

[3] support HLS

[4] support HDS

[5] support HTTP FLV streaming

[6] support transcode with ffmpeg

[7] support multi_process...............................................**OK**

[8] support nginx like configure file...................................**OK**

[9] support configure reload

[10] support fast gop.......................................................**.OK**

[11] support dvr(digital video record)

[12] support fast hls.

Code Line History
================
[0.1]  2014-09-19     line 10901

[0.1]  2014-12-21     line 13394, refine code structure.

history
================
[0.1]  2014-12-20   multi-process push supported.

[0.1]  2014-10-10   support multiprocess.

[0.1]  2014-09-19   support fmle or flash pushlish stream.

[0.1]  2014-09-19   support flash or vlc like play stream.

[0.1]  2014-09-19   support amf0 serialize.

[0.1]  2014-07-05   init project.