前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >记一次对接大疆SDK获取视频H.264问题过程

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

作者头像
TSINGEYE清眸物联
发布2023-01-04 16:24:56
8380
发布2023-01-04 16:24:56
举报

大疆论坛原贴: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,画面就花屏了,如下所示:
花屏
花屏
  1. Mavic Mini使用getPrimaryVideoFeed,但是获取的是DJI格式的H.264直接送出去是没法解码播放的
  2. Mavic Mini 不支持从provideTranscodedVideoFeed获取标准264
  3. 御2系列的飞机的视频流是直接从provideTranscodedVideoFeed获取H.264视频流,现场并无此型号~~~
  4. 很多机型使用的都是不同的接口,需要对各种机型做不同的适配,其余机型都是用getPrimaryVideoFeed
  5. getPrimaryVideoFeed获取的是DJI格式的H.264所以只能用于显示,不使用LiveStreamManager无法推流。要想推流则必须要使用provideTranscodedVideoFeed或者把getPrimaryVideoFeed送到DJICodecManager做进一步解码称Yuv数据,看机型出数据,NV21和YUV420P都会有。要provideTranscodedVideoFeed出数据,你需要创造个DJICodecManager,在getPrimaryVideoFeed的回调里把数据送到解码器解码,后面会重新编码从provideTranscodedVideoFeed出数据。御2系列的飞机最特殊,什么都不用做,直接监听provideTranscodedVideoFeed就可以了。
  6. getPrimaryVideoFeed的回调里调用sendDataToDecoder就可以了,provideTranscodedVideoFeed里面应该就会出数据,编码是内部自动做的

总的来说

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-10-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 需求
  • 问题记录
  • 总的来说
相关产品与服务
云直播
云直播(Cloud Streaming Services,CSS)为您提供极速、稳定、专业的云端直播处理服务,根据业务的不同直播场景需求,云直播提供了标准直播、快直播、云导播台三种服务,分别针对大规模实时观看、超低延时直播、便捷云端导播的场景,配合腾讯云视立方·直播 SDK,为您提供一站式的音视频直播解决方案。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档