Skip to content

gnolizuh/BLSS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BLSS: Bravo Live Streaming Service

Powered Build Status Downloads

Media streaming server based on nginx-rtmp-module.

Features

  • All features of nginx-rtmp-module are inherited, i.e., it is 100% compatible with nginx-rtmp-module.

  • HTTP-based FLV live streaming support.

  • Dynamic GOP cache for low latency.

  • Socket sharding feature for higer performance (MUST be linux kernel 2.6 or later).

  • Ability to separate different users at top of application block (rtmp service{} block).

  • Dynamic matching virtual hosts supported.

  • Provide ability for relaying by bkdr hash function (relay_stream hash option).

Systems supported

  • Linux (kernel 2.6 or later are recommended)/FreeBSD/MacOS/Windows (limited).

Dependencies

Build

cd to NGINX source directory & run this:

./configure --add-module=/path/to/BLSS
make
make install

Get Started

  • Build BLSS module according to the section above.

  • Configure the nginx.conf file and start nginx.

  • Publish stream.

      ffmpeg -re -i live.flv -c copy -f flv rtmp://publish.com[:port]/appname/streamname
    
  • Play.

      ffplay rtmp://rtmpplay.com[:port]/appname/streamname # RTMP
      ffplay http://flvplay.com[:port]/appname/streamname  # HTTP based FLV
    

Example

worker_processes 8;   # multi-worker process mode
relay_stream hash;    # stream relay mode

rtmp {
    server {
        listen 1935 reuseport;

        service cctv {
            hostname pub rtmp publish.com;      # match rtmp push domain
            hostname sub rtmp rtmpplay.com;     # match rtmp pull domain
            hostname sub http_flv flvplay.com;  # match http-flv pull domain

            application live {
                live on;
                gop_cache on;
                gop_cache_count 5;  # cache 5 GOPs

                hls on;
                hls_fragment 10s;
                hls_playlist_length 30s;
            }
        }
    }
}