泰山派学习21-ubuntu系统实现Nginx+RTMP+FFmpeg推流
一、Ubuntu系统安装Nginx+RTMP组件
1、安装依赖环境
sudo apt update
sudo apt install -y build-essential libpcre3 libpcre3-dev zlib1g zlib1g-dev libssl-dev openssl
2、下载Nginx及RTMP模块源码
2.1、下载Nginx源码并解压
wget http://nginx.org/download/nginx-1.18.0.tar.gz
tar -zxvf nginx-1.18.0.tar.gz
2.2、下载RTMP模块,并解压
wget https://github.com/arut/nginx-rtmp-module/archive/refs/tags/v1.2.2.tar.gz
tar -zxvf nginx-rtmp-module-1.2.2.tar.gz
ps: 如果github无法访问下载,使用下面gitee下载链接
git clone https://gitee.com/mirrors/nginx-rtmp-module.git
3、编译Nginx并合并RTMP模块
3.1、进入解压后的Nginx源码目录,并配置参数(注意对应上面不同下载路径差异)
cd nginx-1.18.0
././configure --prefix=/usr/local/nginx \
--with-http_ssl_module \
--with-http_stub_status_module \
--add-module= ../nginx-rtmp-module
3.2、编译并安装
make -j4 && sudo make install
4、配置Nginx 支持RTMP推流
4.1、在配置文件添加rtmp的推流设置
sudo vim /usr/local/nginx/conf/nginx.conf
rtmp {
server {
listen 1935; # RTMP默认端口
chunk_size 4096; # 数据传输块大小
application live {
live on; # 启用直播
record off; # 关闭录制(按需开启)
allow publish all; # 允许所有IP推流
allow play all; # 允许所有IP拉
}
}
}

4.2、验证配置是否正常,显示successful即为正常
sudo /usr/local/nginx/sbin/nginx -t

5、启动Nginx服务,并查看是否启动
sudo /usr/local/nginx/sbin/nginx
ps -aux | grep nginx

6、使用同一个网段的电脑的浏览器去访问该Nginx主机,返回welcome to Nginx则正常。

二、使用FFmpeg推流视频
1、安装FFmpeg
sudo apt install ffmpeg

2、推流视频
ffmpeg -re -i /home/lckfb/Videos/test.mp4 -c:v libx264 -c:a aac -f flv rtmp://localhost:1935/live/stream_key
3、使用VLC进行拉流
媒体-->网络,输入推流服务器地址:rtmp://192.168.1.177:1935/live/stream_key -->播放

不知道是网络问题,还是硬件解码问题,十分卡度

三、使用FFmpeg捕获摄像头并推流(无法成功,提示无该设备路径,暂时没有解决)
ffmpeg -f v4l2 -input_format yuyv422 -video_size 640x480 -framerate 30 -i /dev/video0 \
-c:v h264_v4l2m2m -b:v 2000k -preset ultrafast \
-f flv rtmp://localhost:1935/live/stream_key


浙公网安备 33010602011771号