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;
Supported transport protocols
- RTMP
- AMF
- HLS
- HTTP-FLV
Supported container formats
- FLV
- TS
Supported encoding formats
- H264
- AAC
- MP3
Installation
After directly downloading the compiled binary file, execute it on the command line.
Boot from Docker
Run docker run -p 1935:1935 -p 7001:7001 -p 7002:7002 -p 8090:8090 -d gwuhaolin/livego
to start
Compile from source
- Download the source code
git clone https://github.com/gwuhaolin/livego.git
- Go to the livego directory and execute
go build
ormake build
Use
- Start the service: execute the livego binary file or
make run
to start the livego service; - Get a channelkey(used for push the video stream) from
http://localhost:8090/control/get?room=movie
and copy data like your channelkey. - Upstream push: Push the video stream to
rtmp://localhost:1935/{appname}/{channelkey}
through theRTMP
protocol(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}/movie
FLV
:http://127.0.0.1:7001/{appname}/movie.flv
HLS
: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 address
Use with flv.js
Interested in Golang? Please see Golang Chinese Learning Materials Summary
关于
live video streaming server in golang
最后更新于 21 hours ago
License