一、流程

主播通过 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>

待完善的问题

  1. google浏览器js报错,flv播放

最新文章

  1. 【Java】JDBC连接数据库
  2. PHP无法编译undefined reference to `libiconv_open
  3. python urllib2 Basic认证
  4. hibernate和mybatis
  5. hdoj 1787 GCD Again【欧拉函数】
  6. Repository,UnitOfWork,DbContext(1)
  7. 利用JPEGImageEncoder进行简单的图片压缩
  8. openwrt的GPIO控制
  9. [Usaco2008 Jan]Cow Contest奶牛的比赛[神奇的FLOYD]
  10. linux新手入门前知道的一些概念
  11. 201521123084 《Java程序设计》第7周学习总结
  12. Selenium2Lib库之鼠标事件常用关键字实战
  13. js查找字符串、js截取
  14. cocos2dx lua invalid &#39;cobj&#39; in function &#39;lua_cocos2dx&#39;
  15. Hadoop完全分布式安装
  16. 【资料收集】OpenCV入门指南 系列文章
  17. 原生js封装tap
  18. 解决java.lang.NoClassDefFoundError: org/aopalliance/intercept/MethodInterceptor问题
  19. 突然的明白--public static 类名 函数名()
  20. 【Go命令教程】5. go clean

热门文章

  1. 15.python变量,递归
  2. 图解Go里面的sync.Map了解编程语言核心实现源码
  3. $AT2163\ Median\ Pyramid\ Easy$ 构造
  4. .NET设计篇08-线程取消模型和跨线程访问UI
  5. (推荐)linux用一键安装包
  6. postman 的基础使用篇(一)
  7. win10下使用mklink命令给C盘软件搬家
  8. Exceptionless运用结果
  9. 【转】DB2数据库编目的概念以及对其的正确解析
  10. vue实现网络图片瀑布流 + 下拉刷新 + 上拉加载更多