https://github.com/gnolizuh/BLSS
NGINX-based Live Media Streaming Server
https://github.com/gnolizuh/BLSS
h265 hls httpflv httpflv-server livestream nginx rtmp rtmp-server
Last synced: about 2 months ago
JSON representation
NGINX-based Live Media Streaming Server
- Host: GitHub
- URL: https://github.com/gnolizuh/BLSS
- Owner: gnolizuh
- License: other
- Created: 2017-03-13T09:45:37.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2022-05-06T08:38:09.000Z (over 3 years ago)
- Last Synced: 2024-07-13T00:05:09.581Z (over 1 year ago)
- Topics: h265, hls, httpflv, httpflv-server, livestream, nginx, rtmp, rtmp-server
- Language: C
- Homepage:
- Size: 2.78 MB
- Stars: 196
- Watchers: 31
- Forks: 73
- Open Issues: 24
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
- awesome-video - gnolizuh/BLSS - NGINX-based Live Media Streaming Server. (Video Streaming & Distribution Solutions / Live Streaming Servers)
- awesome-live-stream - BLSS(NGINX-based Live Media Streaming Server)
README
BLSS: Bravo Live Streaming Service
======================================
[![Powered][1]][2] [![Build Status][3]][4] [![Downloads][5]][6]
[1]: https://img.shields.io/badge/nginx--rtmp--module-Powered-blue.svg
[2]: https://github.com/arut/nginx-rtmp-module
[3]: https://travis-ci.org/gnolizuh/BLSS.svg?branch=master
[4]: https://travis-ci.org/gnolizuh/BLSS
[5]: https://img.shields.io/github/downloads/atom/atom/total.svg
[6]: https://github.com/gnolizuh/BLSS/releases
Media streaming server based on [nginx-rtmp-module](https://github.com/arut/nginx-rtmp-module).
# Features
* All features of [nginx-rtmp-module](https://github.com/arut/nginx-rtmp-module) are inherited, i.e., it is 100% compatible with [nginx-rtmp-module](https://github.com/arut/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
* [GCC](https://gcc.gnu.org/) for compiling on Unix-like systems.
* [MSVC](http://www.mingw.org/wiki/MSYS) for compiling on Windows (see [how to build nginx on win32](http://nginx.org/en/docs/howto_build_on_win32.html)).
* [PCRE](http://www.pcre.org/), [zlib](http://zlib.net/) and [OpenSSL](http://www.openssl.org/) libraries sources if needed.
# 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;
}
}
}
}