点播 构造自己的播放器 用户调用获取视频播放地址接口

Posted Q神

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了点播 构造自己的播放器 用户调用获取视频播放地址接口相关的知识,希望对你有一定的参考价值。


目的:使用自己构造的播放器来播放乐视云的点播中上传的视频,不使用官方播放器

方法:

1.这个API接口乐视云只提供给付费用户,需要找官方客服开通这个功能,再让他们提供这文件API文档

点播

参数说明:

1.user  

点播

2.video(是视频VU:8xxxxxx2,不是视频ID:4ccccc6)

点播

 

HTTP获取方法:

一、GET方法

      header("Content-type: text/html; charset=utf-8");
//$ptime=time()*1000;//13位
$ptime=time();//13位
//$format="json";
$http_type=http;
//dump($videoid);
$params = array (
"user" => $uuid,//乐视云视频分配用户唯一标识
"video" => $videoid,//视频唯一标识
"vtype" => $type,//视频类型,可选值范围(mp4,flv,m3u8)
"ts" => $ptime,//当前 Unix 时间戳,请保证请求服务器时间正确,与现在时间差 1分钟以内
//"protocol" => $http_type,//指定播放地址为 http 或者 https 协议,默认返回 http 播放地址
);
// dump($str);
$hash = $this->generateSign($params,$secretkey);
//echo $hash;
$url="http://api.letvcloud.com/getplayurl.php?user=".$uuid."&video=".$videoid."&vtype=".$type."&ts=".$ptime."&sign=".$hash;
//初始化
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL,$url);
// 执行后不直接打印出来
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, false);
// 跳过证书检查
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
// 不从证书中检查SSL加密算法是否存在
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);

//执行并获取HTML文档内容
$output = curl_exec($ch);

//释放curl句柄
curl_close($ch);

二、POST方法

      header("Content-type: text/html; charset=utf-8");
//$ptime=time()*1000;//13位
$ptime=time();//13位
//$format="json";
$http_type=http;
//dump($videoid);
$params = array (
"user" => $uuid,//乐视云视频分配用户唯一标识
"video" => $videoid,//视频唯一标识
"vtype" => $type,//视频类型,可选值范围(mp4,flv,m3u8)
"ts" => $ptime,//当前 Unix 时间戳,请保证请求服务器时间正确,与现在时间差 1分钟以内
//"protocol" => $http_type,//指定播放地址为 http 或者 https 协议,默认返回 http 播放地址
);
// dump($str);
$hash = $this->generateSign($params,$secretkey);
//echo $hash;
$url="http://api.letvcloud.com/getplayurl.php";
$post_data = array (
"user" => $uuid,//乐视云视频分配用户唯一标识
"video" => $videoid,//视频唯一标识
"vtype" => $type,//视频类型,可选值范围(mp4,flv,m3u8)
"ts" => $ptime,//当前 Unix 时间戳,请保证请求服务器时间正确,与现在时间差 1分钟以内
"sign" => $hash,//验证码,生成规则详见下面的说明,其中 secretkey 是由乐视网统 一分配并提供的用户密钥
// "protocol" => $http_type,//指定播放地址为 http 或者 https 协议,默认返回 http 播放地址
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// post数据
curl_setopt($ch, CURLOPT_POST, 1);
// post的变量
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
$output = curl_exec($ch);
curl_close($ch);

//打印获得的数据
print_r($output);

HTTPS获取方法:

参数构成都差不多,"protocol" => $http_type,无论验证和传参数都要加上这个参数

      header("Content-type: text/html; charset=utf-8");
//$ptime=time()*1000;//13位
$ptime=time();//13位
//$format="json";
//$http_type=http;
//dump($videoid);
$params = array (
"user" => $uuid,//乐视云视频分配用户唯一标识
"video" => $videoid,//视频唯一标识
"vtype" => $type,//视频类型,可选值范围(mp4,flv,m3u8)
"ts" => $ptime,//当前 Unix 时间戳,请保证请求服务器时间正确,与现在时间差 1分钟以内
"protocol" => $http_type,//指定播放地址为 http 或者 https 协议,默认返回 http 播放地址
);
// dump($str);
$hash = $this->generateSign($params,$secretkey);
//echo $hash;
$url="http://api.letvcloud.com/getplayurl.php";
$post_data = array (
"user" => $uuid,//乐视云视频分配用户唯一标识
"video" => $videoid,//视频唯一标识
"vtype" => $type,//视频类型,可选值范围(mp4,flv,m3u8)
"ts" => $ptime,//当前 Unix 时间戳,请保证请求服务器时间正确,与现在时间差 1分钟以内
"sign" => $hash,//验证码,生成规则详见下面的说明,其中 secretkey 是由乐视网统 一分配并提供的用户密钥
"protocol" => $http_type,//指定播放地址为 http 或者 https 协议,默认返回 http 播放地址
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// post数据
curl_setopt($ch, CURLOPT_POST, 1);
// post的变量
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
$returndata = curl_exec($ch);
curl_close($ch);

三、签名方法

    /** 
* 构造云视频Sign
* @param array $params 业务参数
* @return string
*/
public function generateSign($params,$secretkey)
ksort($params);
$keyStr = ;
foreach($params as $key => $value)
$keyStr .= $key.$value;

$keyStr .= $secretkey;
$key = md5($keyStr);
return $key;

四,返回数据

返回成功的 data 节点说明:包含video_list 节点,包含所有指定视频格式的调度播放地
址。如请求的视频存在,标清和高清两个码流的视频源则,同时返回两个节点,每节点下含
4 个视频地址(1 主,3 备),地址为 base64 编码,base64解码后可用,注意播放地址的时效性。
其他信息为:视频的长宽和视频码流信息等

点播

点播

说明:

1.main_url:主要网址,备份网址:back_url1_1,back_url1_2,back_url1_3

2.ts时间戳有时间限制,与现在时间差1分钟以内,如果超出了时间需要重新获取

3.解密出来的MP4视频网址,只要不关闭打开视频的浏览器是可以一直观看下载,如果复制视频网址给别人(其它浏览器打开),一分钟后就打不开原来能观看视频的网址

点播

打开错误提示

 

 

以上是关于点播 构造自己的播放器 用户调用获取视频播放地址接口的主要内容,如果未能解决你的问题,请参考以下文章

EasyPlayer如何获取点播视频流的时间戳?

如何在EasyDSS内调用的iframe地址设置自动播放?

阿里云视频点播技术

SpringBoot整合阿里云视频点播

SpringBoot整合阿里云视频点播

十分钟教你用docker搭建自己的CMS点播系统,还带播放器呦!