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

news/2024/9/24 4:57:53/

最近在用阿里云直播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);
?>

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


http://www.ppmy.cn/news/1437142.html

相关文章

设计模式:接口隔离原则(Interface Segregation Principle,ISP)介绍

接口隔离原则&#xff08;Interface Segregation Principle&#xff0c;ISP&#xff09;是面向对象设计原则之一&#xff0c;它强调一个类不应该依赖于它不需要的接口。接口隔离原则的核心思想是将大的接口拆分成更小的、更具体的接口&#xff0c;客户端应该仅依赖于它们需要使…

Sulley入门教学——简介、安装(Win7、VMware)

1、简介 Sulley 是由 Pedram Amini 和 Aaron Portnoy 开发的开源工具。它以 Python 编写&#xff0c;可以轻松地在不同平台上部署和使用。Sulley 提供了一个灵活且功能强大的框架&#xff0c;允许用户定义协议消息的结构、字段类型、边界条件和模糊测试策略。用户可以使用 Sul…

频裂变加群推广强制分享引流源码

视频裂变加群推广强制分享引流源码&#xff0c;用户达到观看次数后需要分享给好友或者群,好友必须点击推广链接后才会增加观看次数。 引导用户转发QV分享,达到快速裂变引流的效果&#xff01; 视频裂变推广程序&#xff0c;强制分享链接&#xff0c;引导用户转发&#xff0c;…

深入解析实时数仓Doris:介绍、架构剖析、应用场景与数据划分细节

码到三十五 &#xff1a; 个人主页 心中有诗画&#xff0c;指尖舞代码&#xff0c;目光览世界&#xff0c;步履越千山&#xff0c;人间尽值得 ! Doris是一款高性能、开源的实时分析数据仓库&#xff0c;旨在为用户提供毫秒级查询响应、高并发、高可用以及易于扩展的OLAP解决方…

LeetCode53. 最大子数组和

LeetCode53. 最大子数组和 解题思路dp 代码 /* 数组长度n 9,连续的区间 那区间长度为1的区间数量是&#xff0c;9个 区间长度为2的区间数量是8个 区间长度为3的连续的区间数量为7个 .... 区间长度为9的区间数量为1个 */ class Solution { public:int maxSubArray(vector<…

目标检测——3D玩具数据集

在数字化时代&#xff0c;计算机视觉技术取得了长足的进展&#xff0c;其中基于形状的3D物体识别技术更是引起了广泛关注。该技术不仅有助于提升计算机对现实世界物体的感知能力&#xff0c;还在多个领域展现出了广阔的应用前景。本文将探讨基于形状的3D物体识别实验的重要性意…

elementui el-date-picker禁止选择今年、今天、之前、时间范围限制18个月

1、禁止选择今年之前的所有年份 <el-date-pickerv-if"tabsActive 0":clearable"false"v-model"yearValue"change"yearTimeChange"type"year"placeholder"选择年"value-format"yyyy":picker-options…

【韩国】UE5的MetaHuman确实可以导入Blender进行编辑。

UE5的MetaHuman确实可以导入Blender进行编辑。根据网络上的信息&#xff0c;你可以将MetaHuman模型导出为FBX文件&#xff0c;然后在Blender中进行修改。修改完成后&#xff0c;你可以将其重新导入到Unreal Engine 5中4。请注意&#xff0c;当你在Blender中编辑模型时&#xff…