惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

S
Secure Thoughts
罗磊的独立博客
T
The Blog of Author Tim Ferriss
人人都是产品经理
人人都是产品经理
博客园 - 叶小钗
Last Week in AI
Last Week in AI
美团技术团队
Google Online Security Blog
Google Online Security Blog
Application and Cybersecurity Blog
Application and Cybersecurity Blog
D
Docker
G
Google Developers Blog
大猫的无限游戏
大猫的无限游戏
酷 壳 – CoolShell
酷 壳 – CoolShell
小众软件
小众软件
月光博客
月光博客
L
LINUX DO - 最新话题
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
W
WeLiveSecurity
H
Heimdal Security Blog
Vercel News
Vercel News
SecWiki News
SecWiki News
Forbes - Security
Forbes - Security
Blog — PlanetScale
Blog — PlanetScale
Google DeepMind News
Google DeepMind News
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
www.infosecurity-magazine.com
www.infosecurity-magazine.com
TaoSecurity Blog
TaoSecurity Blog
T
Troy Hunt's Blog
A
About on SuperTechFans
C
Check Point Blog
S
Security Affairs
Hacker News - Newest:
Hacker News - Newest: "LLM"
AI
AI
WordPress大学
WordPress大学
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Help Net Security
Help Net Security
博客园_首页
The Last Watchdog
The Last Watchdog
S
SegmentFault 最新的问题
Hugging Face - Blog
Hugging Face - Blog
Security Archives - TechRepublic
Security Archives - TechRepublic
Engineering at Meta
Engineering at Meta
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
I
Intezer
K
Kaspersky official blog
M
MIT News - Artificial intelligence
J
Java Code Geeks
G
GRAHAM CLULEY
P
Palo Alto Networks Blog

莫拉维克猫屋

4D Radar - A Novel Sensing Paradigm for 3D Object Detection 粗略的cs231n学习笔记 simulink仿真数字通信系统 EDA实验二 功能可调综合计时器 EDA实验一 指令运算单元设计——第一次用FPGA开发板 NodeMCU-ESP8266联网获取实时天气并使用lcd1602显示 SSM框架:导出数据库内容到Excel表格 Java网络编程-TCP通信 我要这差分放大电路有何用? Hello World
基于开源的livego搭建直播服务器
liuzengyun · 2021-02-02 · via 莫拉维克猫屋

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

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

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

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

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

下载编译启动livego

首先,在我们的服务器上clone livego项目:git clone https://github.com/gwuhaolin/livego.git

基于开源的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播放。

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