dji-sdk / Cloud-API-Demo-Web

MIT License
87 stars 73 forks source link

前端直播请求失败 #3

Open pzy2253999075 opened 2 years ago

pzy2253999075 commented 2 years ago

我按照实例文档配置好了前端和后端的服务,rtmp服务是通过 nginx + libnginx-mod-rtmp搭建。通过obs推流 vls 拉流是没问题的。但是前端页面请求直播失败了。 image

然后这是我的前端的前端配置: image

这是后端配置 image image

mqtt正常登录 image image

请问怎么解决直播点播的问题

pzy2253999075 commented 2 years ago

@dji-dev

pzy2253999075 commented 2 years ago

image

我又试了一下,前端打开推流,遥控器提示推流打开了,但是还是看不到直播。我的rtmp服务推流地址和拉流地址是一样的。我不太明白前端的拉流地址是怎么计算出来的(就是会在推流地址的基础上自己加了一些字符)。

JKjenken commented 2 years ago

你可以仔细看下前端代码,拉流地址拼接用的是当前时间戳,可以直接改一下逻辑。

wqttkx1 commented 1 year ago

我前端这也是报这个错,用的srs4.0搭建的流媒体数据库,rtmp协议obs推流 vls 拉流是没问题,但是前端jswebrtc播放不行,找到原因了没?

wqttkx1 commented 1 year ago

@pzy2253999075

DJIsean commented 1 year ago

我前端这也是报这个错,用的srs4.0搭建的流媒体数据库,rtmp协议obs推流 vls 拉流是没问题,但是前端jswebrtc播放不行,找到原因了没?

网页只能播放webrtc流,是否将rtmp流转为webrtc流了?

pzy2253999075 commented 1 year ago

好久没弄,最近想起来才过来看下 。确实如 @JKjenken 所说 image 把这个删掉应该就可以了吧

pzy2253999075 commented 1 year ago

我先试一下

yuanlei88 commented 1 year ago

首先 您的rtmp的地址写错了,后面不应该增加端口。应为jswebrtc需要先和1985端口申请play 的数据 在走1935推流RTMP的视频。所以你就直接写srs服务的地址,如果是外网就写外网地址,记得要把1935和1985这两个端口打开。srs就直接使用docker.conf就行了 不需要什么配置。

Hcattt commented 1 year ago

你好 我这里一直加载不出来直播页面是怎么回事啊

StarryNightCH commented 2 months ago

这么多问题,大疆开发人员都不看的吗?

lishangnian commented 1 month ago

本人经过一周的折腾终于把调视频通了,大疆没有说明调试的文档,只有官方的一个rtmp的功能视频 具体过程如下: 1.视频服务接收rtmp推流,默认端口1935,如果是使用默认端口,配置文件中rtmpUrl不用标端口,上面有网友提到这个点 2.前端使用rtmp播放时,实际代码中调用的是webrtc协议,该协议默认是8000端口,所以你的视频流服务要提供webrtc功能,打开8000端口,且能把rtmp转rtc 3.前端点击play时,会先向视频服务请求ip:1985/rtc/v1/play/的一个url来获取播放参数,所以你的视频服务需要打开1985端口,且有这样的接口功能 4.如果在遥控器中配置好了视频参数,点击play时,遥控器就开始推流了,页面点击play是无效,因为已经推流不能再推流 5.遥控器点击play推流时,在服务器上生成的url会带时间戳,在遥控器上能看到这样的时间戳,如果你自己用拉流工具播放,注意URL的写法带上时间戳 6.在遥控器上没点击play条件下,web页面点击play,遥控器会先收到play命令,并语音播报开直播放推流,这时视频服务收到的视频流url会带无人机的序列号,而不是时间戳

以上是本人遇到问题总结的答案