livgo是一个开源的直播流媒体服务器,实现了rtsprtmp、hls等直播功能,但是要想项目上用起来,还是需要二次开发与封装的。


最近好多单位用的电脑都在推行国产化,国产化国产中,使用的电脑的CPU基本上都是龙芯(Mips架构)、ARM架构,好多软件用不了。后来发现了好多go开发的开源软件,可以很方便地编译使用,可以直接在window下编译即可。

这个livego的源代码就是是用go写的,go代码可以很容易编译各个平台的版本,比如:x86、x64、ARM、ARM64、mips、mips64等等

下面是源码里的ReadMe文件内容

简单高效的直播服务器:

  • 安装和使用非常简单;
  • 纯 Golang 编写,性能高,跨平台;
  • 支持常用的传输协议、文件格式、编码格式;

支持的传输协议

  • RTMP
  • AMF
  • HLS
  • HTTP-FLV

支持的容器格式

  • FLV
  • TS

支持的编码格式

  • H264
  • AAC
  • MP3

安装

直接下载编译好的​​二进制文件​​后,在命令行中执行。

从 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(channelkey用于推流,movie用于播放).
  3. 推流: 通过​​RTMP​​​协议推送视频流到地址​​rtmp://localhost:1935/{appname}/{channelkey}​​​ (appname默认是​​live​​​), 例如: 使用​​ffmpeg -re -i demo.flv -c copy -f flv rtmp://localhost:1935/{appname}/{channelkey}​​​ 推流(​​下载demo flv​​);
  4. 播放: 支持多种播放协议,播放地址如下:
  • ​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​

所有配置项:

./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")
--hls_keep_after_end Maintains the HLS after the stream ends
--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 搭配使用​

对Golang感兴趣?请看​​Golang 中文学习资料汇总​