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

推荐订阅源

AI
AI
TaoSecurity Blog
TaoSecurity Blog
H
Heimdal Security Blog
Help Net Security
Help Net Security
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Microsoft Azure Blog
Microsoft Azure Blog
www.infosecurity-magazine.com
www.infosecurity-magazine.com
Google DeepMind News
Google DeepMind News
爱范儿
爱范儿
The Cloudflare Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
人人都是产品经理
人人都是产品经理
大猫的无限游戏
大猫的无限游戏
N
News | PayPal Newsroom
V2EX - 技术
V2EX - 技术
博客园 - 【当耐特】
D
Darknet – Hacking Tools, Hacker News & Cyber Security
S
Secure Thoughts
C
CERT Recently Published Vulnerability Notes
罗磊的独立博客
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
P
Privacy & Cybersecurity Law Blog
有赞技术团队
有赞技术团队
S
Schneier on Security
S
SegmentFault 最新的问题
Google Online Security Blog
Google Online Security Blog
H
Hacker News: Front Page
The Last Watchdog
The Last Watchdog
Schneier on Security
Schneier on Security
PCI Perspectives
PCI Perspectives
IT之家
IT之家
Project Zero
Project Zero
博客园 - 司徒正美
P
Privacy International News Feed
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Jina AI
Jina AI
Security Latest
Security Latest
Hacker News - Newest:
Hacker News - Newest: "LLM"
腾讯CDC
C
CXSECURITY Database RSS Feed - CXSecurity.com
阮一峰的网络日志
阮一峰的网络日志
C
Check Point Blog
aimingoo的专栏
aimingoo的专栏
V
Vulnerabilities – Threatpost
W
WeLiveSecurity
NISL@THU
NISL@THU
Webroot Blog
Webroot Blog
N
Netflix TechBlog - Medium
L
Lohrmann on Cybersecurity

莫拉维克猫屋

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播放。

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