Nginx 推流 拉流 --- 点播直播
1. 准备环境
- 安装操作系统Cenos
- 配置yum源
yum:https://developer.aliyun.com/mirror/- Nginx依赖
gcc-c++ zlib pcre openssl openssl-devel- Nginx和扩展模块
Nginx本身只是一个服务器,对流媒体并没有支持,所以我们要下载对应的模块来扩展其功能
MP4模块:http://h264.code-shop.com/download/nginx_mod_h264_streaming-2.2.7.tar.gz
FLV模块:http://sourceforge.net/projects/yamdi/files/yamdi/yamdi-1.9.tar.gz
直播流模块:https://github.com/adwpc/nginx-rtmp-module
FastDFS模块:https://github.com/happyfish100/fastdfs-nginx-module- FFMPEG
ffmpeg :https://ffmpeg.zeranoe.com/builds/- OBS推流
- EV拉流
2. 安装环境
2.1 上传所有模块到系统中
mkdir /opt/nginx
cd /opt/nginx
rz nginx-1.8.1.tar.gz
rz nginx_mod_h264_streaming-2.2.7.tar.gz
rz yamdi-1.9.tar.gz
rz nginx-rtmp-module-master.zip
2.2 安装FLV模块
tar -zxvf yamdi-1.9.tar.gz
cd yamdi
./configure
mark && make install
2.3 解压MP4模块
tar -zxvf nginx_mod_h264_streaming-2.2.7.tar.gz
处理一个bug
cd /opt/nginx/nginx_mod_h264_streaming/src
注释157行-161行
/* TODO: Win32 */
// if (r->zero_in_uri)
// {
// return NGX_DECLINED;
// }
2.4 解压nginx
tar -zxvf nginx-1.8.1.tar.gz
tar -zxvf nginx_mod_h264_streaming.tar.gz
unzip nginx-rtmp-module-master.zip
2.5 安装nginx并添加模块
./configure --add-module=../nginx_mod_h264_streaming --add-module=../nginx-rtmp-module-master --with-http_ssl_module --prefix=/opt/software/nginx --with-http_flv_module --with-http_stub_status_module
注:如果编译报错, vim objs/Makefile (修改objs/Makefile文件, 去掉其中的"-Werror"), 然后就能够正常编译了.
2.6 播放配置
cd /opt/software/nginx/conf
vim nginx.conf
添加对FLV和MP4的支持
location ~ \.flv {
flv;
}
location ~ \.mp4$ {
mp4;
}

2.7 FFmpeg
FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序
上传
rz ffmpeg-4.2.2.tar.bz2
安装
yum install bzip2 #因为后缀是bz2的 要安装 bzip2
tar -jxvf ffmpeg-4.2.2.tar.bz2 #使用 -jxvf 解压bz2文件
cd ffmpeg-4.2.2 #进入目录
./configure --prefix=/opt/software/ffmpeg #配置 设置安装路径
make && make install #安装
3. 点播
上传测试MP4
cd /opt/software/nginx/html
rz test.mp4
查看 http://192.168.3.9/test.mp4

4. 直播
4.1 配置服务
cd /opt/software/nginx/conf
vim nginx.conf
rtmp {
server {
listen 1935; #监听的端口
chunk_size 4096;
application hls { #rtmp推流请求路径
live on;
hls on;
hls_path /opt/software/nginx/html/hls;
hls_fragment 5s;
}
}
}
mkdir /opt/software/nginx/html/hls
4.2 直播推流
推流指的是把采集阶段封包好的内容传输到服务器的过程。其实就是将现场的视频信号传到网络的过程
设置场景

场景增加视频捕获设备,显示器捕获或窗口捕获
注:窗口黑屏解决方案
设备管理器中-->显示适配器-->独立显卡-禁用
设置推流地址

rtmp服务器:rtmp://192.168.3.9:1935/hls/
密钥:12345
4.3 直播拉流
拉流是指服务器已有直播内容,用指定地址进行拉取的过程
借用EV播放

输入拉流地址
rtmp地址:rtmp://192.168.3.9:1935/hls/12345
点击开始观看直播

Nginx 推流 拉流 --- 点播直播的更多相关文章
- 直播知识-推流&拉流
推流,指的是把采集阶段封包好的内容传输到服务器的过程.其实就是将现场的视频信号传到网络的过程.“推流”对网络要求比较高,如果网络不稳定,直播效果就会很差,观众观看直播时就会发生卡顿等现象,观看体验很是 ...
- iOS开发之利用IJKPlayer+nginx+rtmp搭建直播的推流和拉流
最近项目中想实现直播的功能,所以研究了一段时间的直播功能,当然也是在别人的基础上不断的学习实现的,所以记录一下,希望对大家有所帮助. 直播拉流功能: 这里使用了开源的IJKPlayer第三框架,ijk ...
- Mac上搭建直播服务器Nginx+rtmp,实现手机推流、拉流
转载自http://www.cnblogs.com/jys509/p/5649066.html 简介 nginx是非常优秀的开源服务器,用它来做hls或者rtmp流媒体服务器是非常不错的选择,本人在网 ...
- 基于rtmp+nginx 、vlc实现FFmpeg推流与wpf端拉流
这周在研究基于rtmp+nginx直播流的实现,现总结如下: 0.所需文件: 链接:https://pan.baidu.com/s/1U5gsNI8Rcl684l5gVL6swg 提取码:dli9 1 ...
- 基于阿里云直播实现视频推流(ffmpeg)/拉流(Django2.0)以及在线视频直播播放(支持http/https)功能
原文转载自「刘悦的技术博客」https://v3u.cn/a_id_146 由于5g网络的光速推广,视频业务又被推上了风口浪尖,在2019年初我们还在谈论照片,短视频等关键字,而进入2020年,我们津 ...
- iOS - 直播流程,视频推流,视频拉流,简介,SMTP、RTMP、HLS、 PLPlayerKit
收藏笔记 1 . 音视频处理的一般流程: 数据采集→数据编码→数据传输(流媒体服务器) →解码数据→播放显示1.数据采集:摄像机及拾音器收集视频及音频数据,此时得到的为原始数据涉及技术或协议:摄像机: ...
- 【转】直播流程,视频推流,视频拉流,简介,SMTP、RTMP、HLS、 PLPlayerKit
原:https://www.cnblogs.com/baitongtong/p/11248966.html 1 .音视频处理的一般流程: 数据采集→数据编码→数据传输(流媒体服务器) →解码数据→播放 ...
- 直播推流之blibli和拉流LFLiveKit
执行上面操作后,导入合成的拉流blibli包到工程中,然后新建个播放控制器来设置播放 1. 播放的一些操作. 2. 高斯模糊. 3. 新建聊天控制器. - (void)viewDidLoad { [ ...
- Ubuntu18.04下配置Nginx+RTMP服务器,实现点播/直播/录制功能
2019.3.22更新 最新的nginx-1.15.9可与openssl1.1.1兼容了 以下原文: 这个东西我眼馋挺久了,最近终于试玩了一下,感觉很好玩,在搭建的过程在也遇到一些坑,这里总结一下 安 ...
随机推荐
- Yii框架的学习指南(策码秀才篇)1-1 如何认识Yii framework
Yii的框架和其他框架的区别在于:它是更加 快速,安全,专业的PHP框架 Yii是一个高性能的,适用于开发WEB2.0应用的PHP框架. Yii是一个基于组件.用于开发大型 Web 应用的 高性能 P ...
- ionic2踩坑之订阅发布模式的实现
原文地址:http://www.cnblogs.com/eccainiao/p/6429536.html 转载请说明. 在ionic2中实现订阅发布模式,需要用到Events. Events下面有三个 ...
- Java捕获并处理线程失败抛出的异常
使用 UncaughtExceptionHandler 示例代码如下: Thread.UncaughtExceptionHandler handler = new Thread.UncaughtExc ...
- node.js 和 npm/cnpm/nrm 的安装
node.js 和 npm/cnpm/nrm 的安装 安装 node.js.去 官网 下载,下载 LTS 版本的.安装时一路点确定,不要改动任何设置. 在 git-bash 或是 cmd 下,输入 n ...
- MongoDB的初级安装和使用
对于非关系型数据库,很多人不是很清楚,我也是作为新手慢慢摸索, 外网地址下载贼慢:我烦放在自己的百度网盘里 软件链接:https://pan.baidu.com/s/1A7h4VOfvm8N2gnlJ ...
- 两种方法使用js读写cookie实现一个底部广告浮层效果
下面一个案例实现了js实现一个页面浮层并且使用两种方法使用js读写cookie:来实现用户关闭广告的显示状态: 读者可以将下面代码复制到一个html文件试试效果:html的pre标签未两种js实现的方 ...
- Web窗体--控件
服务器基本控件:button: text属性linkbutton:text属性,它是一个超链接模样的普通buttonhyperlink: navigateurl:链接地址,相当于<a>标签 ...
- 翻译:谷歌HTML、CSS和JavaScript风格规范
我喜欢浏览风格规范.他们通常有明显的规则,虽然有些有荒诞之感,但是却可以发现之前未注意到的宝石.不幸的是,鲜有公司有这个勇气来发布自己内部的风格规范.BBC 2010年时候公开其文档以及Google最 ...
- 修改 MyEclipse 编辑区域背景颜色
- Jmeter之Beanshell---使用Java处理JSON块
原文出处:https://www.cnblogs.com/xpp142857/p/7374281.html [环境] ①Jmeter版本:3.1,JDK:1.7 ②前置条件:将json.jar包置于. ...