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

server/2024/9/23 0:23:26/

最近在用阿里云直播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/server/17882.html

相关文章

设计模式之组合模式

1、详细介绍 组合模式&#xff08;Composite Pattern&#xff09;是一种结构型设计模式&#xff0c;它将对象结构&#xff08;树形结构&#xff09;中的对象&#xff08;包括叶子节点和容器节点&#xff09;都看作同一类型的对象&#xff0c;从而使得客户端可以一致地处理单个对…

Current browser version is 101.0.4951.54 with binary解决

目录 问题&#xff1a; 原因&#xff1a; 解决&#xff1a; 1. 卸载浏览器 2.安装新浏览器&#xff0c;取消自动更新 3.安装chromedriver.exe 问题&#xff1a; 今天在使用python selenium进行爬虫时&#xff0c;突然报错&#xff0c;前2天还正常使用 Current browser ve…

React-RTK

​&#x1f308;个人主页&#xff1a;前端青山 &#x1f525;系列专栏&#xff1a;React篇 &#x1f516;人终将被年少不可得之物困其一生 依旧青山,本期给大家带来React篇专栏内容:React-RTK 目录 1、介绍 2、安装 3、编写RTK使用示例 4、官方提供项目包示例 创建 Redux …

jmeter--取样器-- HTTP请求

HTTP请求&#xff08;HTTP Request&#xff09; 右键 >>> 添加 >>> 取样器 >>> HTTP请求&#xff08;HTTP Request&#xff09;基本web服务器协议&#xff1a;https服务器名称或IP&#xff1a;端口号&#xff1a;443HTTP请求请求方式&#xff1a;路…

Hadoop实战——MapReduce-字符统计(超详细教学,算法分析)

目录 一、前提准备工作 启动hadoop集群 二、实验过程 1.虚拟机安装先设置端口转发 2.上传对应文件 3.编写Java应用程序 4. 编译打包程序 5. 运行程序 三、算法设计和分析 算法设计 算法分析 四、实验总结 实验目的&#xff1a;给定一份英文文本&#xff0c;统计每个…

【算法刷题day31】Leetcode:455. 分发饼干、376. 摆动序列、53. 最大子数组和

文章目录 Leetcode 455. 分发饼干解题思路代码总结 Leetcode 376. 摆动序列解题思路代码总结 Leetcode 53. 最大子数组和解题思路代码总结 草稿图网站 java的Deque Leetcode 455. 分发饼干 题目&#xff1a;455. 分发饼干 解析&#xff1a;代码随想录解析 解题思路 从大到小遍…

某翻译平台翻译接口逆向之webpack学习

逆向网址 aHR0cHM6Ly9mYW55aS55b3VkYW8uY29tLw 逆向链接 aHR0cHM6Ly9mYW55aS55b3VkYW8uY29tLyMv 逆向接口 aHR0cHM6Ly9kaWN0LnlvdWRhby5jb20vd2VidHJhbnNsYXRl 逆向过程 请求方式 POST 逆向参数 sign c168e4cb76169e90f82d28118dbd24d2 接口请求结果解密 过程分析 根据XHR…

XiaodiSec day019 Learn Note 小迪安全学习笔记

XiaodiSec day019 Learn Note 小迪安全学习笔记 记录得比较凌乱&#xff0c;不尽详细 C#相关 .NET 框架&#xff0c;多用 C#开发 内容非常少&#xff0c;和通用安全漏洞差不多 未授权访问 目录结构 反编译获得源码&#xff0c;dll 反编译 web.config 目录 dll 文件类似于…