记录一下对接腾讯云短视频,服务端的解决方案。腾讯云把这个服务叫云点播,都是一个东西。

我的业务场景:实现类似抖音短视频这样的功能,手机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文档,如果只是做短视频上传接入,那些是不需要调用的,服务端只需要生产签名即可。