CDN网络构成
- 边缘节点:用户从边缘节点上获取数据 (离用户最近的)
- 二级节点: 主干网节点,主要用于缓存,减轻源站压力(一般部署在大都市)
- 源站:CP(内容提供方),将内容放到源站。(源节点也不只一个)
用户首先去边缘节点,没有资源则去二级节点,如果没有则去源节点获取。
主干节点:可以解决 联通 电信 用户的相互访问的限制,使电信用户访问联通资源,也可以流畅。
传统CDN:追求热点,将热点放入缓存,超时删除。
直播: 通过源,直接push到主干节点,如果边缘节点没有,直接取主干节点拉取。
亲手搭建直播系统。
常用的音视频工具
- ffmpeg 音视频解析,转化,去水印,抽取图片等等等等。
- ffplay 播放器。
- flashplayer 播放lmp流的。
准备
- linux服务器
- 编译并安装Nginx服务
- 配置rtmp服务并启动Nginx服务
yum -y install gcc gcc-c++
yum install -y pcre pcre-devel
yum install -y zlib zlib-devel
yum install -y openssl openssl-devel
# centos nginx 编译安装 rtmp模块
# https://blog.csdn.net/sz76211822/article/details/79225716
# 模块下载 https://github.com/arut/nginx-rtmp-module
# 下载完后解压rtmp压缩包,解压后的位置
# /root/nginx-rtmp-module-master
# 编译安装
./configure --prefix=/opt/nginx --add-module=/root/nginx-rtmp-module-master --with-http_ssl_module
# 安装
make & make install
配置nginx,rtmp和http 一个级别。
rtmp{
server{
# 指定服务端口
listen 1935;
# 音视频传输,每一个块是4000字节
chunk_size 4000;
# 指定了一个应用,叫live
application live
{
live on; # 功能打开
record off; # 关闭录制
allow play all; # 允许任何人访问
}
}
}
sbin/nginx # 启动nginx
netstat -an | grep 1935 # 查看1935端口
到此,直播服务器搭建好了。
FFMPEG 直播命令,本次不使用ffmpeg,使用windows上的软件.
推流,通过ffmpeg,将out.mp4 推送到 服务器地址上去
ffmpeg -re -i out.mp4 -c copy -f flv rtmp://server/live/streamName
拉流,从服务器地址,写成一个文件。
ffmpeg -i rtmp://server/live/streamName -c copy dump.flv
windows 下载obs直播推流软件 和potplayer 播放器
使用OBS直播软件进行推流,
设置自定义url
rtmp://192.168.56.102:1935/live/
文件名(密码) sun
浏览器打开
rtmp://192.168.56.102:1935/live/sun
会弹出是否使用播放器,使用potplayer播放器进行播放