视频点播快速入门

阿里云视频点播(ApsaraVideo VOD)是集音视频管理、处理和分发播放于一体的一站式解决方案。本文介绍如何从零开始完成视频点播服务集成,搭建一个安全、经济且适用于生产环境的视频播放解决方案。

产品架构

视频点播架构图20220304

前提条件

说明

视频点播为新用户提供了新人试用产品,可以充分体验和使用服务。

地域选择

视频点播存在服务地域隔离。就近选择服务地域可以有效降低网络延迟,提高数据传输效率。同时,不同的服务区域支持的功能存在差异,详情请参见服务地域

方案搭建

步骤一:配置存储

  1. 进入点播控制台存储管理,在上方菜单栏的服务区域,就近选择您要开通的服务地域。image

  2. 单击启用点播系统Bucket,选择存储冗余类型。如果业务需要更高的可用性保障,建议选择同城冗余存储。

    • 标准存储-同城冗余(ZRS)

      采用多可用区(AZ)内的数据冗余存储机制,将用户的数据冗余存储在同一地域(Region)的多个可用区。当某个可用区不可用时,仍然能够保障数据的正常访问。image

    • 标准存储-本地冗余(LRS)

      采用单可用区(AZ)内的数据冗余存储机制,将用户的数据冗余存储在同一个可用区内多个设施的多个设备上,确保硬件失效时的数据持久性和可用性。image

      启用存储地址需要一段时间,请您耐心等待。当系统提示存储地址启用成功,且存储地址的状态为正常后,方可使用该存储地址。

步骤二:上传音视频

重要

在上传音视频前配置好转码模板组,可以确保视频上传后能自动生成多种清晰度的版本,优化播放体验并节省带宽。

  1. (可选)进入点播控制台转码模板组,点击添加转码模板组,根据实际需求进行配置并保存。详情可参考音视频转码image

  2. 选择上传方式

    1. SDK上传(生产环境推荐

      通过后端服务调用SDK获取上传凭证,然后由客户端(Web/App)直接上传至点播服务。这是最安全、最高效的方式。

      说明

      详细代码示例请参考媒体上传概述

      python# Python示例:后端服务获取上传凭证和地址
      from aliyunsdkvod.request.v20170321 import CreateUploadVideoRequest
      from aliyunsdkcore.client import AcsClient
      import json
      
      # 1. 初始化客户端
      # 请替换为您的AccessKey ID、AccessKey Secret和地域ID
      client = AcsClient('your-access-key-id', 'your-access-key-secret', 'cn-shanghai')
      
      # 2. 创建API请求并设置参数
      request = CreateUploadVideoRequest.CreateUploadVideoRequest()
      request.set_Title('My Test Video')
      request.set_FileName('video_test.mp4')
      # request.set_TemplateGroupId('your-transcode-template-group-id') # 可选,指定转码模板
      
      # 3. 发起请求并获取响应
      response = client.do_action_with_exception(request)
      response_data = json.loads(response)
      
      # 4. 将UploadAddressUploadAuth返回给客户端
      upload_address = response_data['UploadAddress']
      upload_auth = response_data['UploadAuth']
      video_id = response_data['VideoId']
      
      # 客户端拿到凭证后,使用上传SDK完成文件上传。
    2. 控制台上传(数量少且文件小时,可进行上传或者测试)

      进入点播控制台媒资库音/视频,点击上传音/视频,进入上传音/视频页面,选择本地上传并添加上传文件。image.png

    3. URL批量拉取(没有存储在本地且支持通过公网URL访问时,适用于离线搬站),详细操作可参见URL批量拉取上传

    4. Windows客户端(多个大文件批量上传),详细操作可参见通过Windows客户端上传文件

步骤三:配置加速域名(可选)

获取播放地址进行播放会按存储流出流量计费。配置加速域名后,加速服务费用相较于存储流出流量费用享有50%-70%的价格优惠。详情可参见添加加速域名

步骤四:集成播放

  1. 获取播放凭证(生产环境推荐

    1. 后端API调用

      后端服务需要调用API,为每个播放请求动态生成一个有时效性的播放凭证(PlayAuth)。

      python# Python示例:获取播放凭证
      from aliyunsdkvod.request.v20170321 import GetVideoPlayAuthRequest
      
      # client已在上传步骤中初始化
      request = GetVideoPlayAuthRequest.GetVideoPlayAuthRequest()
      request.set_VideoId('your-video-id') # 替换为实际的VideoId
      request.set_AuthInfoTimeout(3000)  # 凭证有效期,单位:秒。此处为50分钟。
      
      response = client.do_action_with_exception(request)
      play_auth = json.loads(response)['PlayAuth']
      
      # 将获取到的 play_auth 和 video_id 返回给前端
    2. 前端播放器集成

      前端播放器使用从后端获取的 vid 和 playAuth 来初始化播放。

      Web

      <!-- Web播放器示例 -->
      <div id="player-container"></div>
      <script src="https://g.alicdn.com/de/prismplayer/2.15.2/aliplayer-min.js"></script>
      
      <script>
        var player = new Aliplayer({
          id: 'player-container',
          width: '100%',
          height: '500px',
          vid: 'your-video-id',      // 从后端获取
          playauth: 'your-play-auth', // 从后端获取
          cover: 'https://your-domain.com/cover.jpg' // 封面图URL
        }, function (player) {
          console.log('播放器创建成功');
        });
      </script>

      Android

      1. 创建播放器
      AliPlayer player = AliPlayerFactory.createAliPlayer(context);
      
      // 2. 配置播放源
      VidAuth vidAuth = new VidAuth();
      vidAuth.setVid("your-video-id");
      vidAuth.setPlayAuth("your-play-auth");
      vidAuth.setRegion("cn-shanghai"); // 设置地域
      
      // 3. 准备播放
      player.setDataSource(vidAuth);
      player.prepare();

      iOS

      1. 创建播放器
      let player = AliPlayer()
      
      // 2. 配置播放源
      let vidAuth = AVPVidAuthSource()
      vidAuth.vid = "your-video-id"
      vidAuth.playAuth = "your-play-auth"
      vidAuth.region = "cn-shanghai" // 设置地域
      
      // 3. 准备播放
      player.setSource(vidAuth)
      player.prepare()
  2. URL鉴权方式

    URL鉴权方式将签名信息直接附加在URL中,安全性低于播放凭证方式。适用于一些不方便改造播放器的场景。详情可参见URL鉴权

  3. Web播放器在线体验

    进行音视频上传测试或体验时,也可以直接使用Web播放器在线体验

    1. 进入点播控制台媒资库音/视频,单击对应视频操作列下的管理

    2. 选择视频地址标签页,点击对应清晰度操作栏下的复制地址image.png

    3. Web播放器中使用播放地址进行播放。

扩展

  • 通过设置转码模板:音视频转码,可以实现在上传视频时自动转码并完成多清晰度视频输出。

  • 通过设置工作流:工作流,能够在上传视频后自动执行视频处理(如转码、截图、水印添加等)。

  • 通过视频剪辑:视频剪辑,可以在线或通过API/SDK对视频进行专业剪辑操作。

  • 通过配置加速域名:添加加速域名,可以加速视频上传和下载并享受流量优惠。

常见问题

如何进行批量音视频上传?

您可以通过PC客户端工具、URL批量拉取和上传SDK进行音视频批量上传,详情请参见媒体上传概述

如何将存放在OSS中的音视频迁移到视频点播?

  1. 满足如下两个条件后,您可以将OSS自有Bucket添加到视频点播中。

    • 确保目标地域下已存在OSS Bucket,并且该Bucket为标准存储类型。

    • 已授权视频点播服务访问您的OSS资源,可通过云资源访问授权页面完成授权。

  2. 您也可以在准备好需要迁移的源文件地址后通过上传工具迁移,详情请参见媒体上传概述

视频讲解