美文网首页程序员
关于大疆SDK推流延迟的解决方案

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

作者: 世外大帝 | 来源:发表于2019-08-27 11:32 被阅读0次

    这个问题一直困扰了我将近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左右

    相关文章

      网友评论

        本文标题:关于大疆SDK推流延迟的解决方案

        本文链接:https://www.haomeiwen.com/subject/mcosectx.html