阿里云直播推流和播流地址的生成方法PHP

最近在用阿里云的直播SDK在进行直播功能的开发,整体来说磕磕绊绊,因为里面有好多的东西,一时半会的搞不定,但是工期又有期限,所以天天熬夜,程序员真心不容易,废话不多说,今天分享这个主要就是来说明一下阿里云的直播推流和播流地址怎么生成的

在这之前我们需要了解上面说的推流 播流 拉流都是什么玩意啥意思

·视频直播的基础服务是直播流的接入和分发服务。您可以使用推流地址通过推流工具将视频流推送至阿里云平台进行视频的内容处理及分发,观众可以通过播放地址和播放器观看直播内容。推送至阿里云中心的视频可以根据您的需求进行设置,从而适用于不同的应用场景。

推流
推流是把采集阶段封装好的音视频直播流推送到阿里云直播服务中心的过程。

拉流
拉流是将第三方直播流地址拉取到阿里直播中心进行CDN内容分发,推流至需要的节点的过程。

播流
播流是将直播服务中心已有直播内容,分发到播放器进行播放过程。

·

<?php
  
/**
  * 生成推流地址
  * @param $push_domain 推流域名
  * @param $push_key 推流域名配置的鉴权Key
  * @param $expireTime 过期时间(单位是秒)
  * @param $appName 推流AppName
  * @param $streamName 推流StreamName
  */
function push_url($push_domain,$push_key,$expireTime,$appName,$streamName){

        $push_url = '';
        //未开启鉴权Key的情况下
        if($push_key==''){
                $push_url = 'rtmp://'.$push_domain.'/'.$appName.'/'.$streamName;
                echo $push_url;
                return;
        }
        $timeStamp = time() + $expireTime;
        $sstring = '/'.$appName.'/'.$streamName.'-'.$timeStamp.'-0-0-'.$push_key;
        $md5hash = md5($sstring);
        $push_url = 'rtmp://'.$push_domain.'/'.$appName.'/'.$streamName.'?auth_key='.$timeStamp.'-0-0-'.$md5hash;
        echo $push_url;
        echo PHP_EOL;
        return;
}
/**
 * 生成播放地址
 * @param $play_domain 播放域名
 * @param $play_key 播放鉴权Key
 * @param $expireTime 过期时间(单位是秒)
 * @param $appName 播放appName(同推流appName)
 * @param $streamName 播放streamName,播放源流时,streamName 同推流streamName;播放转码流时,streamName 为推流streamName_{转码模板ID}
 */
function play_url($play_domain,$play_key,$expireTime,$appName,$streamName){
        //未开启鉴权Key的情况下
        if($play_key==''){
                $rtmp_play_url = 'rtmp://'.$play_domain.'/'.$appName.'/'.$streamName;
                $flv_play_url = 'http://'.$play_domain.'/'.$appName.'/'.$streamName.'.flv';
                $hls_play_url = 'http://'.$play_domain.'/'.$appName.'/'.$streamName.'.m3u8';
        }else{
                $timeStamp = time() + $expireTime;

                $rtmp_sstring = '/'.$appName.'/'.$streamName.'-'.$timeStamp.'-0-0-'.$play_key;
                $rtmp_md5hash = md5($rtmp_sstring);
                $rtmp_play_url = 'rtmp://'.$play_domain.'/'.$appName.'/'.$streamName.'?auth_key='.$timeStamp.'-0-0-'.$rtmp_md5hash;

                $flv_sstring = '/'.$appName.'/'.$streamName.'.flv-'.$timeStamp.'-0-0-'.$play_key;
                $flv_md5hash = md5($flv_sstring);
                $flv_play_url = 'http://'.$play_domain.'/'.$appName.'/'.$streamName.'.flv?auth_key='.$timeStamp.'-0-0-'.$flv_md5hash;

                $hls_sstring = '/'.$appName.'/'.$streamName.'.m3u8-'.$timeStamp.'-0-0-'.$play_key;
                $hls_md5hash = md5($hls_sstring);
                $hls_play_url = 'http://'.$play_domain.'/'.$appName.'/'.$streamName.'.m3u8?auth_key='.$timeStamp.'-0-0-'.$hls_md5hash;
        }

        echo 'rtmp播放地址: '.$rtmp_play_url;
        echo PHP_EOL;
        echo 'flv播放地址: '.$flv_play_url;
        echo PHP_EOL;
        echo 'hls播放地址: '.$hls_play_url;
        echo PHP_EOL;
        return;
}
//推流域名
$push_domain = 'testpush.cn';
//推流域名配置的鉴权Key
$push_key = 'test_Push_key';
//生成随机的AppName
$appName = md5(uniqid(microtime(true),true));
//生成随机的StreamName
$streamName = md5(uniqid(microtime(true),true));
//配置过期时间为1小时
$expireTime = 3600;
//播放域名
$play_domain = 'testPlay.cn';
//播放域名配置的鉴权Key
$play_key = 'test_play_key';
push_url($push_domain,$push_key,$expireTime,$appName,$streamName);
play_url($play_domain,$play_key,$expireTime,$appName,$streamName);
?>

哎咋说呢,多多的实践吧,因为得静下心去测试,一起努力合作共赢

相关推荐

  1. 阿里直播地址生成方法PHP

    2024-04-26 04:04:01       15 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-26 04:04:01       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-26 04:04:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-26 04:04:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-26 04:04:01       18 阅读

热门阅读

  1. Unity构建详解(10)——Unity构建流程

    2024-04-26 04:04:01       13 阅读
  2. react之响应事件

    2024-04-26 04:04:01       10 阅读
  3. 377. 组合总和 Ⅳ

    2024-04-26 04:04:01       10 阅读
  4. Spring IOC工作流程

    2024-04-26 04:04:01       11 阅读
  5. ROS——service机制

    2024-04-26 04:04:01       13 阅读
  6. 微信浏览器input[file]拍照点确认后强刷新解决

    2024-04-26 04:04:01       11 阅读
  7. 00_Linux

    00_Linux

    2024-04-26 04:04:01      10 阅读