近期有搭建流媒体服务器的相关需求,通过 nginx 搭建流媒体服务器,实现 rtmp 直播流,m3u8 视频流,特以此作为笔记留档。
1. 下载依赖包
# gcc 安装 | |
yum install gcc-c++ | |
# pcre pcre-devel 安装 | |
yum install -y pcre pcre-devel | |
# zlib 安装 | |
yum install -y zlib zlib-devel | |
# openssl 安装 | |
yum install -y openssl openssl-devel |
2. 下载安装包
wget https://nginx.org/download/nginx-1.22.1.tar.gz
3. 下载 nginx-rtmp-module-master 模块
wget https://github.com/arut/nginx-rtmp-module/archive/refs/tags/v1.2.2.tar.gz
4. 解压
解压 nginx,解压 nginx-rtmp-module-master
tar -zxvf nginx-1.22.1.tar.gz | |
tar -zxvf v1.2.2.tar.gz |
5. 编译安装
# 进入 nginx 文件夹 | |
cd nginx-1.21.1 | |
# 编译 nginx 指定 nginx 路径 指定 rtmp 模块路径 就是刚才解压的文件夹 | |
./configure --prefix=/usr/local/nginx --add-module=/root/nginx-rtmp-module-master | |
make | |
make install |
6. 配置 nginx.config
rtmp { | |
server { | |
listen 1935; | |
application live {live on;} | |
application hls { | |
live on; | |
hls on; | |
hls_path /tmp/hls; | |
hls_fragment 5s; | |
} | |
} | |
} | |
server { | |
listen 80; | |
server_name localhost; | |
location / { | |
root /home/devops/dist; | |
index index.html index.htm; | |
} | |
location /hls { | |
types { | |
application/vnd.apple.mpegurl m3u8; | |
video/mp2t ts; | |
} | |
root /tmp; | |
add_header Cache-Control no-cache; | |
} | |
error_page 500 502 503 504 /50x.html; | |
location = /50x.html {root html;} | |
} |
7. 启动 nginx
进入 /usr/local/nginx/sbin 目录 | |
# 启动命令 | |
./nginx | |
# 重启命令 | |
./nginx -s reload | |
# 停止命令 | |
./nginx -s stop |
8. 下载 ffmpeg
# 安装 EPEL Releas | |
yum install -y epel-release | |
# 如果出现缺少 Code 提示,可以:如果出现缺少 Code 提示,可以:rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 | |
# 安装完成之后,查看是否安装成功 | |
yum repolist | |
# 安装 Nux-Dextop 源导入一个 Code | |
rpm –import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro | |
# 安装 nux-dextop 源 | |
sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-1.el7.nux.noarch.rpm | |
# 查看 repo 源是否安装成功 | |
yum repolist | |
#yum 安装 ffmpeg | |
yum install -y ffmpeg | |
#安装完成后检查 ffmpeg 版本 | |
ffmpeg -version |
9. 推流
ffmpeg -re -i "test.mp4" -vcodec libx264 -vprofile baseline -acodec aac -ar 44100 -strict -2 -ac 1 -f flv -s 1280x720 -q 10 rtmp://192.168.40.17:1935/live/test1 | |
rtmp://192.168.40.17:1935/live/test1 | |
http://192.168.40.17/hls/test2.m3u8 |
微信扫描下方的二维码阅读本文
正文完