功能描述
实时视频传输过程中,Qtt SDK 通常会启动默认的视频模块进行采集和渲染。在以下场景中,你可能会发现默认的视频模块无法满足开发需求:
- app 中已有自己的视频模块
- 希望使用非 Camera 采集的视频源,如录屏数据
- 需要使用自定义的美颜库或有前处理库
- 某些视频采集设备被系统独占。为避免与其它业务产生冲突,需要灵活的设备管理策略
接口描述
public class ChannelEngine {
public int setExternalVideoSource(boolean enable, boolean useTexture);
public int pushExternalVideoFrame(ExternalVideoFrame frame);
}
|
注:传输视频帧。详见ExternalVideoFrame
示例代码
N21数据格式使用方法
ExternalVideoFrame frame = new ExternalVideoFrame(); frame.buf = data; frame.format = ExternalVideoFrame.FORMAT_NV21; frame.stride = DEFAULT_CAPTURE_WIDTH; frame.height = DEFAULT_CAPTURE_HEIGHT; frame.rotation = 270; frame.timeStamp = System.currentTimeMillis(); if (engine != null) { engine.pushExternalVideoFrame(frame); }
|
TEXTURE_2D数据格式使用方法
ExternalVideoFrame frame = new ExternalVideoFrame(); frame.textureID = textureId; frame.format = ExternalVideoFrame.FORMAT_TEXTURE_2D; frame.transform = mTransform; frame.stride = DEFAULT_CAPTURE_HEIGHT; frame.height = DEFAULT_CAPTURE_WIDTH; frame.timeStamp = System.currentTimeMillis(); if (engine != null) { engine.pushExternalVideoFrame(frame); }
|