Go直播项目
发布者:admin 发表于:444天前 阅读数:714 评论:0

大家好,我是欧盆索思(opensource),每天为你带来优秀的开源项目!

这几年直播真的是不要太火,相关技术也很成熟。但没有接触过的人,可能不知道怎么实现的。如果你对直播技术感兴趣,今天的这个项目很适合你研究。而且是国人开发的。

项目地址:https://github.com/gwuhaolin/livego,Star 数:4.5k+。

这是一个简单高效的直播服务器,完全使用 Go 实现,性能高,跨平台,安装和使用非常简单。支持常用的传输协议、文件格式、编码格式。

你可以通过编译好的二进制文件:https://github.com/gwuhaolin/livego/releases 安装,也可以使用 Docker:

$ docker run -p 1935:1935 -p 7001:7001 -p 7002:7002 -p 8090:8090 -d gwuhaolin/livego

当然,也可以按普通的 Go 项目进行源码安装。

$ go get -v github.com/gwuhaolin/livego

简单使用

启动服务:执行 livego 二进制文件启动 livego 服务;

访问 http://localhost:8090/control/get?room=movie 获取一个房间的 channelkey(channelkey用于推流,movie用于播放).

推流: 通过RTMP协议推送视频流到地址 rtmp://localhost:1935/{appname}/{channelkey} (appname默认是live),

例如:使用 ffmpeg -re -i demo.flv -c copy -f flv rtmp://localhost:1935/{appname}/{channelkey} 推流(下载demo flv);

播放: 支持多种播放协议,播放地址如下:

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)