DJI Phantom 4 Pro+自定义推流平台连接配置方法咨询
排查Phantom 4 Pro+推流到Nginx RTMP服务器的问题
结合你给出的UFW状态和已完成的OBS测试,咱们一步步梳理可能的问题点,帮你搞定无人机推流:
1. 先确认Nginx RTMP配置的正确性
首先检查你的Nginx配置文件(一般在/etc/nginx/nginx.conf或单独的RTMP配置文件),RTMP模块的配置得是类似这样的:
rtmp { server { listen 1935; # 对应你UFW开放的RTMP默认端口 chunk_size 4096; application live { live on; allow publish all; # 测试阶段先放开推流权限,后续再按需限制IP allow play all; } } }
注意:你用OBS测试时的推流地址应该是rtmp://{服务器IP}/live(加上自定义密钥,比如stream1),而你提到的http://{IP}是HTTP播放地址,别把播放地址当成推流地址填给无人机了!
2. 验证UFW端口规则的完整性
你的UFW状态显示开放了1935端口,但默认情况下UFW只允许TCP流量,而部分设备推流时会用到UDP辅助。可以用这条命令确认:
ufw status verbose | grep 1935
如果只显示TCP规则,补充开放UDP的1935端口:
ufw allow 1935/udp ufw reload
3. 严格核对无人机的推流设置
Phantom 4 Pro+的自定义推流参数容不得半点错:
- 推流地址:必须是
rtmp://{服务器IP/域名}/{应用名称},比如局域网内填rtmp://192.168.1.100/live,公网服务器填公网IP或域名 - 推流密钥:和你OBS测试时用的一致(比如
stream1),不要加任何额外路径 - 分辨率/码率:建议先选低档位测试(比如1080P 4Mbps),避免码率过高导致连接失败
另外要确保:
- 局域网测试时,无人机和服务器在同一网段
- 公网测试时,路由器已经完成1935端口的端口映射(指向服务器内网IP)
4. 查看服务器日志定位问题
通过Nginx日志可以直接看到连接情况,执行这条命令实时查看:
tail -f /var/log/nginx/error.log
- 如果有“拒绝连接”类日志:大概率是权限或地址配置错误
- 如果完全无日志:说明无人机没发起连接,检查网络连通性(比如在无人机所在网络ping服务器IP)
5. 额外排查点
- 路由器的AP隔离功能可能会阻止设备间连接,测试阶段可以临时关闭
- 服务器的SELinux如果开启,可能会拦截RTMP流量,用
sestatus查看状态,临时关闭可执行setenforce 0 - 确保无人机固件是最新版本,旧固件可能存在推流兼容性问题
按上面的步骤逐一排查,应该能快速定位并解决问题。
内容的提问来源于stack exchange,提问作者Yandi Banyu Karima Waly




