背景
今天如往常一样,打开树莓派继续向阿里云推流测试,发现欠费了!可不能耽误测试呀,于是在树莓派上搭建了nginx的rtmp服务来继续使用。
搭建
1、安装依赖包
sudo apt-get install build-essential libpcre3 libpcre3-dev libssl-dev
2、下载nginx和nginx-rtmp-module源码
wget http://nginx.org/download/nginx-1.10.3.tar.gz
git clone https://github.com/arut/nginx-rtmp-module.git
tar -zxvf nginx-xxx.tar.gz
// 进入nginx源码解压目录
cd nginx-xxx.tar
3、配置
// 在nginx源码解压目录下创建extra文件夹并将nginx-rtmp-module目录移动到extra目录下
mkdir extra
mv ../nginx-rtmp-module ./extra
// 配置
./configure --with-http_ssl_module --add-module=./extra/nginx-rtmp-module
配置期间遇到的错误解决:
1、./configure: error: the HTTP rewrite module requires the PCRE library.
解决: sudo apt-get install libpcre3 libpcre3-dev
2、缺少ssl相关支持
解决:sudo apt-get install libssl-dev
4、编译
make -j4
// 默认安装目录/usr/local/nginx
sudo make install
编译期间遇到的错误解决:
1、error: this statement may fall through [-Werror=implicit-fallthrough=] h ^= data[2] << 16;
解决: sudo nano objs/Makefile 后, 将 -Werror 删除。再次编译即可。
5、配置nginx服务
nginx配置文件在/usr/local/nginx/conf目录下,配置rtmp server功能需要修改该目录下nginx.conf文件,打开该文件在末尾追加如下内容。
# rtmp server
rtmp
{
server
{
listen 1935;
chunk_size 4096;
# live用于直播
application live
{
live on;
record off;
}
# vod用于点播
application vod
{
play /home/pi/jxd/nginx/pushVideo;
}
}
}
6、开启服务,并测试点播与推拉流
sudo /usr/local/nginx/sbin/nginx
1、点播测试
在/home/pi/jxd/nginx/pushVideo文件夹下放一个text.mp4文件。
然后拉流:rtmp://192.168.3.9/vod/test.mp4 即可完成点播。
2、推拉流测试
// 推拉流地址
rtmp://当前ip/live 例如:rtmp://192.168.8.100/live
7、配置开机自启nginx服务
创建"/usr/lib/systemd/system/nginx.service"文件并写入内容
[Unit] # 服务的说明
Description=nginx # 描述服务
After=network.target # 描述服务类别
[Service] # 服务运行参数
Type=forking # forking后台运行形式
ExecStart=/usr/local/nginx/sbin/nginx # 运行命令(要求使用绝对路径)
ExecReload=/usr/local/nginx/sbin/nginx -s reload # 重启命令(要求使用绝对路径)
ExecStop=/usr/local/nginx/sbin/nginx -s quit # 停止命令(要求使用绝对路径)
PrivateTmp=true # True表示给服务分配独立的临时空间
[Install] # 运行级别下服务安装的相关设置。可设置为多用户,即系统运行级别为3
WantedBy=multi-user.target
上述配置好后,在终端以管理员权限运行下面的第一个开机自启动指令即可。
设置开机自启动: systemctl enable nginx.service
查看nginx状态: systemctl status nginx.service
重启服务器: reboot
再次连接后,查看服务状态: systemctl status nginx.service
(参考文章)
关注
笔者 - jxd
微信公众号搜索 “码农总动员” 或 微信扫描下方二维码,了解更多你不知道的XX,O(∩_∩)O


本文介绍了在树莓派上搭建nginx-rtmp流服务的步骤,包括安装依赖、配置、解决编译问题、配置nginx服务、测试点播与推拉流,以及设置开机自启nginx服务。
3483





