dji-sdk / Mobile-SDK-Android

DJI Mobile SDK for Android: http://developer.dji.com/mobile-sdk/
Other
977 stars 579 forks source link

御2能推流成功, 但是M600, M210, M300都推流失败,紧急求救!! #547

Open addriumruss opened 4 years ago

addriumruss commented 4 years ago

目前用msdk 4.11.2, 手机安卓10, 安卓7.2等, 推流御2、精灵4、悟都能成功, 但是M600, M210, M300都推流失败,多数情况返回错误码-3,偶尔返回错误码254,紧急求救!!

dji-dev commented 4 years ago

Agent comment from William Wong in Zendesk ticket #36095:

尊敬的开发者, 您好,感谢您联系DJI 大疆创新。

首先4.11.2并不支持M300,你需要升级到4.12,SDK才支持M300。我发现你成功推流的直接机型都是挂载单云台的,失败的都是双云台的飞机。推流的原理就是首先必须要能获取视频流,有图传。然后手机把得到的图传数据通过4G或者WIFI传到服务器里。所以按理来说直播推流应该和云台多少没关系。-3代表在解码的过程中没有获取到解码器的SPS和PPS,254代表初始化失败。 建议你对比一下我们的demo。 Link:https://github.com/dji-sdk/Mobile-SDK-Android/blob/master/Sample%20Code/app/src/main/java/com/dji/sdk/sample/demo/camera/LiveStreamView.java

希望我们的解决方案能够帮到您,感谢您的邮件,祝您生活愉快! Best Regards, DJI 大疆创新SDK技术支持

addriumruss commented 4 years ago

@dji-dev 首先我自己的图传屏幕都是正常显示的,飞机都只放一个镜头。 图传屏幕取的是主视频流,推流配置也是主流。 现在请不要纠结M300, 先弄清楚为什么M600、M210都不行。 我看上面的示例代码,实际上我本来就是照抄的它, 如下所示,请问是否还有什么开关?

LiveStreamManager.LiveStreamVideoSource currentVideoSource = LiveStreamManager.LiveStreamVideoSource.Primary; DJISDKManager.getInstance().getLiveStreamManager().setVideoSource(currentVideoSource); try { boolean prevState = lsm.isStreaming(); lsm.setLiveUrl(GlobalSetting.serverPushUrl); int result = lsm.startStream(); if(!prevState) lsm.setStartTime(); ToastUtils.setResultToToast("启动推流:" + (result == 0 ? "成功, 状态:" + lsm.isStreaming() : "失败:" + result)); if(result == -3){ ToastUtils.setResultToToast("请检查相机连线是否稳固!"); } if(result < 0) return; } catch (Exception ex) { ToastUtils.setResultToToast("启动推流失败: " + ex.getMessage()); return; }

dji-dev commented 4 years ago

Agent comment from William Wong in Zendesk ticket #36095:

尊敬的开发者, 您好,感谢您联系DJI 大疆创新。

试一下start之前加一个DJISDKManager.getInstance().getLiveStreamManager().setVideoEncodingEnabled(true)。先不用M600测试吧,这个机型直播是有点问题。你M210是V1还是V2,我用这边机器同步测试一下。

希望我们的解决方案能够帮到您,感谢您的邮件,祝您生活愉快! Best Regards, DJI 大疆创新SDK技术支持

addriumruss commented 4 years ago

感谢支持! M210测通了,就是多试了几次,M600还没通,我再按上面这个方法试试

dji-dev commented 4 years ago

Agent comment from William Wong in Zendesk ticket #36095:

尊敬的开发者, 您好,感谢您联系DJI 大疆创新。

​ 从方法解释上来看,消费级的小飞机,拍出来的视频可以不用编码,直接推流。但是经纬系列搭载的专业云台拍出来的视频数据需要重新编码成H.264数据再进行推流。

希望我们的解决方案能够帮到您,感谢您的邮件,祝您生活愉快! Best Regards, DJI 大疆创新SDK技术支持
inline-558639915.png

addriumruss commented 4 years ago

关键是m210没有再编码也推流成功了, 现在把M600设置为重新编码,结果瞬间app闪退了, 束手无策。

dji-dev commented 4 years ago

Agent comment from William Wong in Zendesk ticket #36095:

尊敬的开发者, 您好,感谢您联系DJI 大疆创新。

M600目前无法推流直播,存在Bug,我们在解决中。

希望我们的解决方案能够帮到您,感谢您的邮件,祝您生活愉快! Best Regards, DJI 大疆创新SDK技术支持