2-视频传输,监控,直播方案-搭建视频流服务器,推送视频流,拉取视频流观看(RTMP,m3u8)
<p><iframe name="ifd" src="https://mnifdv.cn/resource/cnblogs/video_transmission" frameborder="0" scrolling="auto" width="100%" height="1500"></iframe></p>
RTMP和RTSP其实是视频传输协议,咱们在网络上看视频的时候100%都是用的这两种.
咱们在观看视频的时候应该有个感觉,咱是边看视频边下载, 整个视频是一点一点的拉取并播放.
拉取视频数据就是使用的上面的协议.
这节呢咱就安装并启动RTMP服务器,然后呢咱用调试助手往服务器上上传视频,
然后
安装RTMP
1.上传RTMP源文件(方式1),下面有个方式2可以直接用git拉取,不需要自己上传
在以下目录点击上传
2,解压文件
1.上传RTMP源文件(方式2)
在opt目录点击终端,然后输入一下git地址,然后点击回车
git clone git://github.com/arut/nginx-rtmp-module
下载完成以后, 重新进来这个页面,或者刷新一下, 就会看到已经下载好了
2.Nginx配置上RTMP功能
1.Nginx需要编译安装,咱上一节不是编译安装的,所以先卸载掉
2.点击安装Nginx
3.配置Nginx安装的时候添加上rtmp模块
--add-module=/opt/nginx-rtmp-module
解释: --add-module即使添加模块的意思
后面的 =/opt/nginx-rtmp-module 是咱这个模块的路径(咱上面的RTMP文件就解压到了这里)
4.开始安装
要等好一小会............
5.安装完成
6.检测一下是否安装上了rtmp
在随意一个目录点击终端然后输入命令 nginx -V
在Nginx上配置RTMP服务器
1,先启动Nginx的Web服务器功能
咱现在没有域名什么的,就只先配置成IP地址访问的
2,在浏览器上输入 http://自己的服务器IP地址
比如我的是: http://116.62.178.48
3,在网站根目录新建一个hls文件夹
该文件夹用来保存RTMP处理之后的视频文件(这些视频文件就是客户访问播放的文件)
点击根目录
4,修改Nginx的配置文件
注意!注意! hls_path /www/wwwroot/116.62.178.48/hls; 里面的IP地址根据自己的修改
rtmp { server { listen 1935; #rtmp监听的端口(默认1935) chunk_size 4000;#网络数据块长度 application hls { #rtmp推流请求路径 live on;#启动直播功能 hls on;#启动hls流功能(视频切片) hls_path /www/wwwroot/116.62.178.48/hls; #就是推流文件存储位置 hls_fragment 5s;#视频切片时间长度 hls_playlist_length 30s;#HLS播放列表长度 } } }
重新载入配置
4.提示
我之所以把视频存储到网站根目录是因为发现放到其它目录只能拉取到rtmp流,无法播放m3u8.....
先放到网站根目录访问,以后水平高了再看看啥问题
使用DBS软件推送视频到服务器(咱先使用现成的软件助手测试哈)
1,自行安装(可以百度OBS软件下载并安装哈)
2,设置数据源为电脑录屏(如果电脑有摄像头也可以选择电脑上的摄像头哈)
2,设置推送的RTMP地址
rtmp://替换自己服务器的IP地址:1935/hls
秘钥呢随意(这个咱用别的客户端访问视频数据的时候需要用到)
3,把视频推送到RTMP服务器
使用另外的软件拉取咱推送的视频(咱先使用现成的软件助手测试哈)
1.首先看一下服务器那个目录里面有没有咱推送的视频
推送视频的时候我秘钥设置的yang,所以视频是yang命名的
yang.m3u8文件是视频索引文件,
xxxx.ts文件是视频文件,客户端访问的时候就是轮训的挨个下载播放
其实呢这就是视频切片.
2.自行安装 VLC软件
3.先试一试从服务器拉取rtmp视频流
rtmp://替换自己服务器的ip地址/hls/yang
提示:最后那个yang就是咱推送的时候设置的秘钥哈
4.再试一试从服务器拉取m3u8视频流
http://替换自己的ip地址/hls/yang.m3u8
其它细节
首先咱地址是XXX://服务器IP地址/hls/xxx
后面那个之所以是hls,是因为咱nginx服务器上设置的路径是hls
关于hls的其它配置百度去吧.