在七牛对象存储可以创建公共的bucket和私有的bucket,私有的不可以直接使用域名加资源key的方式进行访问,需要附加下载凭证。

私有bucket

关于下载凭证的生成,php-sdk已经提供了方法privateDownloadUrl位于Auth类中:

/**
* 生成私有空间文件的下载凭证
* @param $url 私有空间资源文件的完整url,不是资源key
*/
public function genDownloadCertificate($url)
{
$auth = $this->getAuth();
$url = $auth->privateDownloadUrl($url);
return $url;
}
音频格式转换

因为遇到需求在web端播放手机端录制的音频,因为手机端使用的是对手机压缩性很好的amr格式,但是web端没有播放器可以播放amr格式的音频,所以需要转换为mp3格式。

直接使用持久化处理转为mp3,命令:

$saveas = base64_urlSafeEncode($privateBucketName.':'.$newName.'.mp3');
$pfop = 'avthumb/mp3|saveas/'.$saveas;
$res = $this->persistentOps($amrSourceKey,$privateBucketName,$pfop);

关于persistentOps方法,之前文档处理那篇已经介绍过,点击查看

在音频处理的时候,发现处理的速度非常慢,经查阅文档得知,默认持久化处理使用的是公共的管道队列,所以很慢,我们需要在七牛管理控制台->产品列表->多媒体处理 中创建自己的队列,并在new PersistentFop()的时候第三个参数传递管道名

视频切片

大部门的web视频播放器都支持mp4格式的视频播放,这里存在一个问题,一个较大(>1G)如果我们直接将一个七牛空间的视频连接地址抛给播放器,可以播放,但当我们需要快进的时候,视频会缓冲特别长的时间,这是因为播放器会将之前的部分全部加载到本地。

那如何实现快进的功能?就是将视频切片,即转换为m3u8格式。pfop命令:

$saveas = base64_urlSafeEncode($this->bucket_for_video.':'.$newName.'.m3u8');
$pfop = 'avthumb/m3u8/noDomain/1/vb/500k|saveas/'.$saveas;//500k视频切片的大小
$res = $this->persistentOps($mp4SourceKey,$this->bucket_for_video,$pfop);

这样就可以将m3u8文件链接地址交给播放器,这是文件都在公共bucket的情况下,如果m3u8文件存在于私有的bucket中,我们需要使用genDownloadCertificate,并且链接添加?pm3u8/0参数。

$url = genDownloadCertificate('http://private.qiniudomain.cn/xxxxxxx.m3u8?pm3u8/0');

最新文章

  1. angular2 service component
  2. Quartz资源收藏
  3. H-Index I & II
  4. shell_基础知识
  5. css3之边框新属性
  6. UESTC 424 AreYouBusy --混合背包
  7. asp.net CROSS-PAGE POSTING
  8. extjs 框架模板
  9. Day3 - Linux系统安装_Centos6.9
  10. 【问题排查】fastjson线上排坑记
  11. Python自学:第三章 使用方法pop()删除元素
  12. 踩坑rosbag --clock
  13. 转: jquery中ajax回调函数使用this
  14. Codeforces 884C.Bertown Subway ----判环,思路
  15. PAT甲题题解-1006. Sign In and Sign Out (25)-找最小最大
  16. CentOS快速安装最新版本的SaltStack
  17. MySQL读写分离-简单思考
  18. 分布式一致性Hash
  19. pointer-events/H5页面在iphone6 plus的微信上出现闪退
  20. 旋转/非旋转treap的简单操作

热门文章

  1. itextpdf添加非自带字体(例如微软雅黑)
  2. Django的Models(三)
  3. python作用域与命名空间
  4. this的理解
  5. iOS 让图片变模糊
  6. Servlet过滤器简单探索
  7. CSS height:100%无效
  8. Git 企业开发者教程
  9. SET与SPLIT
  10. Locust no-web 模式与参数详解