欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

使用树莓派搭建Nginx-RTMP流媒体服务器实现ffmpeg推流

程序员文章站 2022-06-04 23:44:26
...

前言

这篇文章要感谢基教楼B519的赵兴博师兄的帮助。
在使用ffmpeg推流的时候,需要配置流媒体服务器才能实现客户端和服务器端的通信,之前在进行推流操作时,一直因为推流地址错误而没办法把流推送出去。在了解原理之后,发现需要搭建一个流媒体服务器才能实现推流。在考虑手头已有的资源的基础上,选择使用树莓派3B作为服务器端。树莓派3B使用Ubuntu-Mate系统,其他的系统也类似。

一、准备工作

1、通过putty远程连接树莓派
putty的下载地址

https://download.csdn.net/download/qq_35066464/12684499

这里采用远程连接的方式,当然也可以使用外接HDMI显示器的方法去操作。
使用树莓派搭建Nginx-RTMP流媒体服务器实现ffmpeg推流
在标注的地方输入树莓派IP,点击open,即可进入。
使用树莓派搭建Nginx-RTMP流媒体服务器实现ffmpeg推流
进入后输入账号密码。

2、nginx下载

mkdir work
cd work
wget http://nginx.org/download/nginx-1.18.0.tar.gz
tar -zxf nginx-1.18.0.tar.gz

3、rtmp module下载

git clone https://github.com/arut/nginx-rtmp-module.git
unzip nginx-rtmp-module-master.zip
#修改解压后的文件夹名称
mv nginx-rtmp-module-master nginx-rtmp-module

4、openssl下载

wget https://www.openssl.org/source/openssl-1.1.1.tar.gz
tar -zxf openssl-1.1.1.tar.gz

5、安装 pcre和zlib库

sudo apt install libpcre3 libpcre3-dev zlib1g-dev

二、编译安装

1、openssl编译安装

cd  openssl-1.1.1
./config
make && sudo make install

2、nginx编译安装

cd nginx-1.18.0
./configure --prefix=/usr/local/nginx --add-module=../nginx-rtmp-module --with-http_ssl_module --with-debug
#如果提示缺乏库,可通过sudo apt-get install xxx安装
make && sudo make install

3、nginx配置

sudo vim /usr/local/nginx/conf/nginx.conf

需要在配置文件里添加

#RTMP 服务
rtmp 
{
	server
	{
  		#指定服务端口
  		listen 1935;
  		chunk_size 4096;

  		#指定RTMP流应用
  		application live
  		{
     		live on;
     		record off;
  		}
		application push
		{
			live on;
			push rtmp://rtmp-postbird/live;
		}
  	}
}

三、测试

1、启动nginx

sudo /usr/local/nginx/sbin/nginx

2、测试是否安装成功

sudo netstat -ntpl | grep 1935

使用树莓派搭建Nginx-RTMP流媒体服务器实现ffmpeg推流
如果最后出现nginx,说明安装成功。
3、使用ffmpeg推流测试
客户端也就是本机使用Ubuntu系统,需要安装ffmpeg向树莓派端进行推流。

ffmpeg -re -i test.mp4 -c copy -f flv rtmp://[树莓派IP]/live/ch1

安装好ffmepg后,使用该命令就可以把当前目录下的test.mp4文件推送到rtmp://[树莓派IP]/live/ch1,其中树莓派IP可以根据自己的IP改写,最后的ch1可以*填写。推送成功后,可以通过VLC进行拉流检测是否推送到服务器上。
4、ffmpeg安装

sudo apt-get install ffmpeg

5、安装VLC播放器

sudo add-apt-repository ppa:n-muench/vlc
sudo apt-get update
sudo apt-get install vlc

6、常用nginx命令
执行时不能在nginx的目录下,需在其上级目录/usr/local/nginx/sbin下执行。

ngnix -s reload:重启服务器
ngnix -s stop : 停止服务器
ngnix -s quit : 退出服务器