近期有搭建流媒体服务器的相关需求,通过 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. 推流
# RTMP 流,推流至 rtmplive:
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
# HLS 流,推流至 hls: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/hls/test2
# 用 vlc 访问:# rtmp 直播流
rtmp://192.168.40.17:1935/live/test1
# m3u8 视频流
http://192.168.40.17/hls/test2.m3u8
微信扫描下方的二维码阅读本文
正文完