阿里云视频点播实例旧版
<?php
/*** Notes: 视频点播* User : zzy* Date : 2019/10/31* Time : 8:52*/
defined('BASEPATH') OR exit('No direct script access allowed');
require_once APPPATH.'/vendor/aliyuncs/aliyun-php-sdk/aliyun-php-sdk-core/Config.php';
require_once APPPATH."/vendor/aliyuncs/oss-sdk-php/autoload.php";
use vod\Request\V20170321 as vod;
use OSS\OssClient;
use OSS\Core\OssException;class AliyunDemand{private $accessKeyId = '';private $accessKeySecret = '';private $callback = '';private $connection;/*** 构造函数初始化配置*/public function __construct(){$CI = &get_instance();$CI->config->load('aliyundemand',TRUE);$config = $CI->config->item('demand','aliyundemand');$this->accessKeyId = $config['accessKeyId'];$this->accessKeySecret = $config['accessKeySecret'];$this->callback = $config['callback'];$this->connection = $this->initVodClient($this->accessKeyId,$this->accessKeySecret);}/*** Notes: 初始化点播服务* User: zzy* Date: 2019/10/31* Time: 8:56* Version:* @param $accessKeyId* @param $accessKeySecret* @return DefaultAcsClient*/private function initVodClient($accessKeyId, $accessKeySecret) {$regionId = 'cn-shanghai'; // 点播服务接入区域$profile = DefaultProfile::getProfile($regionId, $accessKeyId, $accessKeySecret);return new DefaultAcsClient($profile);}/*** Notes:刷新上传凭证* User: zzy* Date: 2019/10/31* Time: 15:25* Version:* @param $vodClient* @param $videoId* @return mixed|SimpleXMLElement* @throws ClientException* @throws ServerException*/public function refresh_upload_video($vodClient, $videoId) {$request = new vod\RefreshUploadVideoRequest();$request->setVideoId($videoId);return $this->connection->getAcsResponse($request);}/*** Notes: 初始化点播oss* User: zzy* Date: 2019/10/31* Time: 18:34* Version:* @param $uploadAuth* @param $uploadAddress* @return OssClient* @throws OssException*/public function init_oss_client($uploadAuth, $uploadAddress) {$ossClient = new OssClient($uploadAuth['AccessKeyId'], $uploadAuth['AccessKeySecret'], $uploadAddress['Endpoint'],false, $uploadAuth['SecurityToken']);$ossClient->setTimeout(86400*7); // 设置请求超时时间,单位秒,默认是5184000秒, 建议不要设置太小,如果上传文件很大,消耗的时间会比较长$ossClient->setConnectTimeout(10); // 设置连接超时时间,单位秒,默认是10秒return $ossClient;}/*** Notes:大文件分片上传,支持断点续传;最大支持48.8TB* User: zzy* Date: 2019/10/31* Time: 15:28* Version:* @param $ossClient* @param $uploadAddress* @param $localFile* @return mixed*/public function multipart_upload_file($ossClient, $uploadAddress, $localFile) {return $ossClient->multiuploadFile($uploadAddress['Bucket'], $uploadAddress['FileName'], $localFile);}/*** 获取视频上传地址和凭证* @param client 发送请求客户端w* @return CreateUploadVideoResponse 获取视频上传地址和凭证响应数据*//*** Notes:获取视频上传地址和凭证* User: zzy* Date: 2019/10/31* Time: 16:43* Version:* @return mixed|SimpleXMLElement* @throws ClientException* @throws ServerException* @return CreateUploadVideoResponse 获取视频上传地址和凭证响应数据*/public function createUploadVideo($data) {$request = new vod\CreateUploadVideoRequest();isset($data['title'])?$request->setTitle($data['title']):""; //标题,UTF8,128大小isset($data['fileName'])?$request->setFileName($data['fileName']):""; //视频源文件名isset($data['fileSize'])?$request->setFileSize($data['fileSize']):""; //大小,字节isset($data['description'])?$request->setDescription($data['description']):""; //描述,utf-8isset($data['coverURL'])?$request->setCoverURL($data['coverURL']):""; //封面urlisset($data['cateId'])?$request->setCateId($data['cateId']):""; //分类idisset($data['tags'])?$request->setTags($data['tags']):""; //标签,隔开isset($data['templateGroupId'])?$request->setTemplateGroupId($data['templateGroupId']):""; //转码模板组IDisset($data['storageLocation'])?$request->setStorageLocation($data['storageLocation']):""; //存储地址$request->setAcceptFormat('JSON');return $this->connection->getAcsResponse($request);}/*** Notes:修改视频信息* User: zzy* Date: 2019/11/1* Time: 13:07* Version:* @param $videoId* @param $data* @return mixed|SimpleXMLElement* @throws ClientException* @throws ServerException*/public function updateVideoInfo($videoId,$data) {$request = new vod\UpdateVideoInfoRequest();$request->setVideoId($videoId);isset($data['title'])?$request->setTitle($data['title']):""; //标题,UTF8,128大小isset($data['description'])?$request->setDescription($data['description']):""; //描述,utf-8isset($data['coverURL'])?$request->setCoverURL($data['coverURL']):""; //封面urlisset($data['tags'])?$request->setTags($data['tags']):""; //标签,隔开isset($data['cateId'])?$request->setCateId($data['cateId']):""; //分类id$request->setAcceptFormat('JSON');return $this->connection->getAcsResponse($request);}/*** Notes: 删除音频信息* User: zzy* Date: 2019/11/1* Time: 13:08* Version:* @param $videoIds* @return mixed|SimpleXMLElement* @throws ClientException* @throws ServerException*/public function deleteVideos($videoIds) {$request = new vod\DeleteVideoRequest();$request->setVideoIds($videoIds); // 支持批量删除视频;videoIds为传入的视频ID列表,多个用逗号分隔$request->setAcceptFormat('JSON');$request->setAcceptFormat('JSON');return $this->connection->getAcsResponse($request);}/*** Notes: 上传点播网路视频* User: zzy* Date: 2019/11/5* Time: 14:04* Version:* @return string*/public function ossUploadWebVideo($videoUrl,$videoTitle,$description='',$cateId='',$tags=''){try {$uploader = new AliyunVodUploader($this->accessKeyId, $this->accessKeySecret);$uploadVideoRequest = new UploadVideoRequest($videoUrl, $videoTitle,$description,$cateId,$tags);/* $userData = array("MessageCallback"=>array("CallbackURL"=>$this->callback),//你的回调地址,http://www.xxx.com,这个地址回返回一个json格式的文件,你用获取HTTP里的body值);$uploadVideoRequest->setUserData(json_encode($userData));*/$res = $uploader->uploadWebVideo($uploadVideoRequest);return array("status"=>1,"data"=>$res);} catch (Exception $e) {return array("status"=>0,"data"=>$e->getMessage());}}/*** Notes: 点播本地视频上传* User: zzy* Date: 2019/10/31* Time: 16:38* Version:*/public function UploadLocalVideo($data){try {#$file = $_FILES;$localFile = PUBLIC_PATH.$data['videoUrl'];$createRes = $this->createUploadVideo($data);$videoId = $createRes->VideoId;$uploadAddress = json_decode(base64_decode($createRes->UploadAddress), true);$uploadAuth = json_decode(base64_decode($createRes->UploadAuth), true);$ossClient = $this->init_oss_client($uploadAuth, $uploadAddress);$result = $this->multipart_upload_file($ossClient, $uploadAddress, $localFile);return array("status"=>1,"data"=>$videoId);} catch (Exception $e) {return array("status"=>0,"data"=>$e->getMessage());}}/*** Notes: 获取音频播放地址* User: zzy* Date: 2019/10/31* Time: 18:15* Version:* @param $client* @param $videoId* @return mixed*/public function getPlayInfo($videoId) {$request = new vod\GetPlayInfoRequest();$request->setVideoId($videoId);$request->setAuthTimeout(0);$request->setAcceptFormat('JSON');$videoInfoObj = $this->connection->getAcsResponse($request);if($videoInfoObj) {$videoInfoArr = json_decode( json_encode( $videoInfoObj),true);return $videoInfoArr;} else {return false;}}/*** Notes: 获取播放凭证* User: zzy* Date: 2019/10/31* Time: 18:28* Version:* @param $videoId* @return mixed|SimpleXMLElement* @throws ClientException* @throws ServerException*/public function getPlayAuth($videoId) {$request = new vod\GetVideoPlayAuthRequest();$request->setVideoId($videoId);$request->setAuthInfoTimeout(3000);$request->setAcceptFormat('JSON');$response = $this->connection->getAcsResponse($request);return $response;}/*** Notes:媒资分类-创建分类* User: zzy* Date: 2019/10/31* Time: 18:30* Version:* @param $cateName 分类名称* @param int $parentId 父级id* @return mixed|SimpleXMLElement* @throws ClientException* @throws ServerException*/public function addCategory($cateName, $parentId=-1) {$request = new vod\AddCategoryRequest();$request->setCateName($cateName);$request->setParentId($parentId);$request->setAcceptFormat('JSON');$response = $this->connection->getAcsResponse($request);return $response;}/*** Notes: 媒资分类-修改分类* User: zzy* Date: 2019/10/31* Time: 18:31* Version:* @param $client* @param $cateId* @param $cateName* @return mixed*/public function updateCategory($cateId, $cateName) {$request = new vod\UpdateCategoryRequest();$request->setCateId($cateId);$request->setCateName($cateName); // 分类名称$request->setAcceptFormat('JSON');$response = $this->connection->getAcsResponse($request);return $response;}/*** Notes:媒资分类-删除分类* User: zzy* Date: 2019/10/31* Time: 18:31* Version:* @param $client* @param $cateId* @return mixed*/public function deleteCategory($cateId) {$request = new vod\DeleteCategoryRequest();$request->setCateId($cateId);$request->setAcceptFormat('JSON');$response = $this->connection->getAcsResponse($request);return $response;}/*** Notes:媒资分类-查询分类及其子分类* User: zzy* Date: 2019/10/31* Time: 18:32* Version:* @param int $cateId* @param int $pageNo* @param int $pageSize* @return mixed*/public function getCategories($cateId=-1, $pageNo=1, $pageSize=10) {$request = new vod\GetCategoriesRequest();$request->setCateId($cateId); // 分类ID,默认为根节点分类ID即-1$request->setPageNo($pageNo);$request->setPageSize($pageSize);$request->setAcceptFormat('JSON');$response = $this->connection->getAcsResponse($request);return $response;}/*** Notes:提交智能审核作业* User: zzy* Date: 2019/11/1* Time: 9:21* Version:* @return mixed*/public function submitAIMediaAuditJob($videoId) {$request = new vod\SubmitAIMediaAuditJobRequest();// 设置视频ID$request->setMediaId($videoId);// 返回结果$response = $this->connection->getAcsResponse($request);return $response;}/*** Notes:查询智能审核作业* User: zzy* Date: 2019/11/1* Time: 9:24* Version:* @param $videoId* @return mixed|SimpleXMLElement* @throws ClientException* @throws ServerException*/public function getAIMediaAuditJob($videoId) {$request = new vod\GetAIMediaAuditJobRequest();// 设置作业ID$request->setJobId($videoId);// 返回结果$response = $this->connection->getAcsResponse($request);return $response;}/*** Notes:获取智能审核结果摘要* User: zzy* Date: 2019/11/1* Time: 9:25* Version:* @param $videoId* @return mixed|SimpleXMLElement* @throws ClientException* @throws ServerException*/public function getMediaAuditResult($videoId) {$request = new vod\GetMediaAuditResultRequest();// 设置视频ID$request->setMediaId($videoId);// 返回结果$response = $this->connection->getAcsResponse($request);return $response;}/*** Notes:获取智能审核结果详情* User: zzy* Date: 2019/11/1* Time: 9:29* Version:* @param $videoId 视频id* @param $page 结果详情页码* @return mixed|SimpleXMLElement* @throws ClientException* @throws ServerException*/public function getMediaAuditResultDetail($videoId,$page) {$request = new vod\GetMediaAuditResultDetailRequest();// 设置视频ID$request->setMediaId($videoId);// 设置翻页$request->setPageNo($page);// 返回结果$response = $this->connection->getAcsResponse($request);return $response;}/*** Notes:预热缓存* User: zzy* Date: 2019/11/1* Time: 9:30* Version:* @param $client* @return mixed*/public function preloadVodObjectCaches($videoPath) {$request = new vod\PreloadVodObjectCachesRequest();// 需要预热的文件路径$request->setObjectPath($videoPath);// 返回结果$response = $this->connection->getAcsResponse($request);return $response;}/*** Notes:查询刷新预热次数限制和余量* User: zzy* Date: 2019/11/1* Time: 9:31* Version:* @return mixed*/public function describeVodRefreshQuota() {$request = new vod\DescribeVodRefreshQuotaRequest();$response = $this->connection->getAcsResponse($request);return $response;}}
阿里云SDK下载安装地址:https://helpcdn.aliyun.com/document_detail/61067.html?spm=a2c4g.11186623.2.59.1a61192bkPa5YH
阿里云点播上传SDK下载地址:https://helpcdn.aliyun.com/document_detail/100976.html?spm=a2c4g.11186623.6.1060.790b3a65aGEr4p
阿里云视频点播实例旧版相关推荐
- 阿里云视频点播(测试)
阿里云视频点播(测试) 文章目录 阿里云视频点播(测试) 服务端SDK 1. 简介: 2.功能介绍 一.使用SDK 二.创建测试用例 1.获取视频播放凭证 2.获取视频播放地址 三.安装SDK 三.测 ...
- 玩转短视频?守护视频安全?AI智能提速?一分钱体验? 阿里云视频点播大招盘点...
摘要: 前言 随着近几年在线视频市场规模不断扩大,内容不断创新,用户粘性增加,在线视频市场的商业价值不断增长,各垂直行业纷纷引入视频能力,一时之间,视频已经成为了众多移动APP和在线平台沉淀用户的有效 ...
- 快速解决:阿里云ECS实例远程桌面连接 发生身份验证错误。要求的函数不受支持 !
三步解决问题: 本地PC 远程桌面连接 阿里云ECS实例 失败 ? 报错: "发生身份验证错误.要求的函数不受支持" ? 一.问题截图描述: 二.3步解决问题: 1. 网页版 · ...
- 阿里云mysql宽带_阿里云数据库RDS MySQL版购买使用详细过程
阿里云数据库 RDS MySQL 版如何购买使用?通过前面学习如何选择阿里云数据库 RDS MySQL 版,魏艾斯博客已经阿里云 MySQL 有了初步认识,接下来跟着老魏一起购买使用阿里云数据库 RD ...
- 阿里云视频点播服务SDK的使用,视频文件上传测试
文章目录 阿里云视频点播技术简介 一.阿里云视频点播技术能力盘点 1.应用场景 2.功能介绍 二.开通视频点播云平台 1.选择视频点播服务 2.开通视频点播 3.选择按使用流量计费 4.资费说明 5. ...
- 阿里云视频点播-对接注意点
阿里云视频点播-对接注意点 对接接阿里云的视频点播过程有点繁琐,做个记录以便以后查阅 一.分发加速配置-域名管理 配置成功的前提是自己先要有个主域名,并且成功备案. 1.先配置一个域名 2.配 ...
- SpringBoot - 阿里云视频点播的简单使用
视频点播(ApsaraVideo for VoD)是集音视频采集.编辑.上传.自动化转码处理.媒体资源管理.分发加速于一体的一站式音视频点播解决方案. 一.阿里云开通视频点播及控制台常用操作 开通地址 ...
- 阿里云视频点播大招盘点
前言 随着近几年在线视频市场规模不断扩大,内容不断创新,用户粘性增加,在线视频市场的商业价值不断增长,各垂直行业纷纷引入视频能力,一时之间,视频已经成为了众多移动APP和在线平台沉淀用户的有效方法. ...
- 阿里云视频点播技术能力盘点
随着近几年在线视频市场规模不断扩大,内容不断创新,用户粘性增加,在线视频市场的商业价值不断增长,各垂直行业纷纷引入视频能力,一时之间,视频已经成为了众多移动APP和在线平台沉淀用户的有效方法. 为了让 ...
最新文章
- JSP笔记-XML 数据处理
- .NET 中 Image 转 Icon
- Hive的JDBC连接和数据查询功能
- NumPy 数组对象
- paradox 修改字段长度_关于生日的作文500字9篇
- java 日期是否合法_检测日期字符串是否为合法(java版)
- ASP“.NET研究”.NET中的认证与授权
- 集成 Tomcat、 Servlet 的生命周期
- Spring Cloud Gateway 原理与应用场景
- mysql set语句_从强网杯随便注浅析mysql存储过程
- php获取视频大小代码怎么写,利用php获得flv视频长度的实例代码
- gear操作系统 基于web的linux开放平台,支持Linux操作系统 开源飞机模拟器FlightGear...
- 详解JAVA的getBytes()方法
- 现在骨传导耳机什么牌子最好,最受欢迎的五款骨传导耳机推荐
- kettle 9.1 连接hadoop clusters (CDH 6.2)
- The project seems to require yarn but it‘s not installed.
- 利用最小二乘法进行参数估计
- 硬件设计之一——电源设计05:过电流能力
- NBA得分后卫阅兵:科比榜首麦蒂第9 小AI获至高赞誉
- 怎么在Ubuntu手机上发送短信及拨打电话