RTS直播播放

更新时间:
复制为 MD 格式

超低延时直播RTS(Real-time Streaming)是视频直播的重要增值功能,通过阿里云播放器SDK实现千万级并发下的毫秒级延时直播,解决传统直播3~6秒延时问题,保障了超低延时、低卡顿、秒开的流畅体验。本文介绍RTS直播播放的实现方法。

重要

更多功能、API文档及常见问题,请参考Android播放器

RTS播放

Android播放器SDK集成Native RTS SDK实现Native端低延时直播功能,详情请参见Android端实现RTS拉流

详细代码示例可参考API-Example RTS超低延时直播播放(RtsLiveStream)模块,该工程是基于Java的阿里云播放器SDK Android示例工程,能够帮助开发者快速掌握SDK核心功能集成。

RTS多清晰度

说明
  • 支持阿里云视频直播的播放地址或经直播转码后(现支持通用转码和自定义转码)的转码流地址,直播转码详情请参见转码管理;地址获取方式请参见生成直播地址

  • 支持RTS协议和HTTP-FLV协议直播流的不同清晰度切换。

  • 推流的gop size需要设置为1s2s,过大会导致切流跳变。

  • 播放域名需开启选项:FLV播放时输出RTMP时间戳、上游断流后输出RTMP时间戳;转码配置需开启选项:时间戳随源、关键帧随源,否则会导致切流卡顿或失败。如需开启请提交工单申请。

  • 切换到不符合上述要求的流地址时,会切换失败。

切换清晰度

通过switchStream方法切换清晰度,传递对应新清晰度的URL即可。

//起播
aliPlayer.setUrlSource(oldUrl);
aliPlayer.prepare();
aliPlayer.start();

//播放过程中切换至另一个url
aliPlayer.switchStream(newUrl);

清晰度切换通知

清晰度切换成功与失败回调。

aliPlayer.setOnStreamSwitchedListener(new IPlayer.OnStreamSwitchedListener() {
    @Override
    public void onSwitchedSuccess(String url) {
        Log.i("SwitchStream", "switch success, url = " + url);
    }

    @Override
    public void onSwitchedFail(String url, ErrorInfo errorInfo) {
        Log.i("SwitchStream", "switch failed, url = " + url + ", error=" + errorInfo.getMsg());
    }
});