用Go实现一个直播系统很难吗?看看这个开源项目
直播还不是很流行,相关技术也很成熟。但没有经历过的人可能不知道如何获得。如果你对直播技术感兴趣,目前的工作适合你学习。它是国人开发的。
项目地址:https://github.com/gwuhaolin/livego,Star数量:5.3k+。
这是一个简单高效的直播服务器,完全用Go实现,具有高性能、跨平台、非常易于安装和使用。它支持常用的传输协议、文件格式和编码格式。
可以通过编译好的二进制文件安装:https://github.com/gwuhaolin/livego/releases,也可以使用Docker:
当然,你也可以像常规Go一样安装源码。项目。
$ go get -v github.com/gwuhaolin/livego
使用简单的
- 启动服务:执行
livego
二进制文件即可启动livego服务; - 访问
http://localhost:8090/control/get?room=movie
获取房间频道按钮(频道按钮用于流式传输,电影用于播放)。 - 推送:将视频流推送到地址
rtmp://localhost:1935/{ via
RTMP
协议应用名称}/{channelkey} live
),例如:使用ffmpeg -re -i demo.flv -c copy -f flv rtmp://localhost:1935/ {appname}/{channelkey}
推流(下载演示 flv);- 播放:支持部分播放协议,播放地址如下:
RTMP
:rtmp:// localhost: 1935/{appname}/movie
:
http://127.0 .0.1:7001/{应用程序名称}/movie.flv
HLS
:http://127.0.0.0.0。 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)
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。