不知不觉笔者来到流媒体部门已经一年半多了,积攒了很多的流媒体知识,但平时工做也比较忙,不多进行总结性的梳理,最近准备花几个周末时间写一个流媒体系列的实践文章,也算是给本身作总结的同时帮助有须要的开发者;nginx
在这一节中咱们主要是经过nginx
+rtmp
模块搭建一个点播服务,就是你有不少视频文件,想让其余人观看就能够参考这篇文章,和笔者以前的一篇文章 使用PHP结合Ffmpeg快速搭建流媒体服务实践 ,应用场景基本一致,不过这篇文章当中不涉及任何代码,相对来讲更加简单。git
在这个流媒体系列文章当中,已实践为主,在文章当中的每一条命令都通过笔者亲自运行并提供相关截图,并说明其中参数的来意,但愿可以更好的帮助到读者。github
为了此服务后期部署到生产环境中,笔者采用docker方式来搭建此服务,而且通常在生产环境中咱们一般使用Linux系统做为服务器,因此我选择了Ubuntu这个系统,其余系统搭建流程基本相似。docker
rtmp服务默认端口是1935,另外安装nginx后须要进行验证,须要开放一个http端口,为了防止和宿主机冲突,这里咱们使用8081端口;咱们须要将视频文件拷贝到容器中,所以还须要挂载一个目录,所以docker容器运行命令以下所示ubuntu
docker run --name video -v /Users/tangqingsong/files:/root/videos -d -i -p 8081:8081 -p 1935:1935 ubuntu:18.04 && docker ps
复制代码
命令很执行完成以后,docker返回结果以下图所示 vim
docker exec -it video bash
复制代码
命令执行完成以后,返回信息以下图所示 segmentfault
docker的Ubuntu镜像apt软件源默认使用官方域名,这个域名在国内访问很是慢,为了后续安装速度可以更快,咱们将apt的软件源更换成阿里云源的地址,执行命令以下所示浏览器
echo 'deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse ' > /etc/apt/sources.list && cat /etc/apt/sources.list
复制代码
命令执行以后,返回的信息以下图所示 bash
接下来咱们更新一下本地的软件源信息,执行命令以下所示服务器
apt update
复制代码
命令执行以后,返回的信息以下图所示
在咱们准备好系统环境以后,咱们就须要开始安装Nginx了,安装Nginx咱们须要先把他的依赖给安装,而后下载相关的源码进行编译,最后执行编译安装
在咱们更新apt软件源完成以后,就能够安装Nginx等一些软件的依赖环境,执行的命令以下所示
apt-get install -y libpcre3 libpcre3-dev libssl-dev zlib1g-dev gcc wget unzip vim make curl
复制代码
安装的依赖软件有点多,会根据你的网速安装速度也不同,命令执行以后,返回的信息以下图所示
咱们首先将须要的模块下载下来,这里我不许备使用nginx-rtmp-module
,而是使用nginx-http-flv-module
来替代,由于后者是基于前者开发的,前者拥有的功能后者都有,后者是国内的开发开发,有中文文档,因此就采用它了,首先将它下载下来并解压,执行的命令以下所示
wget https://github.com/winshining/nginx-http-flv-module/archive/master.zip ; unzip master.zip
复制代码
命令执行以后,返回的信息以下图所示
wget http://nginx.org/download/nginx-1.17.6.tar.gz && tar -zxvf nginx-1.17.6.tar.gz
复制代码
命令执行以后,返回的信息以下图所示
接着咱们进入编译安装环节,首先进入刚才解压的nginx目录当中,执行的命令以下所示
cd nginx-1.17.6 && ls
复制代码
命令执行以后,返回的信息以下图所示
./configure
即可以配置编译参数,这个地方咱们须要将刚才下载的插件
nginx-http-flv-module
加入进来,执行的命令以下所示
./configure --add-module=../nginx-http-flv-module-master
复制代码
命令执行以后,返回的信息以下图所示
vim objs/Makefile
复制代码
在当前文件夹下有一个objs/Makefile
文件,咱们将里面的-Werror
删除,用vim打开文件后以下所示
命令执行以后,返回的信息以下图所示
删除以后,保存并退出,接着就能够进行编译Nginx了,编译的过程稍微有点长,执行的命令以下所示
make
复制代码
命令执行以后,返回的信息以下图所示
make install
复制代码
安装命令执行以后,返回的信息以下图所示
在完成Nginx的安装以后,咱们须要对Nginx进行一番配置,并启动Nginx服务
咱们直接使用vim
命令去编辑Nginx的配置文件,执行命令以下所示
vim /usr/local/nginx/conf/nginx.conf
复制代码
vim命令执行以后,打开的编辑窗口以下所示
rtmp { #RTMP服务
server {
listen 1935; #//服务端口
chunk_size 4096; #//数据传输块的大小
application vod {
play /opt/video/vod; #//视频文件存放位置。
}
}
}
复制代码
粘贴完成并保存以后,咱们在终端执行nginx -t
命令,来测试一下配置文件是否有异常,执行命令以下所示
/usr/local/nginx/sbin/nginx -t
复制代码
命令执行以后,返回的信息以下图所示
/usr/local/nginx/sbin/nginx && curl http://127.0.0.1
复制代码
命令执行以后,返回的信息以下图所示
在上述环节都操做完毕以后,此时基本都处于正常,如今咱们就能够开始来播放视频了,不过咱们还须要在视频目录下放一个视频文件,这样才能播放到这个视频
接着咱们建立一个存放视频的文件夹,并将权限设置设置为777,防止由于权限问题致使没法播放,执行命令以下所示
mkdir -p /opt/video/vod && chmod -R 777 /opt/video/vod
复制代码
命令执行以后,返回的信息以下图所示
cp /root/videos/out.mp4 /opt/video/vod && ls /opt/video/vod
复制代码
命令执行以后,返回的信息以下图所示
out.mp4
文件复制到此目录中,接着咱们就能够测试播放了;不过在测试播放以前咱们须要安装一个视频播放器,由于浏览器是不支持
rtmp
协议。
通常用于调试流媒体咱们习惯使用vlc播放器,咱们去官网下载一下他,官网地址以下
https://www.videolan.org/
复制代码
使用浏览器打开官网后,咱们在首页能看到下载按钮,同时也能够看出支持各类平台,默认下载当前系统的版本,以下图所示
下载并安装vlc播放器完成后,咱们须要在菜单中找到File
->Open Network
,以下图所示
点击Open Network
选项后,会打开一个新的窗口,在这个窗口中咱们能够输入咱们的播放地址,我刚才复制过去的视频播放地址对应以下所示
rtmp://localhost/vod/out.mp4
复制代码
在上图中能够看到窗口中有一个输入框,将播放地址复制进去以后,点击右下方的open
按钮,就能够开始播放了,点击后成功播放效果下图所示
做者:汤青松
日期:2019-11-28
微信:songboy8888