记一次对接大疆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。

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不被定义的程序猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值