This fork aims to make livego more stable and fix some of the bugs.
The main fixes will be for the RTMP package and initialisation of this system. Primarily so that it can be used as a library inside of other GoLang projects.
If at any point the original creator wants to merge this fork into the upstream branch they are free to do so.
ℹ️ Info: This fork will not be maintained as a standalone system like the upstream repo.
This forks aims to makelivegousable as a standalone package
Simple and efficient live broadcast server:
- Very simple to install and use;
- Pure Golang, high performance, and cross-platform;
- Supports commonly used transmission protocols, file formats, and encoding formats;
- RTMP
- AMF
- HLS
- HTTP-FLV
- FLV
- TS
- H264
- AAC
- MP3
After directly downloading the compiled binary file, execute it on the command line.
Run docker run -p 1935:1935 -p 7001:7001 -p 7002:7002 -p 8090:8090 -d gwuhaolin/livego to start
- Download the source code
git clone https://github.com/gwuhaolin/livego.git - Go to the livego directory and execute
go buildormake build
- Start the service: execute the livego binary file or
make runto start the livego service; - Get a channelkey(used for push the video stream) from
http://localhost:8090/control/get?room=movieand copy data like your channelkey. - Upstream push: Push the video stream to
rtmp://localhost:1935/{appname}/{channelkey}through theRTMPprotocol(default appname islive), for example, useffmpeg -re -i demo.flv -c copy -f flv rtmp://localhost:1935/{appname}/{channelkey}push(download demo flv); - Downstream playback: The following three playback protocols are supported, and the playback address is as follows:
RTMP:rtmp://localhost:1935/{appname}/movieFLV:http://127.0.0.1:7001/{appname}/movie.flvHLS:http://127.0.0.1:7002/{appname}/movie.m3u8
- Use hls via https: generate ssl certificate(server.key, server.crt files), place them in directory with executable file, change "use_hls_https" option in livego.yaml to true (false by default)
all options:
./livego -h
Usage of ./livego:
--api_addr string HTTP manage interface server listen address (default ":8090")
--config_file string configure filename (default "livego.yaml")
--flv_dir string output flv file at flvDir/APP/KEY_TIME.flv (default "tmp")
--gop_num int gop num (default 1)
--hls_addr string HLS server listen address (default ":7002")
--hls_keep_after_end Maintains the HLS after the stream ends
--httpflv_addr string HTTP-FLV server listen address (default ":7001")
--level string Log level (default "info")
--read_timeout int read time out (default 10)
--rtmp_addr string RTMP server listen addressInterested in Golang? Please see Golang Chinese Learning Materials Summary
