Livego是一款简单高效的直播服务器:
- 安装和使用非常简单;
- 纯 Golang 编写,性能高,跨平台;
- 支持常用的传输协议、文件格式、编码格式;
支持的协议包括
- RTMP
- AMF
- HLS
- HTTP-FLV
1、服务端环境搭建。
代码路径:GitHub - gwuhaolin/livego: live video streaming server in golang
如果不想搭建go环境,想直接看看效果的,也可以直接在这里下载exe程序进行测试。版本号是0.0.15版本,2021年2月3日最新版本。
路径:[传送门]
下载exe后,直接通过双击运行即可。(go语言的强大之处,不需要安装任何运行环境)如下图所示:
2、推流端环境准备。
准备ffmpeg,使用命令行进行推流。如果没有ffmpeg.exe的话,可以在下面链接下载(传送门)
命令行如下:
ffmpeg -re -i test.mp4 -c copy -f flv -y rtmp://localhost:1935/live/[channelkey]
其中channelKey通过livego的api获取,API接口为:http://localhost:8090/control/get?room=movie 。其中movie是自定义的room名称,接口会返回
{"status":200,"data":"rfBd56ti2SMtYvSgD5xAV0YU99zampta7Z7S575KLkIZ9PYk"}
其中rfBd56ti2SMtYvSgD5xAV0YU99zampta7Z7S575KLkIZ9PYk就是我们需要使用的channelkey。
在推流的过程中,可以使用http://127.0.0.1:8090/stat/livestat查看服务端的状态信息。
3、拉流端准备。
(1)VLC Player
使用VLC Player可以接收播放rtmp协议的视频流。具体操作方法不再接收,直接打开网络串流,输入“rtmp://localhost:1935/live/movie”,播放接口(先推流,后拉流)。
(2)使用video.js方式播放hls格式媒体流【Demo传送门】
核心代码如下:
<video id="myVideo" class="video-js vjs-default-skin vjs-big-play-centered" controls preload="auto" data-setup='{}' style='width: 100%;height: auto'>
<source id="source" src="http://localhost:7002/live/movie.m3u8" type="application/x-mpegURL"></source>
</video>
(3)使用flv.js方式播放flv格式媒体流【Demo传送门】
核心代码如下:
<video name="videoElement" class="centeredVideo" controls="" autoplay="" src="http://localhost:7001/live/movie.flv" muted>
Your browser is too old which doesn't support HTML5 video.
</video>
按照如上方法,亲测可以正常使用,至于性能方面,未做测试。之后有时间再研究。