乱输入http://www.xx.com/ 类型都没报错,输入rtmp://127.0.0.1:1935/live/home 就报错
使用RTMP_PUSH推流不成功的原因是什么? 原创
可以借鉴下
https://blog.51cto.com/tsingsee/5214905
以下内容引用CHATGPT:
可能是因为在代码中使用的IP地址和端口号不正确导致连接失败。建议检查一下IP地址和端口号是否正确并且网络连接是否正常。另外,可以尝试在代码中使用完整的RTMP URL,如"rtmp://127.0.0.1:1935/live/home"来进行推流。以下是一个使用Java实现RTMP推流的示例代码:
// 创建一个RTMP连接
RTMPConnection rtmpConnection = new RTMPConnection();
// 连接到RTMP服务器
rtmpConnection.connect("rtmp://127.0.0.1:1935/live/home");
// 创建一个RTMP流
RTMPStream rtmpStream = new RTMPStream(rtmpConnection);
// 开始推流
rtmpStream.publish("home");
// 推送PCM音频数据
byte[] pcmData = getPCMData();
rtmpStream.sendAudio(pcmData);
// 停止推流
rtmpStream.close();
rtmpConnection.close();
引用chatGPT作答,根据您提供的信息,我无法确定您的代码中存在什么问题。但是,以下是一些常见的问题和解决方法,您可以检查一下:
1.确认您的nginx服务器是否已启动,并且是否在端口1935上监听RTMP流。
2.确认您的代码中使用的RTMP库是否正确配置,包括端口、协议和服务器地址等。
3.确认您的PCM音频数据是否已经正确编码并按照RTMP协议规范发送。
4.确认您的防火墙是否已经配置正确,没有阻止与RTMP服务器的连接。
5.在代码中添加异常处理,以确保可以捕获连接失败的异常信息,并在必要时进行处理。
6.使用网络调试工具,例如Wireshark或tcpdump,捕获RTMP流传输过程中的数据包,以确定流是否已经成功发送到服务器。
希望这些提示可以帮助您找到问题所在。如果问题仍然存在,请提供更多详细信息,以便我能够更好地帮助您解决问题。
以下答案由GPT-3.5大模型与博主波罗歌共同编写:
从您提供的信息来看,采用VLC网络输入成功拉流播放,这表明Nginx、FFmpeg的配置是正确的,问题可能出现在代码实现上。您可以检查一下以下几个问题:
1.检查防火墙是否开启,如果开启可以尝试关闭防火墙重新连接试试。
2.检查连接的地址和端口是否正确,尝试使用ping命令测试本地IP地址是否正常连通。
3.如果是使用的本地IP地址进行推流,可以尝试使用127.0.0.1或localhost连接试试。
4.如果在使用rtmpSessionMgr.Start方法时,没有设置推流相关参数,可以尝试如下代码:
rtmpSessionMgr.Start("rtmp://localhost:1935/live/home?user=username&pass=password");
其中username和password应为您在Nginx配置文件中设置的推流用户名和密码(如果有设置的话)。
最后,如果您还无法解决问题,可以将完整的错误信息提供出来,以便我们进一步排查问题。
如果我的回答解决了您的问题,请采纳!