前言
不喜欢 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协议 。转载请注明出处!