Ngnix 搭建视频直播服务器
受疫情推迟开学影响,这段时间全国如火如荼推广网络教学,前段时间搭建了edx慕课平台,但还缺点什么,就是网络直播教学,花一天时间,搭建成功,记录备用。
1. 基本技术路线
其中,服务器采用 nginx + nginx-rtmp-module,推流采用 OBS-Studio,拉流 采用html5网页播放
2. 直播服务器安装
环境 centos7,没有安装桌面图形界面,server版
yum install -y gcc
yum install -y openssl openssl-devel
yum insall -y pcre pcre-devel
yum install -y zlib zlib-devel
git clone https://github.com/arut/nginx-rtmp-module.git
wget http://nginx.org/download/nginx-1.9.9.tar.gz
tar -zxvf nginx-1.9.9.tar.gz
cd nginx-1.9.9
./configure --prefix=/usr/local/nginx --add-module=/root/nginx-rtmp-module --with-http_ssl_module
make && make install
正常编译安装后可以看到 /usr/local/nginx 目录
配置文件
nano /usr/local/nginx/conf/nginx.conf
加入如下配置
rtmp {
server {
listen 1935; #监听的端口
chunk_size 4000; #流整合的最大的块大小,这个值设置的越大 CPU 负载就越小
#增加对hls的支持
application hls { #rtmp推流请求路径
live on; #开启实时
hls on; #开启hls
hls_path /usr/local/nginx/html/hls; #推流文件保存的路径,要有写入权限
hls_fragment 5s; # 每个文件包含5秒的视频内容
}
application hls1 { # 第二直播频道 ...
live on;
hls on;
hls_path /usr/local/nginx/html/hls1;
hls_fragment 10s;
}
}
}
保存后启动服务器
./sbin/nginx -c ./conf/nginx.conf
如修改配置后 nginx -s reload 命令重新读取配置
3. 推流直播
OBS-Studio-23.2.1-Full-x64 网上下载的绿色版本,无需安装,解压即可使用
配置推流服务器,串流密钥就是服务器上保存串流缓存的文件名
如果推流正常,在/usr/local/nginx/html/hls 目录下可以看到生成的文件
[root@gdcmxy sbin]# ls /usr/local/nginx/html/hls
stream-0.ts stream-1.ts stream.m3u8
4. 拉流,也就是播放直播啦
采用html5 网页
<!DOCTYPE html>
<html>
<head>
<title>播放器</title>
<!-- 导入的videojs是7.0版本以上的,集成VHS协议库,可播放HLS流媒体视频 -->
<link href="css/video-js.min.css" rel="stylesheet" type="text/css">
<script src="js/video.min.js"></script>
<!-- 引入的videojs-flash.js插件主要是为播放rtmp视频流-->
<script src="js/videojs-flash.min.js"></script>
</head>
<body>
<video id='myvideo' width=960 height=540 class="video-js vjs-default-skin" con$
<!-- RTMP直播源地址-->
<source src="http://192.168.49.129/hls/stream.m3u8">
</video>
<script>
var player = videojs('myvideo', {}, function(){console.log('videojs播放器 $
player.play();
</script>
</body>
</html>
正常使用直播
5. 直播现成的视频文件
可以在服务器安装 ffmpeg 作为播放源
安装:
yum install -y epel-release rpm
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
yum repolist
rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro
rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-1.el7.nux.noarch.rpm
yum repolist
yum install -y ffmpeg
使用:
ffmpeg -re -i testvideo.mp4 -c copy -f flv rtmp://192.168.49.129:1395/live/stream
下图左边是播放效果,右边是ffmpeg在推流
下图播放视频文件,两路推流,两路拉流,画面流畅,没有压力
参考多篇文章,不在此列出,谢谢!
Ngnix 搭建视频直播服务器相关推荐
- 微软视频直播服务器,使用微软云媒体服务快速搭建视频直播
原标题:使用微软云媒体服务快速搭建视频直播 2020庚子鼠年假期结束,众多企业开始进入开工模式,但"战疫" 仍在进行中,大家仍以居家办公.避免外出及商务会面为主.在大量传统线下交流 ...
- 在ubuntu 上搭建Nginx-RTMP 直播服务器
前言 近段时间在学习Android直播,那么毋庸置疑ffmpeg和WebRTC是音视频界的两个大佬. ffmpeg的基本使用:https://blog.csdn.net/huangliniqng/ar ...
- RED5 1.0视频直播服务器 WINDOWS安装记录 教程
http://www.myhack58.com/Article/sort099/sort0100/2014/50048.htm RED5 1.0视频直播服务器 WINDOWS安装记录 教程 来源:本站 ...
- 关于搭建视频直播运营平台的一点经验和心得
视频直播,目前在各行各业得到了广泛的应用.那么该如何搭建一个自己的直播运营平台?需要投入多大的财力和物力呢? 下面根据我个人的从业经验讲一下,不具有绝对的权威性,但是都是经验的总结,希望和大家一起学习 ...
- 如何基于 Nginx 搭建个人直播服务器.md
前言 最近这几年做直播和短视频领域是真的很火,而且直播的领域也很广泛,可以预见,未来的音视频技术将会作为一种基础技术应用到更广泛的场景中.它可以与 AR/VR 结合,让你在远端体验虚拟与现实,如虚拟服 ...
- CRTMP视频直播服务器部署及测试
一.搭建CRTMP视频直播服务器 1.下载CRTMP服务器软件 svn co --username anonymous --password "" https://svn.rtmp ...
- 网页测试本地服务器_音视频开发搭建一个直播服务器
现在抖音.快手等直播实在是太火了,因此对音视频的开发非常感兴趣.查阅了相关资料,使用Nginx搭建一个简单的直播跟点播流媒体服务器,能够实时推流到服务器,同时在网页端播放直播的视频. 先上效果 使用O ...
- 用监控摄像机搭建视频直播系统的方式
一.使用模拟摄像机方式: (1),(模拟摄像机+视频采集卡+PC+转码软件)+流媒体服务器+客户端: 这是比较久以前使用的远程视频直播系统搭建的方式.首先是前端安装模拟摄像机用于采集模拟信号并用视频采 ...
- 干货 | 使用京东云搭建视频直播网站
视频直播是指利用互联网及流媒体技术进行直播,视频因融合了图像.文字.声音等丰富元素,声形并茂,效果极佳,逐渐成为互联网的主流表达方式.视频通过真实.生动的传播,营造出强烈的现场感,吸引眼球,达成印象深 ...
- 如何自建obs服务器,使用 Nginx+OBS 搭建rmtp直播服务器并进行直播
目录简介和安装 配置 OBS推流 运行 拉流 完成 简介和安装 Nginx 本身是一个非常出色的HTTP服务器,OBS (Open Broadcaster Software) 是一个免费且开源的,全平 ...
最新文章
- qt工程在linux系统里颜色显示错误_【飞凌嵌入式RK3399开发板试用体验】+QT开发环境搭建测试(二)...
- git提交代码遇到fatal: unable to access
- 计算机系统基础:CPU相关知识笔记
- python 最快 因式分解_Python实现的对一个数进行因式分解操作示例
- 【script】python3使用http.server搭建简易web服务
- python数据分析是什么意思_选择python进行数据分析的理由和优势
- bigdecimal divide四舍五入_BigDecimal 四则运算
- Java伪装csrss_结束伪装成系统进程名的进程的批处理
- 基于台达PLC的步进电机控制
- 2018年华为数通技术大赛复赛拓扑题
- Unity3d 周分享(16期 2019.5.1 )
- 使用nodejs-koa2-mysql-sequelize-jwt 实现项目api接口
- 1016: 委派任务*
- Unity3dC#分布式游戏服务器ET框架介绍-组件式设计
- 围城---一段不错的观后感
- C语言100个囚徒和灯泡,经典算法问题其一:百日囚徒问题
- decorators 参数_Django中decorators装饰器的使用
- 裁员、年终奖减半:在公司打工,你永远不知道意外和明天哪个先来
- hdu 4481 Time travel(高斯求期望)
- 《计算流体力学教程》_张德良编著_高等教育出版社——学习笔记
热门文章
- 电脑tdr太低是什么意思_SOLIDWORKS TDR 错误解决办法
- 计算机重启快捷键是什么,重启计算机的快捷键是什么?
- 2017软件测试考试分值,2017年英语四级分值分配「最新」
- windos系统如何获得超级管理员权限
- python(3):文件操作/os库
- My97DatePicker时间控件在asp.net的应用
- 《岗位怎么招》第二期:DBA岗位的人物画像
- 高精度NTC测温的硬件电路以及软件设计
- 数据结构之leetcode 347题
- 【毕业设计】深度学习YOLO安检管制物品识别与检测 - python opencv