mirror of https://github.com/gwuhaolin/livego.git
				
				
			
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			| 
				
					
						
							 | 
			4 years ago | |
|---|---|---|
| .github/workflows | 5 years ago | |
| av | 6 years ago | |
| configure | 4 years ago | |
| container | 5 years ago | |
| parser | 6 years ago | |
| protocol | 5 years ago | |
| utils | 6 years ago | |
| .gitignore | 4 years ago | |
| .goreleaser.yml | 6 years ago | |
| CHANGELOG.md | 6 years ago | |
| Dockerfile | 6 years ago | |
| LICENSE | 6 years ago | |
| Makefile | 6 years ago | |
| README.md | 5 years ago | |
| README_cn.md | 5 years ago | |
| go.mod | 5 years ago | |
| go.sum | 5 years ago | |
| livego.yaml | 5 years ago | |
| logo.png | 6 years ago | |
| main.go | 5 years ago | |
| test.go | 5 years ago | |
		
			
				
				README.md
			
		
		
			
			
		
	
	
    
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 buildormake build 
Use
- 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
 
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