CentOS7环境下直播和点播服务器的搭建

一、准备环境

1.下载wget、lrzsz工具

yum install -y wget
yum install -y lrzsz

2.配置阿里云的yum源

wget -o /etc/yum.repos.d/CentOS-Base.repo.aliyun http://mirrors.aliyun.com/repo/Centos-7.repo

3.备份系统原来的repo文件

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

4.替换系统原来的repo文件(即给我们下载的阿里云源文件重命名)

mv /etc/yum.repos.d/CentOS-Base.repo.aliyun  /etc/yum.repos.d/CentOS-Base.repo

5.安装依赖

yum install -y gcc-c++ zlib pcre openssl openssl-devel 

6.新建文件夹方便我们存储文件

mkdir /opt/nginx mkdir /opt/soft

二、下载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

下载完毕后将所有文件上传到nginx目录下

cd /opt/nginx再输入命令:rz,选择要上传的文件

三、解压并安装文件

1.安装FLV模块

tar -zxvf  yamdi-1.9.tar.gz
cd yamdi-1.9
mark && make install

2.解压MP4模块

tar -zxvf nginx_mod_h264_streaming-2.2.7.tar.gz 

3.解压HLS模块(m3u8、流媒体)

yum install -y unzip #解压用的
unzip nginx-rtmp-module-master.zip 

4.解压nginx软件

tar -zxvf nginx-1.8.1.tar.gz

5.在安装之前  mp4模块有一个bug 要把它处理一下

cd nginx_mod_h264_streaming-2.2.7/src
vim ngx_http_streaming_module.c
157行-161行  对WINDOW系统的检查注释掉:命令模式下157gg跳转到157行

注释完毕后保存并退出

6.开始安装

在安装nginx的时候 一起把mp4模块 以及HLS模块一起装上去

C语言中 ./configure 向导 预配置

--add-module 安装扩展插件
--prefix 安装在哪里
--with- 使用系统内置的模块 已经安装完毕 关联

 cd nginx-1.8.1./configure --add-module=/opt/nginx/nginx_mod_h264_streaming-2.2.7   --add-module=/opt/nginx/nginx-rtmp-module-master  --with-http_ssl_module   --prefix=/opt/soft/nginx   --with-http_flv_module  --with-http_stub_status_module

修改 objs下的文件Makefile:

vim objs/Makefile

将图中所示第3行  -Werror 删除掉

保存并退出后:

make && make install 

四、修改nginx服务器配置文件 nginx.conf

cd  /opt/soft/nginx/conf
vim nginx.conf

一个 nginx.conf中可以配置多个服务器
一个服务器可以监听1个端口

我们修改配置文件如下图所示:

保存后退出

上传一个MP4文件以供测试

cd /opt/soft/nginx/html
输入命令:rz选择上传一个MP4文件

五、启动nginx服务器

cd /opst/soft/nginx./nginx
关闭nginx服务器: ./nginx -s stop

重启服务器:./nginx -s reload

在浏览器输入ip:80/test.mp4,播放成功则点播服务器搭建成功(如下图所示)

六、优化视频播放机制

如今网站大多采用m3u8格式的视频播放方式,即把视频切片,用户播放的时候依照顺序播放视频片段,这样做的好处是减少了缓冲时间,提高了用户的体验感。

我们这里用的是Linux版ffmpeg工具,下载地址:https://ffmpeg.zeranoe.com/builds/

1.下载ffmpeg程序的依赖程序yasm:

链接:https://pan.baidu.com/s/1nIkNQNmOgVW1CYcTs1Um8w
提取码:y00y

上传到虚拟机:

cd /opt/nginx
输入命令rz选择刚才下载的ffmpeg-4.2.2.tar.bz2和yasm-1.3.0.tar.gz

2.解压:

yun install -y bzip2
tar -jxvf ffmpeg-4.2.2.tar.bz2tar -zxvf yasm-1.3.0.tar.gz

3.安装yasm:

cd yasm-1.3.0
./configuremake && make install

4.安装ffmpeg:

cd ./configure --prefix=/opt/soft/ffmpeg
make && make install 安装过程有点长,请耐心等待

5.安装完毕后先将MP4文件转换为ts文件:

cd /opt/soft/ffmpeg/bin
./ffmpeg -y -i /opt/soft/nginx/html/test.mp4  -vcodec copy -acodec copy -vbsf h264_mp4toannexb output.ts
运行好后,输入命令ll即可看到转换后的ts文件

6.将ts文件切片:

ffmpeg -i output.ts -c copy -map 0 -f segment -segment_list testlist.m3u8 -segment_time 1000 output.ts
#output.ts 这个看上条命令后面出输的文件名称。我这里是output.ts
#出输的m3u8文件索引文件名称,可以随意修改,我这里是testlist.m3u8
#-segment_time 1000 每一段切片的控制时间,我这里是1000s,根据你的情况随意修改

七、直播推流

1.修改nginx配置文件nginx.conf

vim /opt/soft/nginx/conf/nginx.conf
rtmp {
    server {
        listen 1935;  #监听的端口
        chunk_size 4096;
        application hls {  #rtmp推流请求路径
            live on;
            hls on;
            hls_path /usr/share/nginx/html/hls;
            hls_fragment 5s;
        }
    }
}  

加入以上代码,具体关系如下:

保存退出后创建目录hls

cd /opt/soft/nginx/html
mkdir hls重启nginx服务:cd /opt/soft/nginx/sbin./nginx -s reload

2.下载推流工具

下载地址:https://pc.qq.com/detail/4/detail_23604.html

安装完毕后在来源区域点击"+",再添加视频捕获设备(打开摄像头)

点击确定即可看到正在操作电脑的自己.......

再添加显示器捕获:

如果窗口出现黑屏

设备管理器中-->显示适配器-->独立显卡-禁用

右键禁言该显卡,再启动OBS即可看到摄像头+显示器(记得调换一下视频和显示器的顺序,让视频捕获在前)

3.推流

点击右下角的设置,再点击推流,配置如下图所示:

配置好后点击右下角:开始推流

4.拉流

①方法一(推荐):下载Nginx_EV播放器:

链接:https://pan.baidu.com/s/1IeqmFa5K8buIk-ck8CR9aA
提取码:7com
下载完成后将该项目导入前端开发工具中(WebStorm、HBuilder等等),运行index.html

在rtmp地址中填入推流中设置的服务器地址,注意下图的12345就是推流时自己设置的串流密钥,点击观看直播即可看到画面

②方法二:下载百度开源播放器:https://cloud.baidu.com/doc/Developer/index.html?sdk=Player

点击下载完成后解压,完成后如下图所示有两个文件(标记的文件我改过名字,我们要用的播放器就在标记的文件中,反正知道不是第一个就行...)

在player文件夹中新建一个test.html,内容如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div id="playercontainer"></div>
</body>
<script type="text/javascript" src="cyberplayer.js"></script>
<script type="text/javascript">
    var player = cyberplayer("playercontainer").setup({
        width: 640,
        height: 360,
        file: "rtmp://192.168.187.101:1935/hls/12345", // 注意!!!<—rtmp直播地址,这里填写自己对应的服务器地址
        autostart: true,
        stretching: "uniform",
        volume: 100,
        controls: true,
        rtmp: {
            reconnecttime: 5, // rtmp直播的重连次数
            bufferlength: 1 // 缓冲多少秒之后开始播放 默认1秒
        },
        ak: "某个accessKey" // 注意!!百度云管理控制平台注册即可获得accessKey
    });
</script>
</html>

代码中ak需要注册百度云管理控制平台账号并登录才可获得

地址:https://login.bce.baidu.com/?redirect=https%3A%2F%2Fconsole.bce.baidu.com%2Fiam%2F#/iam/accesslist

将该项目(我这里是player)导入前端开发工具中(WebStorm、HBuilder等等),运行test.html即可看到直播内容!!!

原文地址:https://www.cnblogs.com/theyang/p/12469352.html

时间: 2024-08-18 06:19:17

CentOS7环境下直播和点播服务器的搭建的相关文章

Ubuntu下nginx流媒体点播服务器的部署

参考网址:http://blog.csdn.net/xiaoliouc/article/details/8363984 第一次弄linux的东西,对C和C++,也没什么基础,参照网上的资源,记录如下. 需要的软件和一些资源文件,上传至网址(http://download.csdn.net/detail/zuowen8605/7571901),csdn和博客园混着来吧.(:>) 使用的是Unbuntu-12.04.2-i386 链接中已包含以下内容: openssl-1.0.1c.tar.gz p

使用 nginx 和 rtmp 插件搭建视频直播和点播服务器

使用 nginx 和 rtmp 模块 ,可以很容易地搭建一个视频直播和点播服务器出来. 首先,看一下最经典的参考文献: How to set up your own private RTMP server using nginx 1. 安装 nginx 和 rtmp 模块 有关 nginx 的编译和安装比较简单,这里就不介绍了,看参考文献.这里提示以下几点: (1) 安装好 nginx 后,配置文件在这里: /usr/local/nginx/conf/nginx.conf (2) 启动 ngin

CentOS7环境下SSH端口修改笔记

CentOS7环境下SSH端口修改笔记 说明: CentOS7服务器环境,默认SSH端口为22,考虑到安全方面问题,欲修改端口为62231(机器内网IP为192.168.1.31) ssh配置文件和iptables中端口开放配置调整时,原先的先不要移除,显式的同时打开22和62231端口,待配置完成确认62231端口访问正常后再逐个移除22端口的配置,防止配置过程中出现差错导致服务器访问不了. 一.SELinux配置修改 1.先检查SELinux状态,如果已关闭则无需相关修改 [[email p

网页全终端视频流媒体播放器EasyPlayer之使用 nginx 和 rtmp 插件搭建视频直播和点播服务器

使用 nginx 和 rtmp 模块 ,可以很容易地搭建一个视频直播和点播服务器出来.下面我们来看一下具体实施步骤: 1. 安装 nginx 和 rtmp 模块 有关 nginx 的编译和安装比较简单,这里就不介绍了,看参考文献.这里提示以下几点: (1) 安装好 nginx 后,配置文件在这里: /usr/local/nginx/conf/nginx.conf(2) 启动 nginx 的命令: $ sudo /usr/local/nginx/sbin/nginx -s stop $ sudo

家用环境下部署wifidog认证服务器(java版)

本文所讲的是基于一个java版wifidog认证服务器的开源项目在windows环境下搭建wifidog认证服务器,并实现用户名密码的认证. 大致步骤如下: 一,准备 1.搭建硬件及网络环境 a.需要普通路由器1个,刷了apfree固件的路由器一个,Windows电脑一台,网线若干,宽带网络. b.按照下图的拓扑结构进行搭建. 2.获取软件及工具并安装 a.获取并安装jdk6 b.获取并安装MySQL c.安装MyEclipse d.获取java版wifidog认证服务器源码(https://g

CentOS7环境下安装VIM8 并支撑python3

CentOS7环境下安装VIM8并支撑python3 在CentOS7环境下打造pythonIDE的时候发现系统自带的vim因为版本低对python的支持不够,导致安装插件的时候总是出错,所以干脆把原系统中的vim删除后源码安装vim8并配置支持python3 删除系统中原有的vim yum -y remove vim* 利用yum命令将系统中的vim删除 源码安装vim 先进入你想放安装包的路径 cd /usr/local/share 我这里就放在了这个路径下,你们视情况而定 下载vim源码包

Windows7环境下MyEclipse+Nutch2.2.1+Mysql搭建

一.环境准备 首先肯定是配置开发环境,这里暂时不作详细描述. 需要的环境有jdk1.7,MyEclipse,SVN,ant,以及MyEclipse下的两个插件subclipse 和IvyDe,下载地址http://subclipse.tigris.org/update_1.8.x和http://www.apache.org/dist/ant/ivyde/updatesite. 二.从svn检出项目 接着再Next到下一步 Finish完成导入. 三.  修改ivy目录下的ivysetting.x

CentOS7环境下在/离线安装GCC与GCC-C++

前几天在准备CentOS7下的编译环境,在线安装GCC和GCC-C++非常简单,只要机器是联网的在Terminal窗口中按顺序分别输入 1 yum install gcc 2 yum install gcc-c++ 就可以在线完成安装,另外centos的镜像可以在官网(https://www.centos.org/download/)下载. 比较麻烦的是离线环境下安装,经过几天的摸索还是成功在离线环境下安装好了. 首先在官网下载ISO文件,我下载的是CentOS-7-x86_64-DVD-161

eclipse:eclipse for java EE环境下如何配置tomcat服务器,并让tomcat服务器显示在控制台上,将Web应用部署到tomcat中

eclipse环境下如何配置tomcat 打开Eclipse,单击"Window"菜单,选择下方的"Preferences".  单击"Server"选项,选择下方的"Runtime Environments".  点击"Add"添加Tomcat.  点击"Next",选中自己安装的Tomcat路径.  点击"Finish"完成.  建立一个Web应用 File →