云端合流

阿里云视频直播为您提供云端合流服务,您可以调用开放接口,通过直播中心的合流服务器拉取多个视频源,依靠云端强大的处理能力将多路视频源按照您设置的布局进行合流,合成一路直播流后,通过边缘加速分发给观众观看。本文介绍云端合流的功能特性和使用方法。

使用限制

  • 云端合流属于收费功能,当前为公测阶段,您可以免费使用,公测结束后将正常收费,具体时间另行通知。

  • 每个UID下并发合流任务上限为10路,如需扩充请提交工单。关于如何提交工单,请参见联系我们

  • 具体支持云端合流功能的直播中心,请参见服务地域

应用场景

电竞直播:如在电竞赛事过程中,一般需要根据镜头在屏幕某一块区域给出选手视频特写。就可以将直播流和选手摄像头两路流推送至直播中心进行合流,观众观看时看到的就是合流后的直播流。

监控场景:监控摄像头一般安装于不同的地点。如在监控室内需要在一个屏幕上显示多个摄像头的画面,就可以通过云端合流进行实现,将多个摄像头推送至直播中心的流进行合流显示。

功能特性

功能

描述

特性

多路合流

将多路视频源推至直播中心,合流为一路直播流。

  • 支持添加RTMP、FLVHLS协议的直播流。

    说明

    暂不支持超低延时直播ARTC协议直播流。

  • 支持添加文件流。

  • 最多添加8个视频源。

预设布局

提供预设的合成直播流画面布局,满足不同场景下的直播。

提供7种预设布局,布局请参见合流预设布局参考

自定布局

根据需要,添加自定义合成后直播流的布局。

支持设置窗格个数、尺寸和位置。

合流输出

将合流的多路视频源以直播流的形式输出。

支持自定义合流输出域名,可用该域名观看合流后的内容。

合流查询

查询当前合流任务列表及相应配置信息。

支持实时查询。

合流更新

在合流观看过程中更新视频源、合流布局,且无缝切换。

不支持更新输出分辨率等内容。

自动删除

自动删除合流任务。

支持在创建合流任务时设定自动删除时间,到期合流任务自动删除以节省流量,默认为7天。

重要

在合流创建成功后不可再修改。

合流回调

合流任务状态回调。

支持在创建合流时向您的回调地址发送创建成功或创建失败的消息,以便让您及时获取合流任务创建的结果。

使用方法

视频直播支持通过调用API接口的方式,使用云端合流服务,包括创建合流、更新合流、查询合流和删除合流。调用次序如下:

image

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。更多语言SDK,请参见视频直播SDK

具体调用方法和参数请参见如下API文档:

场景

描述

接口

创建合流(预设布局)

使用预设布局模板创建合流。

MixStreamLayout-2-1模板为例,最终效果为:压缩2-1

CreateMixStream

  • 传入输入源配置(个数、类型、地址、叠加顺序、尺寸、位置、填充方式)。

  • 传入合流播放地址(域名、Appname、Streamname)。

  • 传入合流输出分辨率。

创建合流(自定布局)

使用自定义布局创建合流。

以两路输入流为例,最终效果为:自定义布局

CreateMixStream

  • 传入输入源配置(个数、类型、地址、叠加顺序、尺寸、位置、填充方式)。

  • 传入合流播放地址(域名、Appname、Streamname)。

  • 传入合流输出分辨率。

更新合流

更新合流的视频源或布局。

UpdateMixStream

传入输入源配置(个数、类型、地址、叠加顺序、尺寸、位置、填充方式)。

说明

UpdateMixStream的参数为全量参数,调用时需要传入更新后的全量配置。

例如:原合流为A、B、C、D共四路视频源合流,目标为删除其中C、D两路视频源,那么需要调用UpdateMixStream传入A、B两路视频源和相关配置。

查询合流

查询在线合流列表和相关配置。

DescribeMixStreamList

  • 返回在线合流列表。

  • 返回合流配置。

  • 返回合流创建时间、修改时间。

  • 返回合流播放地址。

删除合流

当您不需要使用某条合流后,请删除此条合流,否则合流将一直处于输出状态。

DeleteMixStream

合流预设布局参考

云端合流为您提供7种预设布局以满足不同直播场景,使用时传入相应布局ID即可,无需额外配置。

展开查看预设布局

布局参数说明如下:

说明
  • FillSizeNormalized:表示该Layer元素需要填充的尺寸大小。

    [w,h]:w、h取值范围[0~1]。其中宽高都是进行了归一化计算。

    例如:[0.2,0.3]代表水平占比20%,垂直占比30%。

  • FillPositionNormalized:表示该Layer元素填充区位置归一化值。

    [x,y]:x、y的取值范围[0~1]。

    例如:[0.1,0.1]代表左上角水平偏移10%, 垂直偏移10%。

布局ID

描述

布局方格对应ID

样式

MixStreamLayout-1-1

1路视频源。布局参数如下:

  • FillSizeNormalized:[1,1]

  • FillPositionNormalized:[0,0]

1-1 布局方格ID

压缩1-1

MixStreamLayout-2-1

2路视频源。布局参数如下:

1路:

  • FillSizeNormalized:[0.5,1]

  • FillPositionNormalized:[0,0]

2路:

  • FillSizeNormalized:[0.5,1]

  • FillPositionNormalized:[0.5,0]

MixStreamLayout-2-1-layout.png

MixStreamLayout-2-1-pic2.jpg

MixStreamLayout-2-2

2路视频源。布局参数如下:

1路:

  • FillSizeNormalized:[1,1]

  • FillPositionNormalized:[0,0]

2路:

  • FillSizeNormalized:[0.25,0.25]

  • FillPositionNormalized:[0.7,0.7]

2-2 ID

压缩2-2

MixStreamLayout-2-3

2路视频源。布局参数如下:

1路:

  • FillSizeNormalized:[1,1]

  • FillPositionNormalized:[0,0]

2路:

  • FillSizeNormalized:[0.25,0.25]

  • FillPositionNormalized:[0.7,0.05]

2-3 ID

压缩2-3

MixStreamLayout-3-1

3路视频源。布局参数如下:

1路:

  • FillSizeNormalized:[1,1]

  • FillPositionNormalized:[0,0]

2路:

  • FillSizeNormalized:[0.5,0.5]

  • FillPositionNormalized:[0,0.5]

3路:

  • FillSizeNormalized:[0.5,0.5]

  • FillPositionNormalized:[0.5,0.5]

3-1 ID

压缩3-1

MixStreamLayout-3-2

3路视频源。布局参数如下:

1路:

  • FillSizeNormalized:[1,1]

  • FillPositionNormalized:[0,0]

2路:

  • FillSizeNormalized:[0.3,0.3]

  • FillPositionNormalized:[0.1,0.6]

3路:

  • FillSizeNormalized:[0.3,0.3]

  • FillPositionNormalized:[0.6,0.6]

3-2 ID

压缩3-2

MixStreamLayout-4-1

4路视频源。布局参数如下:

1路:

  • FillSizeNormalized:[0.5,0.5]

  • FillPositionNormalized:[0,0]

2路:

  • FillSizeNormalized:[0.5,0.5]

  • FillPositionNormalized:[0.5,0]

3路:

  • FillSizeNormalized:[0.5,0.5]

  • FillPositionNormalized:[0,0.5]

4路:

  • FillSizeNormalized:[0.5,0.5]

  • FillPositionNormalized:[0.5,0.5]

4-1 ID

压缩4-1

如果以上布局不能满足您的业务需求,您也可以进行自定义布局,详情可参见创建合流(自定布局)

常见问题

云端合流和本地混流的区别?

云端合流是由客户端将多路流推送至直播中心,由直播中心进行合流,此过程接收多路流输出一路流。本地混流是在本地将多路流合并为一路流,再推送至直播中心,此过程接收一路流输出一路流。

说明

如您的业务需要采集不同客户端进行合流,可采用云端合流。如您的业务采集单个客户端的不同设备(如屏幕和摄像头)进行合流,则可以使用本地混流。如想了解本地混流,可参见Android推流SDK功能使用