livego

简单高效的直播服务器:

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

支持的传输协议

  • RTMP
  • AMF
  • HLS
  • HTTP-FLV

支持的容器格式

  • FLV
  • TS

支持的编码格式

  • H264
  • AAC
  • MP3

macos

https://github.com/gwuhaolin/livego

二级制:

https://github.com/gwuhaolin/livego/releases

编译安装

git clone https://github.com/gwuhaolin/livego.git cd livego go mod tidy go build 如果出现错误更新系统库即可: go get -u golang.org/x/sys

运行:

make run

(使用)

启动服务:执行 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并使用OBS调试 我使用的是docker镜像部署,好处是非常节省时间,基本就是安装完docker后一键部署。不过我的个人博客已经使用了服务器的8090端口,因此我把8100端口作为串流端口。

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

docker镜像运行起来后,记得在服务器防火墙处打开这几个端口,1935,7001,7002,8100。 打开后按照livego说明中的访问http://公网IP:8100/control/get?room=movie获取推流key。 打开OBS,在设置的推流中服务器填写 rtmp://公网IP:1935/live 串流秘钥填写刚刚在网页获取到的推流key。 保存后点击推流,如果右下角为绿色则表示推流成功。

获取串流视频

PC端:

PotPlayer中ctrl+U(或者右键 打开->打开链接),在文件网址处输入rtmp://公网IP:1935/live/movie,确定后,如果OBS开启了推流那么稍等一会就应该可以看到画面了。

移动端:

首先要确保OBS已经开始推流(如果没有开启推流可能无法进入),打开VLC,更多->串流->新建串流,同样输入rtmp://公网IP:1935/live/movie后稍等片刻,即可看到画面。

参考

livego项目地址:https://github.com/gwuhaolin/livego/ livego中文说明文档:https://github.com/gwuhaolin/livego/blob/master/README_cn.md livego搭建视频:https://www.bilibili.com/video/BV1Bb4y1f71T PotPlayer官网:https://daumpotplayer.com VLC官网:https://www.videolan.org OBS官网:https://obsproject.com/ 作者:BUGGZD https://www.bilibili.com/read/cv16823600/ 出处:bilibili