livego+obs+flv.js 搭建视频直播
2024-10-21 15:31:21
一、流程
主播通过 obs软件通过直播 -》推流到-》直播服务器
客户通过浏览器 访问站点-》flv.js拉取直播服务器视频流并播放
二、环境
centos7
直播服务器
https://github.com/gwuhaolin/livego
OBS
录屏客户端软件
flv.js
https://github.com/Bilibili/flv.js/
播放站点
nginx站点
三、流程
3.1 centos7 安装livego和开启服务
安装golang开发环境
git下载livego代码
go build编译成执行文件livego
运行 ./livego
[root@localhost livego]# ./livego
2020/01/28 19:53:13 main.go:118: start livego, version master
2020/01/28 19:53:13 liveconfig.go:35: starting load configure file(.livego.json)......
2020/01/28 19:53:13 liveconfig.go:42: loadconfig:
{
"server": [
{
"appname": "live",
"liveon": "on",
"hlson": "on"
}
]
}
2020/01/28 19:53:13 liveconfig.go:49: get config json data:{[{live on on []}]}
2020/01/28 19:53:13 main.go:62: hls server enable....
2020/01/28 19:53:13 main.go:70: RTMP Listen On :1935
2020/01/28 19:53:13 main.go:105: HTTP-Operation listen On :8090
2020/01/28 19:53:13 main.go:43: HLS listen On :7002
2020/01/28 19:53:13 main.go:87: HTTP-FLV listen On :7001
视频推送地址
rtmp://192.168.199.209:1935/live
3.2 obs配置和添加视频资源
配置
添加视频源和推送
3.3 播放站点
flv.js编译flv.min.js
git下载代码库
切换到代码目录
npm install # install dev-dependences
npm install -g gulp # install build tool
gulp release # packaged & minimized js will be emitted in dist folder
npm慢的解决(数据源网站太慢,可以使用淘宝提供的npm数据源)
npm install -gd express --registry=http://registry.npm.taobao.org
npm config set registry http://registry.npm.taobao.org
npm install cnpm -g
播放页面代码 index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>课程直播</title>
</head>
<body>
<script src="flv.min.js"></script>
<video id="videoElement"></video>
<script>
if (flvjs.isSupported()) {
var videoElement = document.getElementById('videoElement');
var flvPlayer = flvjs.createPlayer({
type: 'flv',
isLive: true,
url: 'http://192.168.199.209:7001/live/test.flv'
});
flvPlayer.attachMediaElement(videoElement);
flvPlayer.load();
flvPlayer.play();
}
</script>
</body>
</html>
待完善的问题
- google浏览器js报错,flv播放
最新文章
- 【Java】JDBC连接数据库
- PHP无法编译undefined reference to `libiconv_open
- python urllib2 Basic认证
- hibernate和mybatis
- hdoj 1787 GCD Again【欧拉函数】
- Repository,UnitOfWork,DbContext(1)
- 利用JPEGImageEncoder进行简单的图片压缩
- openwrt的GPIO控制
- [Usaco2008 Jan]Cow Contest奶牛的比赛[神奇的FLOYD]
- linux新手入门前知道的一些概念
- 201521123084 《Java程序设计》第7周学习总结
- Selenium2Lib库之鼠标事件常用关键字实战
- js查找字符串、js截取
- cocos2dx lua invalid &#39;cobj&#39; in function &#39;lua_cocos2dx&#39;
- Hadoop完全分布式安装
- 【资料收集】OpenCV入门指南 系列文章
- 原生js封装tap
- 解决java.lang.NoClassDefFoundError: org/aopalliance/intercept/MethodInterceptor问题
- 突然的明白--public static 类名 函数名()
- 【Go命令教程】5. go clean
热门文章
- 15.python变量,递归
- 图解Go里面的sync.Map了解编程语言核心实现源码
- $AT2163\ Median\ Pyramid\ Easy$ 构造
- .NET设计篇08-线程取消模型和跨线程访问UI
- (推荐)linux用一键安装包
- postman 的基础使用篇(一)
- win10下使用mklink命令给C盘软件搬家
- Exceptionless运用结果
- 【转】DB2数据库编目的概念以及对其的正确解析
- vue实现网络图片瀑布流 + 下拉刷新 + 上拉加载更多