Hi,为确保您的账号安全,请大家修改登陆密码为包含大小写字母、标点、数字的复合密码,不要使用过于简单的登陆密码。
您当前的位置:首页 :: PHP

laravel之阿里云视频直播篇

时间:2018-01-16 18:36:32  来源:  作者:

laravel之阿里云视频直播篇

之前讲过 <<laravel之阿里云视频点播篇>>

在原来基本上后台点播放列表肯定有了,那么直直播就是比较简单了,在原来的列上增加上推流地址就可以了

直接上代码

//这里要用到上一偏讲的配置信息里的内容具体的配置信息请找上一篇
public static function getPushUrl($stream_name, $app_name = 'upvup.com')
{
    $config = Config::get('live.aliyun');
    $pushUrl = sprintf("%s/%s/%s?vhost=%s", $config['push_domain'], $app_name, $stream_name, $config['vhost']);
    $urlParser = parse_url($pushUrl);
    $authKey = self::generateAuthKey($config, $urlParser['path']);
    return sprintf("%s&auth_key=%s", $pushUrl, $authKey);
}

public static function getPlayUrl($stream_name, $app_name = 'upvup.com', $play_type = null, $transcode = 'lld')
{
    $config = Config::get('live.aliyun');
    if (empty($play_type)) {
        $play_type = $config['play_type'];
    }
    $playTypeInfo = [
        'rtmp' => ['rtmp://', ''],
        'flv' => ['https://', '.flv'],
        'm3u8' => ['https://', '.m3u8'],
    ];
    if (!empty($transcode)) {
        if ('m3u8' == $play_type) {
            $transcode = '';
        } else {
            $transcode = "_" . $transcode;
        }
    }
    $playUrl = sprintf("%s%s/%s/%s%s%s", $playTypeInfo[$play_type][0], $config['vhost'], $app_name, $stream_name,
        $transcode, $playTypeInfo[$play_type][1]);
    $urlParser = parse_url($playUrl);
    $authKey = self::generateAuthKey($config, $urlParser['path']);

    return sprintf("%s?auth_key=%s", $playUrl, $authKey);
}

protected static function generateAuthKey($config, $uri)
{
	//$config = Config::get('live.aliyun');
    $validTime = time() + $config['auth_timestamp'];
	//$validTime = 1502284433;
	//sstring = “URI-Timestamp-rand-uid-PrivateKey” (URI是用户的请求对象相对地址,不包含参数,如 /Filename) HashValue = md5sum(sstring)
    $hashString = sprintf("%s-%d-%d-%d-%s", $uri, $validTime, $config['auth_rand'],
    $config['auth_uid'], $config['auth_key']);
    return sprintf("%d-%d-%d-%s", $validTime, $config['auth_rand'], $config['auth_uid'], md5($hashString));
}

推流地址:使用方法就是直接调用getPushUrl()方法 $stream_name 就是你要创建直播的ID或其他数据最好使用数字可以使用下画线
播放地址也是一样,带上$stream_name直接去拿就好

 

举报
收藏0次 / 评论0
评论(0)
还可以输入 2000 个字符
还可以输入 2000 个字符
取消回复
举报×

还可以输入 264 字符

收藏(0)×