记录一下对接腾讯云短视频,服务端的解决方案。腾讯云把这个服务叫云点播,都是一个东西。
我的业务场景:实现类似抖音短视频这样的功能,手机APP上传视频,用于分享和播放
思考:为什么不把视频直接存在自己的服务器上,如果视频直接存放到自己服务器,视频文件比较大,占用存储空间,播放的时消耗服务器带宽,视频播放不流畅等等
解决方案:可以使用第三方视频点播服务,我在项目里使用的是腾讯云点播
以下为具体实现步骤:
1.需要在腾讯云,开通云点播,新注册账号,默认没有开通,详细可以参考腾讯云的入门介绍 https://cloud.tencent.com/document/product/266/9759
2.Android和IOS端需要购买腾讯云短视频SDK,有免费体验时间,客户端可以利用免费体验时间做SDK对接和测试,实际上线是需要购买使用版权,参考地址
3.客户端直接调用SDK上传视频,服务端需要向客户端派发上传签名。因为上传签名需要SecretKey 生成签名,SecretKey 权限很大,容易泄露,保存在客户端不安全,所以需要在服务端生成。参考地址https://cloud.tencent.com/document/product/266/9219 操作步骤这一部分
生产签名实例
class Sign
{
public static function make()
{
// 确定 App 的云 API 密钥
$secret_id = Config::$secretId;
$secret_key = Config::$secretKey;
// 确定签名的当前时间和失效时间
$current = time();
$expired = $current + 86400; // 签名有效期:1天
// 向参数列表填入参数
$arg_list = [
"secretId" => $secret_id,
"currentTimeStamp" => $current,
"expireTime" => $expired,
"random" => rand()
];
// 计算签名
$orignal = http_build_query($arg_list);
$signature = base64_encode(hash_hmac('SHA1', $orignal, $secret_key, true).$orignal);
return $signature;
}
}
腾讯云提供的代码地址 https://cloud.tencent.com/document/product/266/10638#php-.E7.AD.BE.E5.90.8D.E7.A4.BA.E4.BE.8B
4. 以上步骤就可以实现腾讯云短视频的上传功能,客户端上传视频成功以后,腾讯云会返回一个视频地址和视频封面地址给客户端,客户端再通过服务端的接口,保存起来即可。
注意:根据上面操作就可以看出来,腾讯云短视频对接实际是很简单的,腾讯云点播的接口文档里提供了很多服务端API文档,如果只是做短视频上传接入,那些是不需要调用的,服务端只需要生产签名即可。