全部产品
云市场

如何玩转短视频

更新时间:2019-08-13 16:41:22

前言

短视频行业经过多年的发展,已成为继文字,图片之后新的内容承载方式。随着头部产品对用户的培育以及4G网络的发展,终端用户对短视频的需求是非常强烈的。短视频适用于各个场景:娱乐社交、电商、母婴教育等,通过阅读本文可以让您快速了解一个短视频APP所涉及到的相关产品和使用情况,快速搭建短视频APP。

客户端SDK

该部分内容主要阅读者是客户端开发人员

客户端SDK可帮助您实现视频从采集、编辑到上传和播放层面的能力。

服务端

该部分内容主要阅读者是服务端开发人员

生产出的视频需要发布到线上供其他用户观看和互动时还需要涉及以下几个服务的配置和开发:

  • 如何使用视频点播服务(VOD)

    视频点播(ApsaraVideo VoD,简称VoD)是集视频采集、编辑、上传、媒体资源管理、自动化转码处理(窄带高清TM)、视频审核分析、分发加速于一体的一站式音视频点播解决方案。

  • 业务后台服务(APPServer)—主要讲解阿里云账号权限相关:

    短视频 App 需要一台简单的业务服务器,该服务器可以为 App 提供注册、登录、存储用户关系数据、用户和视频关系数据、视频列表、视频上传签名、接受视频点播服务(VOD)的回调信息等能力,您可以将其搭建在 ECS 云服务器上自行开发搭建。

    开发者要使用阿里云点播服务Api和客户端SDK,阿里云会对每一次发起的请求根据当前的操作验证用户身份,即该账号是否拥有相应的权限,验证用户身份都需要使用AccessKey。

如何使用视频点播服务

  1. 开通视频点播服务

    1. 在阿里云官网视频点播产品详情页快速了解产品信息。
    2. 单击立即开通,在订购页面选择计费方式并确认订单。产品开通
    3. 开通完成后,即可进入视频点播控制台 概览 页面,开始使用点播服务。概览
  2. 添加域名

    1. 进入视频点播控制台,添加用于视频分发与加速的自有域名。

      注意:请确保该域名已经备案,并拥有使用权。

      添加域名

    2. 域名添加后,可获得阿里云加速域名CNAME地址,完成CNAME配置后即完成域名添加操作。

      注意:

      • 请根据提示信息,到您的域名解析商处完成CNAME绑定。如果使用万网、新网或DNSPod域名,域名绑定操作参考 CNAME绑定
      • 更多详细如果使用点播服务请查看相关文档

业务后台服务

  • 配置RAM(子账号AK)

    在使用阿里云服务端API的时候,都需要使用阿里云的AccessKey进行访问,直接使用主AccessKey访问存在较大的安全风险。使用RAM子账号可以帮助您有效避免AccessKey或者密码泄露导致的安全问题。

    配置权限时,需要选择“AliyunVODFullAccess”和“AliyunSTSAssumeRoleAccess”两个权限。其中,“AliyunVODFullAccess”权限是用来访问点播服务API的,“AliyunSTSAssumeRoleAccess”权限主要是用来后续获取STS权限。如下图:

    RAM权限配置

  • 配置STS(子账号临时AK)

    阿里视频云在客户端产生的视频文件需要上传到云端,此时需要把一个鉴权信息下发到客户端。上一章节中讲到的RAM是永久有效的,不适合在客户端上进行存储和分发,因而阿里视频云需要一个临时有效的AK给客户端调用。具体操作步骤如下:

    1. 新建角色

      在角色配置向导页面,选择用户角色 > 当前用户,根据提示完成角色创建。

      新建角色

    2. 配置角色权限

      角色配置

      注意:请按照上图选择视频点播服务的权限。

    3. 获取STS(这部分在业务后台服务APPServer中编写)

      先看一段代码:

      1. static AssumeRoleResponse assumeRole(String accessKeyId, String accessKeySecret,
      2. String roleArn, String roleSessionName, String policy,
      3. ProtocolType protocolType) throws ClientException {
      4. try {
      5. // 创建一个 Aliyun Acs Client, 用于发起 OpenAPI 请求
      6. IClientProfile profile = DefaultProfile.getProfile(REGION_CN_HANGZHOU, accessKeyId, accessKeySecret);
      7. DefaultAcsClient client = new DefaultAcsClient(profile);
      8. // 创建一个 AssumeRoleRequest 并设置请求参数
      9. final AssumeRoleRequest request = new AssumeRoleRequest();
      10. request.setVersion(STS_API_VERSION);
      11. request.setMethod(MethodType.POST);
      12. request.setProtocol(protocolType);
      13. request.setRoleArn(roleArn);
      14. request.setRoleSessionName(roleSessionName);
      15. request.setPolicy(policy);
      16. // 发起请求,并得到response
      17. final AssumeRoleResponse response = client.getAcsResponse(request);
      18. return response;
      19. } catch (ClientException e) {
      20. throw e;
      21. }
      22. }
      • accessKeyId和accessKeySecret指RAM中保存下载的AK信息;
      • roleArn指角色详情页的Arn值,如下图:roleArn
      • roleSessionName:自定义,主要用于后续操作审计时使用。
      • policy:是对每次获取权限做一次更加细致的权限控制。
        1. String policy = "{\n" +
        2. " \"Version\": \"1\",\n" +
        3. " \"Statement\": [\n" +
        4. " {\n" +
        5. " \"Action\": \"vod:*\",\n" +
        6. " \"Resource\": \"*\",\n" +
        7. " \"Effect\": \"Allow\"\n" +
        8. " }\n" +
        9. " ]\n" +
        10. "}";
    4. 获取到的数据下发到客户端提供给上传API进行视频文件上传。

合作伙伴

1.人脸ar方案—相芯科技(faceunity)提供了短视频场景中视频的美颜(磨皮、美白、红润等)、美肌(大眼瘦脸)等能力。目前官方的demo高级美颜和美肌是由faceunity提供,有第三方费用,可通过云市场和合作伙伴沟通。详情请点击:人脸ar方案

2.在线音乐方案—太合音乐DMH服务提供了短视频场景中在线音乐资源的能力。DMH服务涵盖不同曲风、万首高质量可转授歌曲,提供了SDK/API等对接方式。在线音乐有第三方费用,按调用次数计费,可直接和合作伙伴沟通。详情请点击:在线音乐方案

3.短视频特效制作方案—中旌影视提供了提供海量的短视频创意主题模板(mv),拥有强大的后期制作,短视频特效素材创作能力。特效制作有第三方费用,可直接和合作伙伴沟通。详情请点击:短视频特效制作方案

附录