关于大疆SDK推流延迟的解决方案

这个问题一直困扰了我将近2个星期,期间自己写过,试过yasea框架,随着不断试错,结构和流程也是越来越清晰了,最后发现居然是权限问题!!!

本来对yasea框架做了一定的修改,打算用yasea框架接收大疆的数据进行编码推流,然后测试过程中,打开了全部权限后真的将延迟缩短至2-3s,然后为了追寻根本原因,一句一句的注释掉了yasea的代码,最后都注释完了还是不延迟,于是将yasea框架彻底删掉,方向锁定到了权限上:

用大疆无人机的sdk来开发,按照常理来说是不需要相机和录音权限的,但是偏偏是这两个权限导致了高延迟,一般测试为10-15s,加上这两项权限后,动态权限变为:

    private static final String[] REQUIRED_PERMISSION_LIST = new String[]{
            Manifest.permission.VIBRATE,
            Manifest.permission.INTERNET,
            Manifest.permission.ACCESS_WIFI_STATE,
            Manifest.permission.WAKE_LOCK,
            Manifest.permission.ACCESS_COARSE_LOCATION,
            Manifest.permission.ACCESS_NETWORK_STATE,
            Manifest.permission.ACCESS_FINE_LOCATION,
            Manifest.permission.CHANGE_WIFI_STATE,
            Manifest.permission.CHANGE_NETWORK_STATE,
            Manifest.permission.WRITE_EXTERNAL_STORAGE,
            Manifest.permission.BLUETOOTH,
            Manifest.permission.BLUETOOTH_ADMIN,
            Manifest.permission.READ_EXTERNAL_STORAGE,
            Manifest.permission.READ_PHONE_STATE,
            // 添加这俩权限就不会延迟了
            Manifest.permission.CAMERA,
            Manifest.permission.RECORD_AUDIO
    };

以上不一定都需要,我是基于大疆的demo直接加的

使用rtmp推流,编码为H264,推到nginx服务器,使用webRTC拉流,从开始推流到前端显示,延迟为2s左右

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值