Browse Source

Merged

webui
Ruben Cid 6 years ago
parent
commit
7604420fc1
  1. 2
      .github/workflows/release.yml
  2. 2
      .gitignore
  3. 2
      Dockerfile
  4. 28
      README.md
  5. 66
      README_cn.md
  6. 4
      configure/liveconfig.go
  7. 2
      livego.yaml

2
.github/workflows/release.yml

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
name: release
name: Release
on:
release:
types: [published]

2
.gitignore vendored

@ -2,7 +2,7 @@ @@ -2,7 +2,7 @@
.idea
dist
.vscode
.tmp/
tmp/
vendor/
node_modules/
build/

2
Dockerfile

@ -30,7 +30,7 @@ COPY . /go/src/github.com/gwuhaolin/livego @@ -30,7 +30,7 @@ COPY . /go/src/github.com/gwuhaolin/livego
RUN rm -rf /go/src/github.com/gwuhaolin/livego/static/
COPY --from=webui /src/webui/static/ /go/src/github.com/gwuhaolin/livego/static/
RUN make build
RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o livego .
## IMAGE
FROM alpine:3.10

28
README.md

@ -1,6 +1,11 @@ @@ -1,6 +1,11 @@
![Test](https://github.com/gwuhaolin/livego/workflows/Test/badge.svg)
<p align='center'>
<img src='./logo.png' width='200px' height='80px'/>
</p>
<img src='./logo.png' width='130px' height='50px'/>
[中文](./README_cn.md)
[![Test](https://github.com/gwuhaolin/livego/workflows/Test/badge.svg)](https://github.com/gwuhaolin/livego/actions?query=workflow%3ATest)
[![Release](https://github.com/gwuhaolin/livego/workflows/Release/badge.svg)](https://github.com/gwuhaolin/livego/actions?query=workflow%3ARelease)
Simple and efficient live broadcast server:
- Very simple to install and use;
@ -20,19 +25,28 @@ Simple and efficient live broadcast server: @@ -20,19 +25,28 @@ Simple and efficient live broadcast server:
#### Supported encoding formats
- H264
- AAC
- sMP3
- MP3
## Installation
After directly downloading the compiled [binary file](https://github.com/gwuhaolin/livego/releases), execute it on the command line.
#### Boot from Docker
Run `docker run -p 1935:1935 -p 7001:7001 -p 7002:7002 -d --name livego gwuhaolin/livego` to start
Run `docker run -p 1935:1935 -p 7001:7001 -p 7002:7002 -p 8090:8090 -d gwuhaolin/livego` to start
#### Compile from source
1. Download the source code `git clone https://github.com/gwuhaolin/livego.git`
2. Go to the livego directory and execute `go build` or `make build`
## Use
1. Start the service: execute the livego binary file or `make run` to start the livego service;
2. Get a channelkey from `http://localhost:8090/control/get?room=movie` and copy data like your channelkey.
3. Upstream push: Push the video stream to `rtmp://localhost:1935/{appname}/{channelkey}` through the` RTMP` protocol(default appname is `live`), for example, use `ffmpeg -re -i demo.flv -c copy -f flv rtmp://localhost:1935/{appname}/{channelkey}` push;
4. Downstream playback: The following three playback protocols are supported, and the playback address is as follows:
- `RTMP`:`rtmp://localhost:1935/{appname}/{channelkey}`
- `FLV`:`http://127.0.0.1:7001/{appname}/{channelkey}.flv`
- `HLS`:`http://127.0.0.1:7002/{appname}/{channelkey}.m3u8`
all options:
```bash
./livego -h
Usage of ./livego:
@ -47,12 +61,6 @@ Usage of ./livego: @@ -47,12 +61,6 @@ Usage of ./livego:
--rtmp_addr string RTMP server listen address (default ":1935")
--write_timeout int write time out (default 10)
```
2. Start the service: execute the livego binary file or `make run` to start the livego service;
3. Upstream push: Push the video stream to `rtmp://localhost:1935/live/movie` through the` RTMP` protocol, for example, use `ffmpeg -re -i demo.flv -c copy -f flv rtmp://localhost:1935/live/movie` push;
4. Downstream playback: The following three playback protocols are supported, and the playback address is as follows:
-`RTMP`:`rtmp://localhost:1935/live/movie`
-`FLV`:`http://127.0.0.1:7001/live/movie.flv`
-`HLS`:`http://127.0.0.1:7002/live/movie.m3u8`
### [Use with flv.js](https://github.com/gwuhaolin/blog/issues/3)

66
README_cn.md

@ -0,0 +1,66 @@ @@ -0,0 +1,66 @@
<p align='center'>
<img src='./logo.png' width='200px' height='80px'/>
</p>
[![Test](https://github.com/gwuhaolin/livego/workflows/Test/badge.svg)](https://github.com/gwuhaolin/livego/actions?query=workflow%3ATest)
[![Release](https://github.com/gwuhaolin/livego/workflows/Release/badge.svg)](https://github.com/gwuhaolin/livego/actions?query=workflow%3ARelease)
简单高效的直播服务器:
- 安装和使用非常简单;
- 纯 Golang 编写,性能高,跨平台;
- 支持常用的传输协议、文件格式、编码格式;
#### 支持的传输协议
- RTMP
- AMF
- HLS
- HTTP-FLV
#### 支持的容器格式
- FLV
- TS
#### 支持的编码格式
- H264
- AAC
- MP3
## 安装
直接下载编译好的[二进制文件](https://github.com/gwuhaolin/livego/releases)后,在命令行中执行。
#### 从 Docker 启动
执行`docker run -p 1935:1935 -p 7001:7001 -p 7002:7002 -p 8090:8090 -d gwuhaolin/livego`启动
#### 从源码编译
1. 下载源码 `git clone https://github.com/gwuhaolin/livego.git`
2. 去 livego 目录中 执行 `go build`
## 使用
1. 启动服务:执行 `livego` 二进制文件启动 livego 服务;
2. 访问 `http://localhost:8090/control/get?room=movie` 获取一个房间的 channelkey.
3. 推流: 通过`RTMP`协议推送视频流到地址 `rtmp://localhost:1935/{appname}/{channelkey}` (appname默认是`live`), 例如: 使用 `ffmpeg -re -i demo.flv -c copy -f flv rtmp://localhost:1935/{appname}/{channelkey}` 推流;
4. 播放: 支持多种播放协议,播放地址如下:
- `RTMP`:`rtmp://localhost:1935/{appname}/{channelkey}`
- `FLV`:`http://127.0.0.1:7001/{appname}/{channelkey}.flv`
- `HLS`:`http://127.0.0.1:7002/{appname}/{channelkey}.m3u8`
所有配置项:
```bash
./livego -h
Usage of ./livego:
--api_addr string HTTP管理访问监听地址 (default ":8090")
--config_file string 配置文件路径 (默认 "livego.yaml")
--flv_dir string 输出的 flv 文件路径 flvDir/APP/KEY_TIME.flv (默认 "tmp")
--gop_num int gop 数量 (default 1)
--hls_addr string HLS 服务监听地址 (默认 ":7002")
--httpflv_addr string HTTP-FLV server listen address (默认 ":7001")
--level string 日志等级 (默认 "info")
--read_timeout int 读超时时间 (默认 10)
--rtmp_addr string RTMP 服务监听地址 (默认 ":1935")
--write_timeout int 写超时时间 (默认 10)
```
### [和 flv.js 搭配使用](https://github.com/gwuhaolin/blog/issues/3)
对Golang感兴趣?请看[Golang 中文学习资料汇总](http://go.wuhaolin.cn/)

4
configure/liveconfig.go

@ -66,7 +66,7 @@ var defaultConf = ServerCfg{ @@ -66,7 +66,7 @@ var defaultConf = ServerCfg{
ReadTimeout: 10,
GopNum: 1,
Server: []Application{{
Appname: "livego",
Appname: "live",
Live: true,
Hls: true,
StaticPush: nil,
@ -110,7 +110,7 @@ func LoadConfig() { @@ -110,7 +110,7 @@ func LoadConfig() {
Config.AddConfigPath(".")
err := Config.ReadInConfig()
if err != nil {
log.Error(err)
log.Warning(err)
log.Info("Using default config")
}

2
livego.yaml

@ -17,6 +17,6 @@ @@ -17,6 +17,6 @@
# api_addr: ":8090"
server:
- appname: livego
- appname: live
live: true
hls: true

Loading…
Cancel
Save