趣视频服务端用于趣视频APP与视频点播服务之间数据交互、业务逻辑处理及运营侧数据的管理。通过阅读本文,您可以了解到趣视频服务端的集成操作方法。

前提条件

操作步骤

  1. 下载趣视频AppSever及管理控制台源码文件ApsaraVideo_QuVideo_v1.4.0_Server_20191226.zip。更多信息,请参见趣视频Demo下载
  2. 执行以下命令,上传源码到ECS服务端。本文以源码文件ApsaraVideo_QuVideo_v1.4.0_Server_20191226.zip在当前目录,ECS服务器用户为root,IP地址为10.10.10.101,上传路径为/root/workspace/为例说明。
    scp ApsaraVideo_QuVideo_v1.4.0_Server_20191226.zip root@10.10.10.101:/root/workspace/
  3. 登录ECS服务端,解压源码文件。
    cd /root/workapace

    unzip ApsaraVideo_QuVideo_v1.4.0_Server_20191226.zip

    说明 如果没有安装unzip,需要先执行apt install unzip安装unzip。
  4. 初始化及配置数据库。
    1. 创建名称为voddemo的数据库。
      cd /root/workspace/ApsaraVideo_QuVideo_v1.4.0_Server_20191226/sql

      mysqladmin -u root -p create voddemo

    2. 创建表以及管理员账号。
      mysql -u root -p voddemo < ./appserver_create_table.sql
      说明 appserver_create_table.sql除了完成建表,还通过插入语句,创建了一个控制台管理员账号(用户名admin,密码123456),使用该账号可以在完成控制台集成后以管理员身份登陆Demo控制台。
    3. 修改数据库的大小写检查规则。
      1. 编辑数据库的配置文件。

        vim /etc/mysql/mysql.conf.d/mysqld.cnf

      2. I键,在文件末尾增加lower_case_table_names=1
      3. Esc键,输入:wq!保存并退出。
      4. 重启完成数据库配置。

        service mysql restart

    4. 配置数据库地址
      1. 编辑源码的配置文件。

        vim /root/workspace/ApsaraVideo_QuVideo_v1.4.0_Server_20191226/src/main/resources/application.properties

      2. I键,按照如下修改。
        spring.datasource.url = jdbc:mysql://数据库IP地址(127.0.0.1):3306/数据库名(voddemo)?useSSL=false&useUnicode=true&characterEncoding=UTF-8
        spring.datasource.username = 数据库登录用户名,例如root
        spring.datasource.password = 数据库登录密码
        说明
        • 若数据库和服务端都运行在ECS,则数据库IP地址可以设置为127.0.0.1,否则要使用数据库所在机器的IP地址。
        • 数据库初始化中,创建的数据库名为voddemo。
      3. Esc键,输入:wq!保存并退出。
  5. 配置RAM角色。关于RAM角色,请参见RAM子账号
    1. 登录RAM控制台。更多信息,请参见RAM控制台
      说明 请使用主账号登录RAM控制台。
    2. 单击左侧导航栏的RAM角色管理,然后单击创建RAM角色
    3. 在创建RAM角色页面,当前可信实体类型选择阿里云账号,单击下一步
    4. 填写角色名称,云账号选择当前云账号,单击完成。此处以角色名称alivc-demo-role为例介绍。
    5. 单击为角色授权,进入添加权限页面。
    6. 在系统策略下选择AliyunVODFullAccess,单击确定,如下所示。
      server_config_01
    7. RAM角色管理页面,单击创建好的RAM角色名称,如alivc-demo-role,可查询ARN。此处建议将RAM角色名称及ARN记录到本地,方便后续使用。
    8. RAM角色管理页面,单击创建好的RAM角色名称,如alivc-demo-role,单击信任策略管理页签,然后单击修改信任策略,将信任策略修改为如下:
      {
          "Statement": [
              {
                  "Action": "sts:AssumeRole", 
                  "Effect": "Allow", 
                  "Principal": {
                      "Service": [
                          "ecs.aliyuncs.com"
                      ]
                  }
              }
          ], 
          "Version": "1"
      }

      表示该角色为一个服务角色,受信云服务(ECS)可以扮演该角色。若未修改信任策略,该RAM角色将无法附加到ECS实例上。

    9. 将RAM角色附加到ECS实例上。

      在OpenAPI Explorer使用ECS的AttachInstanceRamRole接口,详情请参见OpenAPI Explorer。设置如下所示:

      server_config_02
      说明
      • RegionId:ECS实例所在的地域ID,需要前往ECS控制台查询,如华东2(上海)。
      • RamRoleName:RAM角色的名称。本示例中为alivc-demo-role。
      • InstanceIds:需要附加RAM角色的服务端ECS实例ID,需要前往ECS控制台查询,ECS控制台查询,注意要以数组形式填写,如:["i-bp135jrddxxf9tgo****"]。

      单击发起调用,调用成功后可在右侧调试结果中看到success反馈。

    10. 在ECS终端执行以下命,验证RAM角色和ECS实例是否关联成功。
      curl http://100.100.100.200/latest/meta-data/ram/security-credentials/alivc-demo-role
      若显示如下信息,表示STS临时授权返回成功,即RAM角色和ECS实例关联成功。
      {
      "AccessKeyId" : "STS.XXXXXXXXXXXX",
      "AccessKeySecret" : "XXXXXXXXXXXXXXXX",
      "Expiration" : "2020-11-20T14:33:31Z",
      "SecurityToken" : "XXXXXXXXXXXXXXXXXXXXXX",
      "LastUpdated" : "2020-11-20T08:33:31Z",
      "Code" : "Success"
      }
      说明 每个ECS实例只可附加一个RAM角色,如果您需要更换RAM角色,需要在OpenAPI Explorer中调用DetachInstanceRamRole,解除该ECS上的RAM角色附加后,再次使用AttachInstanceRamRole重新附加RAM角色。
    11. 配置RAM相关信息。
      1. 编辑源码的配置文件。

        vim /root/workspace/ApsaraVideo_QuVideo_v1.4.0_Server_20191226/src/main/resources/application.properties

      2. I键,按照如下修改。server_config_03
        说明
        • REGION_CN_HANGZHOU表示VOD服务所在区域,如cn-shanghai代表华东2(上海)。
        • roleArn表示RAM角色控制台获取到的ARN。
        • roleSessionName表示临时Token的会话名称(自定义填写)。
        • roleName表示RAM角色控制台获取到的RAM角色名称,本示例中为alivc-demo-role。
      3. Esc键,输入:wq!保存并退出。
  6. 配置VOD。
    1. 编辑源码的配置文件。
      vim /root/workspace/ApsaraVideo_QuVideo_v1.4.0_Server_20191226/src/main/resources/application.properties
    2. I键,按照如下修改。
      server_config_04
      参数名 是否必填 说明
      TEMPLATEGROUP_ID 转码模板组ID。详情请参见转码模板组
      LONGVIDEO_TRANSCODE_TEMPLATEGROUP_ID 长视频先发后审时使用的转码模板组。
      TAB_TEMPLATEGROUP_ID 窄带高清转码模板组ID,配置后可在控制台推荐窄带高清版视频(若不填,推荐窄带高清版视频会报错)。
      DOMAIN_NAME ECS服务器地址,本例中为http://10.10.10.101:8080/。
      AVATAR_DOMAIN_NAME 头像资源地址,即ECS服务器静态资源地址,本例中为http://10.10.10.101:8080/resource/
      AVATAR_URL 头像图片文件名列表,如1.png,2.png。
      说明 请将对应的头像图片文件1.png和2.png放入/root/workspace/ApsaraVideo_QuVideo_v1.4.0_Server_20191226/src/main/webapp/resource目录中。如果头像服务未配置会造成移动端用户无头像,不影响其他功能使用。
      VOD_REGIONID VOD服务所在区域,本例中为cn-shanghai。
      OPEN_API_URL 使用太合音乐DMH服务,请参见在线音乐方案
      说明 太合音乐DMH服务提供了短视频场景中在线音乐资源的能力。DMH服务涵盖不同曲风、万首高质量可转授歌曲,提供了SDK、API等对接方式。在线音乐有第三方费用,按调用次数计费,可直接和合作伙伴沟通。DMH商务联系方式:韩暄:hanxuan@taihe.com,电话:18610319065。
      Q_SOURCE
      CALLBACK_PRIVETEKEY 回调鉴权配置中的鉴权秘钥,详情请参见回调设置
      CALLBACK_NAME 回调URL,即http://ECS公网IP地址:8080/vodcallback/callback。本例中为http://10.10.10.101:8080/vodcallback/callback。
      AUDIT_SETTINGS_FLAG 审查设置,默认值为on。取值:
      • on:先审后发。
      • off:先发后审。
      auth_key 视频直播服务配置,如果未配置,直播页面会显示暂无数据。目前该版本的趣视频服务端源码中未加入直播功能,如需使用请提交工单申请预览版源码。详情请参见。
      live_domain
      package_name 拦截器中的合法包名,多个包名使用英文逗号隔开。默认值为IOS,ANDROID,TEST,com.aliyun.apsara.svideo,com.aliyun.apsaravideo,com.aliyun.solution.longvideo。
      注意
      • com.aliyun.apsara.svideo为本示例Android端包名。
      • iOS端Bundle Identifier被注册会运行失败,需要自定义Bundle Identifier(如com.<公司名>.<项目名>),用于iOS端签名,并添加在package_name中保证访问合法。
      • 拦截器只允许带有合法包名的移动端APP访问服务端,否则会造成移动端请求失败,例如提示Request failed:forbidden (403)。
    3. Esc键,输入:wq!保存并退出。
  7. 运行服务。
    1. 编译打包。
      cd /root/workspace/ApsaraVideo_QuVideo_v1.4.0_Server_20191226

      mvn clean package -Dmaven.test.skip=true

      说明
      • 如果没有安装maven,需要先执行apt install maven安装maven。
      • 具体打包时间视服务器带宽和性能而定。本例中第一次打包时间大约为30分钟。

      打包完成后,会在/root/workspace/ApsaraVideo_QuVideo_v1.4.0_Server_20191226/target/目录下生成 sdk-api-0.0.1-SNAPSHOT.jar文件。

    2. 部署jar包并启动服务。
      cd /root/workspace/ApsaraVideo_QuVideo_v1.4.0_Server_20191226/target

      nohup java -jar sdk-api-0.0.1-SNAPSHOT.jar &

      说明
      • 命令执行时会看到nohup提示,输入回车使程序进入后台运行。
      • 执行完之后会在当前目录下生成日志文件nohup.out,可通过cat nohup.out命令查看日志,若包含start success的字样,表示服务已启动成功。
      • 如果您购买的ECS内存较小,并且需要对服务端源码重新打包并部署,可执行jps命令查看当前正在运行的jar程序进程号,然后再执行kill -9 jar程序进程号关闭该进程,再重新打包并部署,否则会因为内存不足引起打包失败。