Ubuntu安装rtmp

使用何种平台安装rtmp,都需要c语言编译源代码,需要解压ngnix、rtmp,且操作过程中需要提权以创建文件

此处没有选择apt install nginx,翻遍全网未发现使用包安装nginx的rtmp

nginx下载地址:nginx: download

rtmp项目地址:https://github.com/arut/nginx-rtmp-module/

1.下载nginx和nginx-rtmp源码

wget http://nginx.org/download/nginx-1.27.2.tar.gz
wget https://github.com/arut/nginx-rtmp-module/archive/master.zip

2.解压nginx和nginx-rtmp安装包

安装unzip并解压

sudo apt-get install unzip
tar -zxvf nginx-1.20.1.tar.gz
unzip master.zip

3.安装编译依赖工具

sudo apt-get install build-essential libpcre3 libpcre3-dev libssl-dev zlib1g-dev 

如果模块未安装,会出现如下错误,解决方法如下:

nginx编译安装出现的常见错误_you can either do not enable the modules, or insta-优快云博客

4.添加模块、编译安装

cd到nginx目录下并添加模块
add-module=/home/rtmp/nginx/nginx-rtmp-module-master,这里需要指定绝对路径

./configure --with-http_ssl_module --add-module=/home/rtmp/nginx/nginx-rtmp-module-master

 make操作需要提权,不提权无法创建目录

sudo su
make && make install

通过以下命令检查是否安装成功

/usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.27.2
built by gcc 13.2.0 (Ubuntu 13.2.0-23ubuntu4)
built with OpenSSL 3.0.13 30 Jan 2024
TLS SNI support enabled
configure arguments: --with-http_ssl_module --add-module=/home/rtmp/nginx/nginx-rtmp-module-master

5.配置ngnix

在 /etc/systemd/system/ 下创建 nginx.service 文件,将以下内容粘贴到文件中

sudo vi /etc/systemd/system/nginx.service
Description=nginx - high performance web server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
[Install]
WantedBy=multi-user.target

提权

sudo chmod 777 nginx.service

配置重新加载

sudo systemctl daemon-reload nginx.service

开启Nginx随机自启服务

sudo systemctl enable nginx.service

启动Nginx

sudo systemctl start nginx.service

查看服务状态

systemctl status nginx

编辑nginx配置文件

sudo vi /usr/local/nginx/conf/nginx.conf
rtmp {
        server {
                listen 1935;
                chunk_size 4096;
 
                application live{
                    live on;#开启直播
                    hls on;# 支持m3u8
                    hls_path /home/video; # m3u8 文件的保存位置,检验配置是否成功,可以推流后cd到该目录下,看一下有没有文件生成,有文件的话就可以判定不是推流配置的问题。
                    hls_fragment 10s;# 每个视频保存10s
                    hls_playlist_length 60s; #单个视频长度
                    hls_continuous on; #是否连续
}
        }
}

配置完config文件,重启nginx服务

sudo systemctl restart nginx.service

6.测试

浏览器打开ip

查看所有端口和服务:

ss -tuln

也可以通过telnet1935 80端口测试

检测Nginx运行状态

sudo systemctl status nginx

7.OBS推流设置

推流地址为:rtmp://ip:1935/live/推流码or流密钥

拉流地址为:rtmp://ip:1935/live/推流码

播放地址:http://ip/live/推流码.m3u8 (如果设置了端口号需更改)

ffmpeg -f v4l2 -input_format mjpeg -video_size 640x480 -i /dev/video4 -vcodec libx264 -r 30  -preset ultrafast -tune zerolatency -b:v 900k -f flv rtmp://192.168.180.1:1935/live/home

ffmpeg -re -i test.mp4 -vcodec libx264 -acodec aac -f flv rtmp://127.0.0.1:1935/live/test

### 安装准备 为了在Ubuntu系统中安装带有RTMP模块的Nginx服务器,需先确认操作环境为Linux服务器而非Windows平台,因为不同操作系统间的编码差异可能导致文件无法正常编译或运行[^2]。 ### 获取软件包 对于特定版本的Ubuntu(如Ubuntu 16),应选择相匹配版本的Nginx安装包(例如1.10.3)。可以直接解压缩已有的安装包完成初步部署工作[^1]。然而,在大多数情况下,建议从源码构建最新稳定版Nginx及其所需模块: #### 下载Nginx及RTMP模块 首先克隆`nginx-rtmp-module`仓库到本地: ```bash git clone https://github.com/arut/nginx-rtmp-module.git ``` 这一步骤确保获得最新的RTMP功能支持以及修复过的漏洞[^3]。 ### 编译安装Nginx与RTMP模块 进入Nginx源代码目录执行如下命令进行配置、编译和安装过程: ```bash cd nginx-source-directory # 替换为实际路径 ./configure --add-module=../nginx-rtmp-module make && make install ``` 上述指令会将RTMP模块集成至Nginx核心之中。 ### 配置启动Nginx服务 成功安装之后,切换到Nginx二进制文件所在位置并通过以下方式启动服务: ```bash cd /usr/local/nginx/sbin ./nginx ``` 此时,Nginx连同RTMP扩展已经处于活动状态,准备好处理实时媒体传输请求。 ### 测试验证 最后,可以通过访问默认页面或其他测试手段检验Nginx是否正确加载了RTMP模块,并能够按照预期提供多媒体流服务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值