基于开源的livego搭建直播服务器

lzy 2.1K 0

参加的训练项目需要搭建自己的直播服务器,实现视频直播。

尝试了几种开源的直播服务器,包括srs、livego等,但是感觉各有利弊,srs延迟较高,livego延迟明显比较低,但是出现过一次go切片越界的问题(未解决)。现在从头梳理一下livego的搭建过程。

按照惯例先介绍livego:开源的简单高效的直播服务器!

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

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

下载编译启动livego

首先,在我们的服务器上clone livego项目:git clone https://github.com/gwuhaolin/livego.git ,如果上GitHub慢的话也可以下载我clone好的然后传到自己服务器:livego

基于开源的livego搭建直播服务器

检查是否安装go,如图我已安装。如果没有go的环境就先下载一个:yum install go

基于开源的livego搭建直播服务器

在livego目录下编译livego: go build 。这里有个坑,就是go被墙了,无法使用命令,代理一下即可: go env -w GOPROXY=https://goproxy.cn ),然后再编译就没问题了。

然后启动就可以了,在livego目录:./livego 执行二进制文件。启动成功如图。

基于开源的livego搭建直播服务器

访问 http://ip:8090/control/get?room=rov 获取一个名为rov(任取)的房间的串流密钥备用。别忘了换成自己服务器的ip!

基于开源的livego搭建直播服务器

使用OBS推流到服务器

下载OBS Studio: https://obsproject.com/

配置OBS推流:打开软件设置,找到推流一栏,如下设置。标蓝的live是默认的appname,可以在服务器端配置文件中修改,不改也行。串流密钥填上刚才获取到的。

基于开源的livego搭建直播服务器

添加视频流来源:如图我添加了一个显示器采集,也就是录屏直播。

基于开源的livego搭建直播服务器

如果你的显示器采集出来是黑屏,那么这个坑我也踩过了。由于笔记本电脑有两块显卡,导致正在使用的和obs采集的不是一个,需要在英伟达控制面板修改obs这个应用的默认显卡。详情见连接: https://tieba.baidu.com/p/4962294600

开始推流:

基于开源的livego搭建直播服务器

正常推流的话会显示绿色的状态:

基于开源的livego搭建直播服务器

播放直播

使用vlc(自行下载)播放网络串流:rtmp://ip:1935/live/rov。标蓝的分别是appname和room。

基于开源的livego搭建直播服务器

然后就可以观看了!(我看我自己)

基于开源的livego搭建直播服务器

后记

这样用vlc播放rtmp串流肯定是不行的,况且就算用网页播放rtmp,由于flash已停用,也不太方便。

好在livego支持多种播放协议,包括flv、m3u8格式等,目前有两种想法:

  • 用网页端使用哔哩哔哩开源的flv.js解析flv,使用H5 video播放;
  • 安卓客户端解析m3u8播放。

再者,还要继续探索:如何降低延迟?如何实现串流的转发分发?如何实现权限拦截?等等......

发表评论 取消回复
表情 图片 链接 代码

分享