当前位置: 首页 > news >正文

nginx实现最简单的直播

nginx实现最简单的直播

 

 

关于直播技术的原理,这里我就不啰嗦了,可以参考文章https://blog.csdn.net/leifukes/article/details/73244012

 

 

我的环境

 

[root@controller ~]# cat /etc/redhat-release

CentOS Linux release 7.2.1511 (Core)

[root@controller ~]# getenforce

Disabled

[root@controller ~]# systemctl stop firewalld

[root@controller ~]# hostname -I

10.0.0.11

 

 

 

1:git拉取nginx-rtmp插件

 

mkdir -p /server/tools

cd /server/tools

git clone https://github.com/arut/nginx-rtmp-module.git

 

 

2:编译安装nginx

 

useradd -s /sbin/nologin -M nginx

wget http://nginx.org/download/nginx-1.14.0.tar.gz

tar xf nginx-1.14.0.tar.gz

ls

cd nginx-1.14.0/

yum install pcre-devel -y

yum install openssl-devel.x86_64 -y

./configure --user=nginx --group=nginx --with-http_ssl_module --prefix=/application/nginx --add-module=../nginx-rtmp-module

make

make install

 

 

 

3:配置启动nginx

 

cd /application/nginx/conf/

grep -Ev '^$|#' nginx.conf.default >nginx.conf

vim nginx.conf

worker_processes 1;

events {

worker_connections 1024;

}

rtmp {

server {

listen 1935;

chunk_size 4096;

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 65;

server {

listen 80;

server_name localhost;

location /live {

types {

application/vnd.apple.mpegurl m3u8;

video/mp2t ts;

}

alias /application/nginx/html/live;

expires -1;

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.0.11:1935/live

地址密钥随便填,我这里是test

 

如果你的地址密钥填写和一样的话,

开启直播之后,测试能否下载test.m3u8文件

http://10.0.0.11/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="1080" height="708" data-setup='{}'>

<source id="source" src="http://10.0.0.11/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.0.11/

 

至此成功!!!

转载于:https://www.cnblogs.com/gaoyuechen/p/11149554.html

相关文章:

  • java项目代码上线
  • MySQL引擎之innodb介绍及特点
  • mybatis一级缓存二级缓存
  • 高德,百度,84经纬度坐标系的相互转换
  • 解决 Elasticsearch 超过 10000 条无法查询的问题
  • 链表插入排序、链表归并排序
  • 检测ip代理有效性
  • Java开发笔记(一百二十一)AWT输入框
  • 压缩命令
  • 未能加载文件或程序集“Microsoft.mshtml, Version=7.0.3300.0…………解决方法
  • sql2005-windows身份验证改为sqlserver验证【sa】
  • 初探云原生应用管理(一): Helm 与 App Hub
  • C#文件读写常用类介绍[转]
  • day46
  • js点击事件
  • 230. Kth Smallest Element in a BST
  • AWS实战 - 利用IAM对S3做访问控制
  • AzureCon上微软宣布了哪些容器相关的重磅消息
  • Elasticsearch 参考指南(升级前重新索引)
  • JavaScript-Array类型
  • JavaSE小实践1:Java爬取斗图网站的所有表情包
  • Spring思维导图,让Spring不再难懂(mvc篇)
  • TiDB 源码阅读系列文章(十)Chunk 和执行框架简介
  • vagrant 添加本地 box 安装 laravel homestead
  • vue脚手架vue-cli
  • 工作中总结前端开发流程--vue项目
  • 模仿 Go Sort 排序接口实现的自定义排序
  • 手机app有了短信验证码还有没必要有图片验证码?
  • 一个SAP顾问在美国的这些年
  • 异常机制详解
  • #pragam once 和 #ifndef 预编译头
  • (04)Hive的相关概念——order by 、sort by、distribute by 、cluster by
  • (1)安装hadoop之虚拟机准备(配置IP与主机名)
  • (二)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (附源码)ssm户外用品商城 毕业设计 112346
  • (九)One-Wire总线-DS18B20
  • (论文阅读40-45)图像描述1
  • (七)c52学习之旅-中断
  • (一) springboot详细介绍
  • (一)C语言之入门:使用Visual Studio Community 2022运行hello world
  • (转)http协议
  • .bat批处理(四):路径相关%cd%和%~dp0的区别
  • .Net core 6.0 升8.0
  • .NET框架类在ASP.NET中的使用(2) ——QA
  • .sh 的运行
  • ::
  • ??javascript里的变量问题
  • ?php echo ?,?php echo Hello world!;?
  • @ModelAttribute注解使用
  • [2019/05/17]解决springboot测试List接口时JSON传参异常
  • [30期] 我的学习方法
  • [BZOJ1008][HNOI2008]越狱
  • [C++]C++基础知识概述
  • [CSS]浮动
  • [Deep Learning] 神经网络基础