阿里视频直播播流拉流地址生成跟推流的一样,然后播流不能不能用,鉴权串生成规则(非中心推流)

     接手的项目使用了原先阿里中心推流的方式,可是阿里那边已经说了汇总新推流的方式吉祥下线,只维持原先旧的中心推流,文档也将以推流、播流域名分开设置的方式进行推播。可恨的是阿里已经不在提供自己的sdk,要接入只能找七牛的sdk,不过好在推流的服务商多种多样,可以按照需求自行选择。

  按照指引生成两个域名


接下来就开始盘它,从生成推流域名开始,生成推流域名的时候很顺利,就是播流的老师播放不了,翻了很多文档和资料还是没有进展。网上几乎全部都是这样写的,下面代码示范里,推流播流的key都是一样的:


java代码


由于:uri串一样、time超时时间戳也几乎一样、”-0-0-“暂时文档里都是固定的、key一样;所以MD5后得出的hash值结果也肯定一样的,所以推流的地址跟flash播放url的鉴权串是一模一样的,除了拼接的domain段:




后来还是提交了工单请教了客服。


原来播流地址的鉴权key和推流地址的鉴权key是可以不一样的。当然也可以设置一样。我看了看我自己配置的,由于不是我亲手弄得,就没注意这个事情。后来发现真的不一样。



那么!现在知道问题所在了,开始动手改代码,以下是php的代码:



    public static function buildLiveStream(string $appName, string $stream, string $domain, string $pushKey='', string $pullKey=''): array

    {

        // $pushIni = 'rtmp://video-center.alivecdn.com/%s/%s?vhost=%s';

        // $playIni = 'rtmp://%s/%s/%s';

        $pushIni = config("wowo.live.push_url");

        $playIni = config("wowo.live.pull_url");

        // $push = sprintf($pushIni, $appName, $stream);

        // $play = sprintf($playIni, $appName, $stream);

        if($pullKey && $pushKey) {

            // $auth = self::liveAuthKey($appName, $stream, $key);

            $push = self::push_url($pushIni,$pushKey,'10800',$appName,$stream);

            $play = self::push_url($playIni,$pullKey,'10800',$appName,$stream);

        }

        return [

            'push'=>$push,

            'play'=>$play

        ];

    }

你可能感兴趣的:(阿里视频直播播流拉流地址生成跟推流的一样,然后播流不能不能用,鉴权串生成规则(非中心推流))