nginx实现最简单的直播
系统环境
[root@yunwei-test live]# cat /etc/redhat-release
CentOS Linux release 7.3. (Core)
[root@yunwei-test live]# getenforce
Disabled
root@yunwei-test live]# systemctl stop firewalld
[root@yunwei-test live]# hostname -I
10.0.3.56
1、git拉取nginx-rtmp插件
mkdir -p /server/tools cd /server/tools git clone https://github.com/arut/nginx-rtmp-module.git
2、编译安装nginx
[root@yunwei-test tools]# useradd -s /sbin/nologin -M nginx
[root@yunwei-test tools]# wget http://nginx.org/download/nginx-1.14.0.tar.gz
[root@yunwei-test tools]# tar xf nginx-1.14..tar.gz
[root@yunwei-test tools]# cd nginx-1.14./
[root@yunwei-test nginx-1.14.]# yum install pcre-devel openssl-devel.x86_64 -y
[root@yunwei-test nginx-1.14.]# ./configure --user=nginx --group=nginx --with-http_ssl_module --prefix=/application/nginx --add-module=../nginx-rtmp-module #rtmp模块的路径
[root@yunwei-test nginx-1.14.]# make && make install
3、配置启动nginx
cd /application/nginx/conf/
grep -Ev '^$|#' nginx.conf.default >nginx.conf
vim nginx.conf
worker_processes ; events { worker_connections ; } rtmp { server { listen ; chunk_size ; application live { live on; hls on; hls_path /application/nginx/html/live; hls_fragment 5s; } } } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout ; server { listen ; server_name localhost; location /live { types { application/vnd.apple.mpegurl m3u8; video/mp2t ts; } alias /application/nginx/html/live; expires -; add_header Cache-Control no-cache; } location / { root html; index index.html index.htm; } } } #测试nginx语法 ../sbin/nginx –t 启动nginx ../sbin/nginx
4、使用EV录屏实现推流


串流地址: rtmp://10.0.3.56:1935/live
地址密钥随便填,我这里是test
如果你的地址密钥填写和一样的话,
开启直播之后,测试能否下载test.m3u8文件
http://10.0.3.56/live/test.m3u8
如果能够成功下载,恭喜你离成功很近了!
5、配置站点首页
vi /application/nginx/html/index.html
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>前端播放m3u8格式视频</title>
<link rel="stylesheet" href="http://vjs.zencdn.net/5.5.3/video-js.css">
<script src="http://vjs.zencdn.net/5.5.3/video.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/videojs-contrib-hls/5.12.2/videojs-contrib-hls.js"></script>
</head>
<body>
<video id="myVideo" class="video-js vjs-default-skin vjs-big-play-centered" controls preload="auto" width="" height="" data-setup='{}'>
<source id="source" src="http://10.0.3.56/live/test.m3u8" type="application/x-mpegURL">
</video>
</body>
<script>
// videojs 简单使用
var myVideo = videojs('myVideo',{
bigPlayButton : true,
textTrackDisplay : false,
posterImage: false,
errorDisplay : false,
})
myVideo.play() // 视频播放
myVideo.pause() // 视频暂停
</script>
</html>
打开浏览器测试:
http://10.0.3.56

直播技术的原理,可以参考文章https://blog.csdn.net/leifukes/article/details/73244012
nginx实现最简单的直播的更多相关文章
- 极速搭建RTMP直播流服务器+webapp (vue) 简单实现直播效果
在尝试使用webRTC实现webapp直播失败后,转移思路开始另外寻找可行的解决方案.在网页上尝试使用webRTC实现视频的直播与看直播,在谷歌浏览器以及safari浏览器上测试是可行的.但是基于基座 ...
- (转载)学校搭建使用nginx同时编译rtmp-module进行直播的技术文档
原文地址:学校搭建使用 nginx 同时编译 rtmp-module 进行直播的技术文档 转载自我的大佬同学 MetalkgLZH.学校有几次需要全校观看网络直播的情况,但是学校的带宽不允许所有的班一 ...
- nginx负载均衡简单配置
nginx负载均衡简单配置准备三台虚拟机来做这个实验:192.168.232.132 web服务器192.168.232.133 web服务器192.168.232.134 ...
- Linux笔记 #09# Tomcat多开以及Nginx负载均衡简单例子
索引 Tomcat怎样多开.. 1.添加环境变量(最基础.关键的步骤!) 2.改catalina.sh 3.改相关端口 Nginx负载均衡简单例子 Tomcat怎样多开.. 演示一下如何开两个(开n个 ...
- window 平台搭建简单的直播点播系统
Windows平台如何搭建简单的直播系统前文已经有介绍,今天介绍下如何搭建简单的点播系统. 同样还是利用crtmpServer,crtmpServer可以从github中下载,可以从群里下载(群里有修 ...
- 通过Nginx实现一个简单的网站维护通知页面
原文:https://www.zhyd.me/article/106 在网站发版时,总会有那么一小段时间服务是访问不通的,一般用户看到的都会是一个502的错误页面 那么可以通过nginx实现一个简单的 ...
- nginx动静分离简单实例实现
什么是动静分离? Nginx 动静分离简单来说就是把动态和静态请求分开,不能理解成只是将动态页面和静态页面物理分离.严格意义上说应该是动态请求和静态请求分开,可以理解成使用 nginx 处理静态页面, ...
- Nginx 推流 拉流 --- 点播直播
1. 准备环境 安装操作系统Cenos 配置yum源 yum:https://developer.aliyun.com/mirror/ Nginx依赖 gcc-c++ zlib pcre openss ...
- Nginx|构建简单的文件服务器(mac) 续-FastDFS安装(mac)|文件存储方案
目录 Nginx|构建简单的文件服务器(mac) 1 所需安装包 2 安装fastdfs-nginx-module-master 3 安装Nginx Nginx|构建简单的文件服务器(mac) 续上文 ...
随机推荐
- python3使用多代理访问网站
#------------------------------------------------------------------------------- # Name: module1 # P ...
- python3操作注册表设置/取消IE代理
import io, sys, time, re, os import winreg def enableProxy(IP, Port): proxy = IP + ":" + s ...
- docker安装nginx并配置通过https访问
1. 下载最新的nginx的docker image docker pull nginx:latest 创建挂载路径 2.准备nginx需要的文件 nginx的配置文件 首先是nginx.conf文件 ...
- 【C/S通信交互之Http篇】Cocos2dx(Client)使用Curl与Jetty(Server)实现手机网游Http通信框架(内含解决curl.h头文件找不到问题)
之前已经分享过一篇基于Cocos2dx与服务器使用Socket进行通信的框架,还不太熟悉的请移步到如下博文中: [C/S通信交互之Socket篇]Cocos2dx(Client)使用BSD Socke ...
- 小记同学一次奇葩的DNS欺骗实验失败经历
这是一个DNS欺骗实验,使用kali的ettercap.有受害者.攻击者(虚拟机).Web服务器三台机器.受害者的事124.16.70.105虚拟机的是124.16.71.48web服务器是124.1 ...
- List.Sort() 小小技巧--- 从大到小排列
List.sort() 默认的情况下是从小到大的排列. 例如: List<int> list = new List<int>(); list.Add(- ...
- WebBrowser 的 DocumentCompleted事件不执行的解决方法
原文:WebBrowser 的 DocumentCompleted事件不执行的解决方法 WebBrowser 的 DocumentCompleted事件不执行的解决方法: 使用WebBrowser的P ...
- qt技巧--使用html导出表格替代excel
曾经为qt不能直接导出excel而困扰,后来经过深入了解,得知qt支持xml国际语言,html是xml的一种.html是做网页的,相信大家比较熟悉.所以使用html的<table ...
- SQL 时间格式化函数发布
SQL 时间格式化函数,有时候因某种需要需要格式化成需要的时间格式,需要的朋友可以收藏下,以备后用. SQL Server里面可能经常会用到的日期格式转换方法: sql server使用convert ...
- Android零基础入门第75节:Activity状态和生命周期方法
前面两期我们学习了Activity的创建和注册.以及启动和关闭,也学会了重写onCraete方法,这些知识在实际开发中远远不够,还需要学习了解更多. 生命周期就是一个对象从创建到销毁的过程,每一个对象 ...