1.首先下载七牛云的SDK
php composer.phar require qiniu/php-sdk
2.可以查看下七牛云的类包

我们用到的是七牛云封装好的,打开Processing,我们能看到下面三个文件

在这里我们只用到 PersistentFop.php文件,打开可以看下封装的文件,以下截图最重要的

这个是对资源文件异步持久化的主要函数,主要字段说明
/**
* 对资源文件进行异步持久化处理
* @param string $bucket 资源所在空间
* @param string $key 待处理的源文件
* @param string $fops string|array 待处理的pfop操作,多个pfop操作以array的形式传入。
* eg. avthumb/mp3/ab/192k, vframe/jpg/offset/7/w/480/h/360
* @param string $pipeline 资源处理队列
* @param string $notify_url 处理结果通知地址
* @param bool $force 是否强制执行一次新的指令
*
*
* @return array 返回持久化处理的persistentId, 和返回的错误。
*
* @link http://developer.qiniu.com/docs/v6/api/reference/fop/
*/
注意事项:
$key指的是源文件,指的是七牛云的文件名,不要加域名链接
$fops 可处理的操作主要时间和说明参考链接:
https://developer.qiniu.com/kodo/manual/put-policy#put-policy-persistent-ops-explanation
这里我们只说视频切片
avthumb/m3u8/noDomain/1/segtime/15/vb/440k
参考文档链接:
https://developer.qiniu.com/dora/1485/audio-and-video-slice
下面开始贴代码:
$config = config('qiniu');
$auth = new Auth($config['accessKey'], $config['secretKey']);
// $token = $auth->uploadToken($config['bucket']);
// 要转码的文件所在的空间
$bucket = $config['bucket'];
// 转码时使用的队列名称
$pipeline = '';
$PersistentFop=new PersistentFop($auth,$config);
$key='20201105002939-5fa2d6f3b65c4.mp4';
$fops='avthumb/m3u8/noDomain/1/segtime/15/vb/440k';
$notify_url='http://laravel.pingeban.cn/api/v1/ImgCreat/backurlHis';
list($id, $err)=$PersistentFop->execute($bucket, $key, $fops, $pipeline , $notify_url, $force = false);
echo "\n====> pfop avthumb result: \n";
if ($err != null) {
var_dump($err);
} else {
echo "PersistentFop Id: $id\n";
}
//查询转码的进度和状态
list($ret, $err) = $PersistentFop->status($id);
echo "\n====> pfop avthumb status: \n";
if ($err != null) {
var_dump($err);
} else {
var_dump($ret);
}
由于异步,可以将ID放入redis队列,定时请求返回的key值,返回数据如下:array(8) {
["id"]=>
string(35) "z1.01z104cbtzrnjftrsj00mupshn00020v"
["pipeline"]=>
string(19) "1381847675.sp_video"
["code"]=>
int(0)
["desc"]=>
string(34) "The fop was completed successfully"
["reqid"]=>
string(16) "O74AAABfUA8vE4UW"
["inputBucket"]=>
string(8) "sp-video"
["inputKey"]=>
string(32) "20201105002939-5fa2d6f3b65c4.mp4"
["items"]=>
array(1) {
[0]=>
array(6) {
["cmd"]=>
string(42) "avthumb/m3u8/noDomain/1/segtime/15/vb/440k"
["code"]=>
int(0)
["desc"]=>
string(34) "The fop was completed successfully"
["hash"]=>
string(28) "FolTmGkc9ST9oUElVWe9dJ0q1xN6"
["key"]=>
string(57) "R-aLnn2QejzKYntg-XWLVw5G8XE=/Fm5fNeZpMHRhAPzvo8n3pkZsCS9L"
["returnOld"]=>
int(1)
}
}
key值就是视频切片的地址,小程序视频组件是支持的,也可以放入下面链接查看是否能正常播放