文档

直播转码

直播转码可以解决推流端码率较高或较低而导致播放效果不好等问题。通过阅读本文,您可以快速了解直播转码的使用场景、使用限制、转码功能、模板参数、转码规则和宽度自适应等功能。

使用场景

  • 当推流端码率较高而客户端带宽资源有限会导致视频播放卡顿;当推流端码率较低时会导致视频播放效果不好。使用直播转码服务可以快速帮您解决这些问题。

  • 播放器插件需要实现多码率切换。前端播放器插件设置码率切换,需要同一路推流同时提供多种码率的播流地址。视频直播的实时转码功能能为同一路推流同时提供多种码率的播流地址服务。

    • 使用H.264编码进行推流,实时转码成H.265编码直播流进行播放,可以降低带宽。

    • 使用H.265编码进行推流,实时转码成低码率H.265编码的直播流进行播放。

    • 为了解决H.265在浏览器不兼容问题需要实时转码成H.264编码的直播流进行播放。

使用限制

  • 根据域名+AppName进行转码模板设置时,同一个模板里转码模板类型不能同时配置标准模板窄带高清TM模板

  • 直播中心为北京、上海、深圳、新加坡时,每个域名下最多支持50路转码并发流,也就是一个域名下最多同时输出50路转码流。其他直播中心每个域名下最多支持10路转码并发流。如果一路高清分辨率直播流输入,同时转码成标清和流畅分辨率进行输出播放,算2路转码流。

  • 当提供的直播服务不能满足您当前业务需求时,请联系您的阿里云客户经理或通过阿里云其它渠道咨询。

模板参数

转码模板支持通用模板、自定义模板、RTS转码模板和多码率转码模板。

通用模板中的模板为系统预设模板包括转码模板的ID和转码输出分辨率。转码输出的码率都是系统预设置不支持修改。如果通用模板不能满足您的要求,您可以使用自定义模板或RTS转码模板,自定义转码模板支持编码格式、分辨率、码率、帧率、视频GOP、触发转码、转码模板ID的设置。

通用转码和自定义转码分别提供标准模板和窄带高清TM模板。RTS转码在标准模板和窄带高清TM模板基础上提供RTS超低延时播放SDK所需的B帧和OPUS参数设置。

  • 通用转码

    说明

    转码采用宽度自适应的算法,根据转码后视频的高度自适应转码后视频的宽度。请参见宽度自适应

    • 标准模板

      模板名称

      模板ID

      分辨率(宽*高)

      码率(kbps)

      转码账单中输出规格

      流畅

      lld

      360

      460

      LD

      标清

      lsd

      432

      640

      SD

      高清

      lhd

      648

      1200

      SD

      超清

      lud

      1080

      2100

      HD

    • 窄带高清 TM模板

      模板名称

      模板ID

      分辨率(宽*高)

      码率(kbps)

      转码账单中输出规格

      流畅

      ld

      360

      ≤420

      LD

      标清

      sd

      432

      ≤580

      SD

      高清

      hd

      648

      ≤1100

      SD

      超清

      ud

      1080

      ≤1900

      HD

  • 自定义转码

    自定义转码的模板参数由用户自行定义。

    说明

    自定义转码中窄带高清TM模板暂不支持选择H.265编码格式,如果您需要,请联系您的阿里云客户经理或通过阿里云其它渠道咨询。

  • RTS转码

    RTS转码的模板参数由用户自行定义。

  • 多码率转码

    多码率转码的模板参数由用户自行定义。

转码功能介绍

  • 转码配置

    转码配置可以使用以下两种配置方式:

    • 控制台配置:

      具体操作,请参见通用转码自定义转码RTS转码多码率转码

    • API和SDK配置:

      API和SDK提供以下接口供用户使用:

      Java SDK添加转码配置的代码示例如下:

      AddLiveStreamTranscodeRequest addLiveStreamTranscodeRequest = new AddLiveStreamTranscodeRequest();
      addLiveStreamTranscodeRequest.setDomain("<DomainName>");
      addLiveStreamTranscodeRequest.setApp("<AppName>");
      addLiveStreamTranscodeRequest.setTemplate("hd");
      addLiveStreamTranscodeRequest.setSnapshot("no");
      addLiveStreamTranscodeRequest.setRecord("no");
      try {
          AddLiveStreamTranscodeResponse addLiveStreamTranscodeResponse = client.getAcsResponse(addLiveStreamTranscodeRequest);
          System.out.println(addLiveStreamTranscodeResponse.getRequestId());
          // todo something.
      } catch (ServerException e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
      } catch (ClientException e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
      }           
    说明
    • 如果更改转码配置,需要进行重新推流后配置才可生效。

    • 使用JAVA SDK,具体请参见Java SDK使用说明

  • 转码使用

    转码配置重新推流后提供多种码率的多条直播地址。您可以登录视频直播控制台,选择直播管理 > 流管理,在对应的推流记录中查看直播地址。其中原画(Original)即原始码率地址,自定义转码即直播转码后的地址,您可在播流地址上单击复制获取直播地址或单击播放直接播放。如果您需要在业务端代码中使用该地址,可直接在原始码率的StreamName后添加转码流。

转码规则

  • 视频直播支持延时转码,系统监测到某一路直播流无人观看时,不会执行转码。检测到有人观看后启动转码,转码过程中5分钟内检测到无人观看即会停止转码。

  • 每一路流仅执行一次转码。

  • 转码不是必须服务,可按需配置。

  • 转码目前支持FLV、RTMP、HLS、RTS格式。

宽度自适应

转码采用宽度自适应的算法,根据转码后视频的高度自适应转码后视频的宽度。 高度自适应

  • 本页导读 (1)