diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 87e8c872..543f2c1e 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,4 +1,4 @@ -name: release +name: Release on: release: types: [published] diff --git a/README.md b/README.md index 36b0df40..60648b71 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,10 @@

+[中文](./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; @@ -28,13 +31,22 @@ Simple and efficient live broadcast server: 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: @@ -49,13 +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. Get a channelkey `curl http://localhost:8090/control/get?room=movie` and copy data like your channelkey. -4. Upstream push: Push the video stream to `rtmp://localhost:1935/live/movie`(`rtmp://localhost:1935/{appname}/{channelkey}`) through the` RTMP` protocol, for example, use `ffmpeg -re -i demo.flv -c copy -f flv rtmp://localhost:1935/live/movie` push; -5. 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) diff --git a/README_cn.md b/README_cn.md new file mode 100644 index 00000000..80b39235 --- /dev/null +++ b/README_cn.md @@ -0,0 +1,66 @@ +

+ +

+ +[![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/) +