大概是最简单的 rtmp 推流服务器搭建方法

转载自:点击跳转原文
我使用的centos,按照下面方法一遍过

一开始想到要弄一个简单的 rtmp 服务器是为了给同学上课投射屏幕用。因为我用的是 Linux ,没法用国产的那些课室软件给他们投放屏幕,于是只好出此下策了。

我使用的系统是 CentOS 7 和 Ubuntu 16.04 ,所以就想到最简单的方式搭建:使用现成的 Docker 镜像。因为重新编译安装 nginx 对我来说不太现实,会直接影响到我的开发环境。

先安装好 docker

CentOS 7 :

sudo yum install docker

Ubuntu 16.04 :

sudo apt-get install docker.io

安装好之后执行 systemctl status docker查看一下 docker 有没有被启动,没有的话执行 sudo systemctl start docker启动。如果想日后自动启动 docker ,可以执行 sudo systemctl enable docker

docker 需要使用 root 权限来操作,如果嫌麻烦可以把自己加入 docker 的用户组里,或者直接 su root

这里我直接使用 tiangolo/nginx-rtmp 来搭建 rtmp 服务器。

sudo docker pull tiangolo/nginx-rtmp

等下载完成之后就可以启动这个镜像

sudo docker run -d -p 1935:1935 --name nginx-rtmp tiangolo/nginx-rtmp

然后就可以直接使用 OBS 推流了。在推流的地址上填写 rtmp://你电脑的 ip 地址/live,密钥随便填写。然后可以开始串流了。

在可以看串流的客户端上(例如 vlc )打开网络串流,地址就是 rtmp://你电脑的 ip 地址/live/你的密钥。

因为 CentOS 和 Ubuntu 都有防火墙,如果没法推流或者接收推流的话,有可能是因为防火墙的问题。这时最好让防火墙打开 1935 端口的访问,或者直接关掉防火墙(一般是叫做 firewall 的服务或者 ufirewall )。


其它可能用得到的命令

删除一个镜像

sudo docker rm nginx-rtmp
<think>好的,用户问的是如何在电脑上创建RTMP流服务器。我需要先理解RTMP是什么,它的用途,以及创建服务器的基本步骤。RTMP全称是Real-Time Messaging Protocol,主要用于实时传输音视频数据,常见于直播场景。创建RTMP服务器通常需要特定的软件,比如Nginx配合RTMP模块,或者使用SRS、Wowza等专业流媒体服务器。 首先,我应该考虑用户的操作系统环境。用户可能使用的是Windows、macOS或者Linux,不同系统下的安装步骤会有差异。但大多数情况下,Linux系统更常用于服务器搭建,尤其是使用Nginx的方式。不过为了全面性,可能需要覆盖多个平台。 对于Nginx RTMP模块的方法,需要先安装NginxRTMP模块。在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服务器的作用等,但用户的问题可能已经有一定了解,所以可以适当简化。</think>在电脑上创建RTMP流服务器可分为以下几个步骤,以常用方案为例: ### 一、选择服务器软件 荐以下两种主流方案: 1. **Nginx + RTMP模块**(跨平台,需编译) 2. **SRS(Simple RTMP Server)**(专为流媒体优化) 3. 备选方案:Docker容器化部署 --- ### 二、Nginx+RTMP模块方案(Linux/Windows) #### 步骤1:安装依赖 ```bash # Ubuntu/Debian sudo apt-get install build-essential libpcre3 libpcre3-dev libssl-dev zlib1g-dev ``` #### 步骤2:编译安装 ```bash 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`,添加: ```nginx rtmp { server { listen 1935; chunk_size 4096; application live { live on; # 启用HLS(可选) hls on; hls_path /tmp/hls; hls_fragment 3s; } } } ``` #### 步骤4:启动服务 ```bash sudo /usr/local/nginx/sbin/nginx ``` --- ### 三、SRS方案(荐新手) #### 步骤1:下载并编译 ```bash git clone https://github.com/ossrs/srs cd srs/trunk ./configure && make ``` #### 步骤2:配置基础流 编辑`conf/srs.conf`: ```conf listen 1935; max_connections 1000; daemon on; http_server { enabled on; listen 8080; } vhost __defaultVhost__ { } ``` #### 步骤3:启动服务器 ```bash ./objs/srs -c conf/srs.conf ``` --- ### 四、验证服务器 #### 流测试(使用OBS/Ffmpeg) - 推流地址:`rtmp://<服务器IP>/live/<流名称>` - OBS设置示例: ``` 服务器: rtmp://localhost/live 流密钥: test ``` #### 播放测试 1. **VLC播放器**:打开网络流`rtmp://服务器IP/live/流名称` 2. **HLS播放**(如果启用):`http://服务器IP:8080/live/流名称.m3u8` --- ### 五、进阶配置 1. **鉴权设置**: ```nginx application live { live on; on_publish http://localhost/auth; } ``` 2. **录制功能**: ```nginx record all; record_path /var/rec; ``` --- ### 六、注意事项 1. 防火墙需开放**1935(TCP)**和**8080(TCP)**端口 2. 云服务器需配置安全组规则 3. 流延迟一般在1-3秒,HLS延迟较高(约10s+) 通过以上步骤,即可在本地或云服务器搭建基础的RTMP流服务。实际部署时可根据需求选择方案,SRS更适合流媒体专用场景,Nginx方案则便于与其他Web服务整合。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值