ubuntu 创建 rtmp服务器
要在Ubuntu上创建RTMP服务器,可以使用Nginx和RTMP模块。以下是步骤:
- 安装Nginx
在终端中运行以下命令以安装Nginx:
sudo apt-get update
sudo apt-get install nginx
- 下载RTMP模块
下载Nginx的RTMP模块。可以使用以下命令:
sudo apt-get install libnginx-mod-rtmp
- 配置Nginx
打开Nginx配置文件并添加以下内容:
rtmp {
server {
listen 1935;
chunk_size 4096;
application live {
live on;
record off;
}
}
}
这将启用RTMP服务器并将其监听在端口1935上。
- 启动Nginx
使用以下命令启动Nginx:
sudo systemctl start nginx
- 测试RTMP服务器
使用RTMP推流工具测试服务器。在推流工具中设置服务器地址为rtmp://<your-server-ip>/live
,应该能够连接到服务器并推流。
这是一个基本的步骤,您可以根据您的需求进行配置和定制。
ubuntu nginx rtmp
安装和配置 Nginx RTMP 模块
下载并准备 NGINX 和 RTMP 模块源码
为了使 NGINX 支持 RTMP 协议,在 Ubuntu 上需先获取必要的软件包以及下载对应的模块源代码。创建一个用于存放第三方模块的工作目录 /home/nginx_rtmp
并从中克隆 nginx-rtmp-module
的仓库[^1]。
mkdir -p /home/nginx_rtmp && cd /home/nginx_rtmp
git clone https://github.com/arut/nginx-rtmp-module.git
获取 NGINX 源码并与 RTMP 模块集成编译
接着,从官方网站或其他可信渠道获得 NGINX 的最新稳定版压缩包,解压至合适位置后进入该文件夹执行如下命令完成带自定义模块的重新编译过程:
tar zxvf nginx-version.tar.gz
cd nginx-version/
./configure --add-module=/home/nginx_rtmp/nginx-rtmp-module && make && sudo make install
此操作会将新功能加入到现有的 Web 服务程序之中而不影响其原有特性[^2]。
配置环境变量以便全局调用 NGINX 命令
如果希望可以在任何地方通过终端直接输入 nginx
来启动或管理这个 HTTP 及反向代理服务器,则可以编辑系统的 profile 文件来设置 PATH 环境变量指向安装路径下的 sbin 子目录:
echo 'export PATH=$PATH:/usr/local/nginx/sbin' | sudo tee /etc/profile.d/export_nginx.sh
source /etc/profile.d/export_nginx.sh
这一步骤确保了即使重启计算机之后也能继续正常使用新增加的功能而无需每次都手动指定全限定名去访问可执行文件[^3]。
编辑 NGINX 配置文件启用 RTMP 功能
最后修改位于 /usr/local/nginx/conf/nginx.conf
中的内容以激活实时流媒体传输协议的支持部分。具体来说就是在 http{} 大括号外添加 rtmp {} 结构体用来声明直播推流等相关设定项。
rtmp {
server {
listen 1935;
chunk_size 4096;
application live {
live on;
record off;
}
}
}
上述配置片段设置了监听端口为标准的 RTMP 默认值 (即 TCP/1935),并且允许客户端上传视频数据但不记录本地副本。
怎么在电脑上创建RTMP推流服务器
首先,我应该考虑用户的操作系统环境。用户可能使用的是Windows、macOS或者Linux,不同系统下的安装步骤会有差异。但大多数情况下,Linux系统更常用于服务器搭建,尤其是使用Nginx的方式。不过为了全面性,可能需要覆盖多个平台。
对于Nginx RTMP模块的方法,需要先安装Nginx和RTMP模块。在Linux下,可以通过源码编译,添加模块。Windows下可能需要预编译的版本,或者使用Docker。不过用户可能对编译过程不熟悉,需要给出详细的步骤,比如下载源码、配置、编译安装等。
另外,使用SRS(Simple RTMP Server)可能更简单,特别是对于新手来说,SRS的安装和配置相对友好。或者推荐Docker方式,因为这样可以避免环境配置的麻烦,适合不同操作系统的用户。
还需要考虑防火墙和端口问题,确保1935端口开放,这是RTMP默认的端口。用户可能需要配置防火墙规则,或者路由器转发,这部分需要提醒用户注意。
测试部分,用户可能需要使用OBS或者FFmpeg进行推流测试,然后使用VLC等播放器验证是否成功。需要给出具体的推流地址示例,比如rtmp://localhost/live/test,以及如何在播放器中输入流地址。
此外,用户可能有不同的需求,比如是否需要转码、录制、HLS支持等,可以在配置文件中进行相应调整,比如添加hls配置,这样生成的流可以同时支持HLS播放。
安全性也是一个方面,但可能用户暂时不需要高级的安全设置,所以可以提到但不深入,比如推流鉴权,使用on_publish等指令。
总结步骤的话,大致分为:选择服务器软件(Nginx with RTMP模块/SRS/Docker镜像)→ 安装配置→ 启动服务器→ 测试推流和播放→ 进阶配置。需要逐步引导用户,确保每一步都清晰,避免遗漏关键点。
同时要注意用户可能遇到的常见问题,比如编译错误、端口被占用、推流地址错误等,可以在步骤中加入注意事项或故障排除提示。例如,Nginx配置文件的正确格式,重启服务的方法,查看日志排查错误等。
最后,确保语言简洁明了,使用中文,避免专业术语过多,必要时进行解释。比如解释推流和拉流的区别,RTMP服务器的作用等,但用户的问题可能已经有一定了解,所以可以适当简化。在电脑上创建RTMP推流服务器可分为以下几个步骤,以常用方案为例:
一、选择服务器软件
推荐以下两种主流方案:
- Nginx + RTMP模块(跨平台,需编译)
- **SRS(Simple RTMP Server)**(专为流媒体优化)
- 备选方案:Docker容器化部署
二、Nginx+RTMP模块方案(Linux/Windows)
步骤1:安装依赖
# Ubuntu/Debian
sudo apt-get install build-essential libpcre3 libpcre3-dev libssl-dev zlib1g-dev
步骤2:编译安装
wget https://nginx.org/download/nginx-1.25.3.tar.gz
wget https://github.com/arut/nginx-rtmp-module/archive/refs/tags/v1.2.2.tar.gz
tar -zxvf nginx-1.25.3.tar.gz
tar -zxvf v1.2.2.tar.gz
cd nginx-1.25.3
./configure --add-module=../nginx-rtmp-module-1.2.2
make && sudo make install
步骤3:配置RTMP
编辑/usr/local/nginx/conf/nginx.conf
,添加:
rtmp {
server {
listen 1935;
chunk_size 4096;
application live {
live on;
# 启用HLS(可选)
hls on;
hls_path /tmp/hls;
hls_fragment 3s;
}
}
}
步骤4:启动服务
sudo /usr/local/nginx/sbin/nginx
三、SRS方案(推荐新手)
步骤1:下载并编译
git clone https://github.com/ossrs/srs
cd srs/trunk
./configure && make
步骤2:配置基础推流
编辑conf/srs.conf
:
listen 1935;
max_connections 1000;
daemon on;
http_server {
enabled on;
listen 8080;
}
vhost __defaultVhost__ {
}
步骤3:启动服务器
./objs/srs -c conf/srs.conf
四、验证服务器
推流测试(使用OBS/Ffmpeg)
- 推流地址:
rtmp://<服务器IP>/live/<流名称>
- OBS设置示例:
服务器: rtmp://localhost/live 流密钥: test
播放测试
- VLC播放器:打开网络流
rtmp://服务器IP/live/流名称
- HLS播放(如果启用):
http://服务器IP:8080/live/流名称.m3u8
五、进阶配置
- 鉴权设置:
application live { live on; on_publish http://localhost/auth; }
- 录制功能:
record all; record_path /var/rec;
六、注意事项
- 防火墙需开放**1935(TCP)和8080(TCP)**端口
- 云服务器需配置安全组规则
- 推流延迟一般在1-3秒,HLS延迟较高(约10s+)
通过以上步骤,即可在本地或云服务器搭建基础的RTMP推流服务。实际部署时可根据需求选择方案,SRS更适合流媒体专用场景,Nginx方案则便于与其他Web服务整合。
相关推荐















