前言

不喜欢 bilibili 直播,所以自己搭了一个。

准备

用到的轮子:

服务器配置:

  • Intel(R) Xeon(R) CPU E5-2680 v3 @ 2.50GHz * 1c
  • 2GB RAM
  • Ubuntu 18.04.3 LTS (x86_64)

如果不对流进行后期处理的话,这点配置应该是够用的。

搭建

livego

Golang 项目一般都有作者提供的可执行包,在 livego 的 Releases 中可以获取到 Linux amd64 的包,直接运行即可。

这个项目能配置的东西太少了,甚至连访问控制都没有。

后期完善一下。

flv.js

先直接把官方 demo 给复制过来了,以后再写前端。

路由

有点懒,直接用 Caddy 做路由映射。

stream.* -> livego

live.* -> flv.js

不知道为什么,stream 设置了 basicauth 还能在没验证的情况下继续推流,可能 Caddy 不管 rtmp 吧?那这样就有点麻烦了。

测试

OBS 直播

测试参数

  • 1500Kbps
  • 60fps

效果如下:

服务器资源占用:

OBS:

开始的时候有点丢帧,不过到后面就稳定了。

总体表现不错,非常满意。

推视频流

视频:来自多彩世界的明天 Ep.01

  • 2000Kbps
  • 60fps

效果如下:

服务器资源占用:

OBS:

不知道为什么用 ffmpeg 推就很卡,可能是参数没调好的原因吧?

流量使用

大致计算了一下,以 1500Kbps 60fps 推流一小时每个用户大约消耗流量 1GB(上行)。

由于服务器是 G 口所以不用担心带宽。

后记

livego 有时候会莫名奇妙就 panic ,不知道为什么。


# 直播  


本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!