端侧超分

端侧超分是基于终端的超分模型,在设备本地将视频由低清晰度转换成高清晰度,可以明显改善视频播放质量,同时降低传输成本。本文为您介绍如何在Android或iOS端配置端侧超分功能。

背景信息

随着视频业务的演进,用户对高清、超高清等观看体验的追求在不断提升。部分视频源由于制作、存储、分发限制无法提供高清晰度的版本,无法保证用户的观看体验。传统的云端超高清制作方案对带宽资源有依赖,无法满足弱网等环境的用户需求。

端侧超分功能可以平衡视频主观质量、观看体验和带宽成本,通过在本地将视频由低清晰度转换成高清晰度画质,明显提升视频观看体验的同时不增加带宽传输成本。

功能优势

类目

说明

性能及功耗

  • 处理高效:单帧视频处理时间在20ms以内,可支持30fps的视频实时超分,可适用于直播、点播等各种视频播放场景。

  • 功能强大:支持多种分辨率视频的处理,最高支持分辨率为540P视频的实时处理,可将分辨率为540P的视频处理至分辨率为1080P。

  • 功耗低:电量消耗因机型、芯片和处理视频分辨率而有所差异,功耗最低可低至每小时50mA到100mA。

兼容性

  • 机型适配:适配绝大多数当前主流机型。

  • 平台支持:支持Android和iOS平台。

功能形式

  • 插件形式,灵活易接:端侧超分功能以插件的形式进行接入,主流播放器库对端侧超分功能无任何依赖,可自由的进行插件替换和功能升级,集成方式灵活。

  • 功能库占用空间小:Android的算法库增量为408 KB,iOS的算法库增量为730 KB。

前提条件

您已获取播放器SDK License授权并购买端侧超分的增值服务。详情请参见管理License

Android端集成使用

  1. 获取端侧超分功能库。

    端侧超分的功能库,现需要您提交工单申请或联系阿里云商务申请开通。

  2. 集成端侧超分功能库。

    1. 加载端侧超分功能库。

      端侧超分功能库为动态库,可以通过以下方法加载功能库。

      System.loadLibrary(libname);
    2. 配置端侧超分功能库。

          /**
           * 设置滤镜配置。在prepare之前调用此方法。如果想更新滤镜配置,则调用updateFilterConfig()
           * @param filterConfig
           */
          /****
           * Set filter config. call this before prepare. If want update filter config, call updateFilterConfig()
           * @param filterConfig
           */
          abstract public void setFilterConfig(FilterConfig filterConfig);
      
          /**
           * 更新滤镜配置
           * @param target
           * @param options
           */
          /****
           * upadate filter config.
           * @param target
           * @param options
           */
          abstract public void updateFilterConfig(String target, FilterConfig.FilterOptions options);
      
          /**
           * 开启关闭滤镜
           * @param target  如果为空,则对所有滤镜生效
           * @param invalid  true:开启;false:关闭
           */
          /****
           * disable/enable filter.
           * @param target  if empty , disable all filters.
           * @param invalid  true: enable(default); false: disable
           */
          abstract public void setFilterInvalid(String target, boolean invalid);
  3. 使用样例。

    //filterConfig内部为json实现,具体的json格式如下
    player.setFilterConfig(filterConfig);
    //设置端侧超分功能有效,target同下面的json中“target”对应的value
    player.setFilterInvalid(target,false);
    [
      {
        "target":"sr",
        "options":{
          //该功能暂不需要具体option
        }
      }
    ]

iOS端集成使用

  1. 获取端侧超分功能库。

    端侧超分的功能库,现需要您提交工单申请或联系阿里云商务申请开通。

  2. 集成端侧超分功能库。

    端侧超分功能库为framework形式的动态库,需要在Xcode的frameworks and libraries中添加该功能库。可以通过以下方法添加功能库。

    说明

    下述示例代码以5.5.4.0版本为例,实际版本请根据您的业务情况选择。iOS播放器SDK的发布版本请参见iOS播放器SDK

    pod 'AliPlayerSDK_iOS_NORMAL_SR_FILTER', '5.5.4.0'
  3. 使用样例。

    // 初始化
    AVPFilter* srFilter = [[AVPFilter alloc] initWithTarget:@"normal_sr"]; // 使用这个库,目前target名称必须为normal_sr,不能自定义其他的字符串
    AVPFilterOptions* srOptions = [[AVPFilterOptions alloc] init];
    [srOptions setOptions:@"path" value:@"xxx"]; // xxx为自定义沙盒相对路径
    [srFilter setOptions:srOptions];
    [filterConfig addFilter:srFilter];
    [self.player setFilterConfig:filterConfig];
    
    // 开始使用
    [self.player setFilterInvalid:@"normal_sr" invalid:YES]; // invalid设置YES为开启,NO为关闭