栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

记一次对接大疆SDK获取视频H.264问题过程

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

记一次对接大疆SDK获取视频H.264问题过程

大疆论坛原贴:https://djisdksupport.zendesk.com/hc/zh-cn/community/posts/4406998758937

调试使用机型:Mavic mini

需求
  1. 获取标准的264视频
  2. 按国标协议推送海康视频平台
问题记录
  1. dji技术支持称:纯正的H.264视频流要从provideTranscodedVideoFeed这个函数接口中获取
  2. 实际发现:官方DEMO中,VideoFeederView.java用getPrimaryVideoFeed,本地画面是正常的。用provideTranscodedVideoFeed,画面就花屏了,如下所示:
  3. Mavic Mini使用getPrimaryVideoFeed,但是获取的是DJI格式的H.264直接送出去是没法解码播放的
  4. Mavic Mini 不支持从provideTranscodedVideoFeed获取标准264
  5. 御2系列的飞机的视频流是直接从provideTranscodedVideoFeed获取H.264视频流,现场并无此型号~~~
  6. 很多机型使用的都是不同的接口,需要对各种机型做不同的适配,其余机型都是用getPrimaryVideoFeed
  7. getPrimaryVideoFeed获取的是DJI格式的H.264所以只能用于显示,不使用LiveStreamManager无法推流。要想推流则必须要使用provideTranscodedVideoFeed或者把getPrimaryVideoFeed送到DJICodecManager做进一步解码称Yuv数据,看机型出数据,NV21和YUV420P都会有。要provideTranscodedVideoFeed出数据,你需要创造个DJICodecManager,在getPrimaryVideoFeed的回调里把数据送到解码器解码,后面会重新编码从provideTranscodedVideoFeed出数据。御2系列的飞机最特殊,什么都不用做,直接监听provideTranscodedVideoFeed就可以了。
  8. getPrimaryVideoFeed的回调里调用sendDataToDecoder就可以了,provideTranscodedVideoFeed里面应该就会出数据,编码是内部自动做的
总的来说

想要获取dji的标准264,是需要先:getPrimaryVideoFeed=》sendDataToDecoder=》provideTranscodedVideoFeed,不能直接使用provideTranscodedVideoFeed。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/314374.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号