受疫情推迟开学影响,这段时间全国如火如荼推广网络教学,前段时间搭建了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 搭建视频直播服务器相关推荐

  1. 微软视频直播服务器,使用微软云媒体服务快速搭建视频直播

    原标题:使用微软云媒体服务快速搭建视频直播 2020庚子鼠年假期结束,众多企业开始进入开工模式,但"战疫" 仍在进行中,大家仍以居家办公.避免外出及商务会面为主.在大量传统线下交流 ...

  2. 在ubuntu 上搭建Nginx-RTMP 直播服务器

    前言 近段时间在学习Android直播,那么毋庸置疑ffmpeg和WebRTC是音视频界的两个大佬. ffmpeg的基本使用:https://blog.csdn.net/huangliniqng/ar ...

  3. RED5 1.0视频直播服务器 WINDOWS安装记录 教程

    http://www.myhack58.com/Article/sort099/sort0100/2014/50048.htm RED5 1.0视频直播服务器 WINDOWS安装记录 教程 来源:本站 ...

  4. 关于搭建视频直播运营平台的一点经验和心得

    视频直播,目前在各行各业得到了广泛的应用.那么该如何搭建一个自己的直播运营平台?需要投入多大的财力和物力呢? 下面根据我个人的从业经验讲一下,不具有绝对的权威性,但是都是经验的总结,希望和大家一起学习 ...

  5. 如何基于 Nginx 搭建个人直播服务器.md

    前言 最近这几年做直播和短视频领域是真的很火,而且直播的领域也很广泛,可以预见,未来的音视频技术将会作为一种基础技术应用到更广泛的场景中.它可以与 AR/VR 结合,让你在远端体验虚拟与现实,如虚拟服 ...

  6. CRTMP视频直播服务器部署及测试

    一.搭建CRTMP视频直播服务器 1.下载CRTMP服务器软件 svn co --username anonymous --password "" https://svn.rtmp ...

  7. 网页测试本地服务器_音视频开发搭建一个直播服务器

    现在抖音.快手等直播实在是太火了,因此对音视频的开发非常感兴趣.查阅了相关资料,使用Nginx搭建一个简单的直播跟点播流媒体服务器,能够实时推流到服务器,同时在网页端播放直播的视频. 先上效果 使用O ...

  8. 用监控摄像机搭建视频直播系统的方式

    一.使用模拟摄像机方式: (1),(模拟摄像机+视频采集卡+PC+转码软件)+流媒体服务器+客户端: 这是比较久以前使用的远程视频直播系统搭建的方式.首先是前端安装模拟摄像机用于采集模拟信号并用视频采 ...

  9. 干货 | 使用京东云搭建视频直播网站

    视频直播是指利用互联网及流媒体技术进行直播,视频因融合了图像.文字.声音等丰富元素,声形并茂,效果极佳,逐渐成为互联网的主流表达方式.视频通过真实.生动的传播,营造出强烈的现场感,吸引眼球,达成印象深 ...

  10. 如何自建obs服务器,使用 Nginx+OBS 搭建rmtp直播服务器并进行直播

    目录简介和安装 配置 OBS推流 运行 拉流 完成 简介和安装 Nginx 本身是一个非常出色的HTTP服务器,OBS (Open Broadcaster Software) 是一个免费且开源的,全平 ...

最新文章

  1. qt工程在linux系统里颜色显示错误_【飞凌嵌入式RK3399开发板试用体验】+QT开发环境搭建测试(二)...
  2. git提交代码遇到fatal: unable to access
  3. 计算机系统基础:CPU相关知识笔记
  4. python 最快 因式分解_Python实现的对一个数进行因式分解操作示例
  5. 【script】python3使用http.server搭建简易web服务
  6. python数据分析是什么意思_选择python进行数据分析的理由和优势
  7. bigdecimal divide四舍五入_BigDecimal 四则运算
  8. Java伪装csrss_结束伪装成系统进程名的进程的批处理
  9. 基于台达PLC的步进电机控制
  10. 2018年华为数通技术大赛复赛拓扑题
  11. Unity3d 周分享(16期 2019.5.1 )
  12. 使用nodejs-koa2-mysql-sequelize-jwt 实现项目api接口
  13. 1016: 委派任务*
  14. Unity3dC#分布式游戏服务器ET框架介绍-组件式设计
  15. 围城---一段不错的观后感
  16. C语言100个囚徒和灯泡,经典算法问题其一:百日囚徒问题
  17. decorators 参数_Django中decorators装饰器的使用
  18. 裁员、年终奖减半:在公司打工,你永远不知道意外和明天哪个先来
  19. hdu 4481 Time travel(高斯求期望)
  20. 《计算流体力学教程》_张德良编著_高等教育出版社——学习笔记

热门文章

  1. 电脑tdr太低是什么意思_SOLIDWORKS TDR 错误解决办法
  2. 计算机重启快捷键是什么,重启计算机的快捷键是什么?
  3. 2017软件测试考试分值,2017年英语四级分值分配「最新」
  4. windos系统如何获得超级管理员权限
  5. python(3):文件操作/os库
  6. My97DatePicker时间控件在asp.net的应用
  7. 《岗位怎么招》第二期:DBA岗位的人物画像
  8. 高精度NTC测温的硬件电路以及软件设计
  9. 数据结构之leetcode 347题
  10. 【毕业设计】深度学习YOLO安检管制物品识别与检测 - python opencv