Skip to content

ImgTexMixer

buliaoyin edited this page Nov 22, 2017 · 4 revisions

图像混合模块

直播推流时, 可能会有叠加水印, 叠加文字, 叠加背景图片等需求。
SDK内提供了 ImgTexMixer 类来实现图层间的混合功能。

1. 功能特性

  • 该模块最大支持8个图层的混合;

  • 每个输入图层有一个0-7的index值,该值越小则越靠下层;

  • 每个输入图层均可单独设定绘制区域、透明度、缩放模式等参数;

  • 需指定一个输入图层的index值可作为main index(默认为0), 图层混合的触发频率由该图层的刷新频率决定。

2. Pin接口

该模块包含8个ImgTexFrame类型的SinkPin, 以及一个ImgTexFrame类型的SrcPin.

/**
 * Get sink pin by index
 *
 * @param index index
 * @return SinPin object or null
 */
@Override
public SinkPin<ImgTexFrame> getSinkPin(int index);

/**
 * Get source pin
 *
 * @return SrcPin object or null
 */
@Override
public SrcPin<ImgTexFrame> getSrcPin();

3. 参数配置

/**
 * 设置混合后输出的Texture的分辨率.
 */
public void setTargetSize(int outWidth, int outHeight);

/**
 * 设置指定输入源在混合时的位置及透明度信息, 其中位置参数为以输出分辨率为参考的归一化值,
 * 一般取值范围为(0, 0, 1, 1).
 */
public void setRenderRect(int idx, RectF rect, float alpha);

/**
 * 为指定输入源设置混合时的缩放模式,缩放模式支持 SCALING_MODE_FULL_FILL,
 * SCALING_MODE_BEST_FIT, SCALING_MODE_CENTER_CROP等.
 */
public void setScalingMode(int idx, int mode);

/**
 * 设置是否在绘制指定输入源时,进行镜像绘制.
 */
public void setMirror(int idx, boolean mirror);

/**
 * Set main input pin, generally the camera input
 *
 * @param index index of the main input pin, default 0
 */
public final void setMainSinkPinIndex(int index);

1. 集成指南

2. 基本功能

2.1 采集

2.2 视频处理

2.3 音频处理

3. 开放接口定义

Clone this wiki locally