自定义视频采集和渲染
setExternalVideoFrameOutputEnable
public abstract int setExternalVideoFrameOutputEnable(boolean localEnable,boolean remoteEnable); public abstract int setExternalVideoFrameOutputEnable(boolean localEnable, boolean remoteEnable, HRTCImageBufferFormat format);
【功能说明】
设置视频数据输出使能。
- localEnable:true表示输出本地视频数据,false表示不输出本地视频数据,默认值为false。
- remoteEnable:true表示输出远端视频数据,false表示不输出远端视频数据,默认值为false。
- format:自渲染输出的视频帧图片格式,在onRenderExternalVideoFrame接口参数的videoFrameType中体现,取值请参见HRTCImageBufferFormat。
【返回参数】
- 0:成功。
- >0:失败。具体请参见客户端错误码。
setAuxiliaryExternalVideoFrameOutputEnable
public abstract int setAuxiliaryExternalVideoFrameOutputEnable(boolean localEnable,boolean remoteEnable);
【功能说明】
设置共享辅流数据输出使能。Android平台接口暂不提供本地共享数据的设置。
- localEnable:true表示输出本地共享数据,false表示不输出本地共享数据,默认值为false。
- remoteEnable:true表示输出远端共享数据,false表示不输出远端共享数据,默认值为false。
【返回参数】
- 0:成功。
- >0:失败。具体请参见客户端错误码。
setExternalVideoCapture
public abstract int setExternalVideoCapture(boolean videoEnable, HRTCVideoFrameFormat format);
【功能说明】
设置是否开启视频外部采集。需要在加入房间前调用。
【请求参数】
- videoEnable:true表示视频使用外部采集,false表示视频不使用外部采集,默认值为false。
- format:设置外部采集的视频格式,默认为I420(即yuv420P)。
【返回参数】
- 0:成功。
- > 0:失败。具体请参见客户端错误码。
如果使用外部输入视频数据,需要在加入房间后,按照一定时间间隔调用pushExternalVideoFrame接口输入视频数据。
format可选格式为yuv420p、rgba和texture2d,如果需要外部传入texture2d编码的数据,需要设置format为texture2d,否则传入yuv420p或者rgba。texture2d视频数据,kirin系列970以上芯片走texture2d硬编,其他芯片都是走texture2d软编。
setAuxExternalVideoCapture
public abstract int setAuxExternalVideoCapture(boolean videoEnable, HRTCVideoFrameFormat format);
【功能说明】
设置是否开启视频辅流外部采集。需要在加入房间前调用。
【请求参数】
- videoEnable:true表示视频使用辅流外部采集,false表示视频不使用辅流外部采集。
- format:设置外部采集的视频格式,默认为I420(即yuv420P)。
【返回参数】
- 0:成功。
- > 0:失败。具体请参见客户端错误码。
此接口与屏幕共享功能互斥,若videoEnable为true,则不能使用屏幕采集功能。
format支持texture2d,如果需要外部传入texture2d编码的数据,需要设置format为texture2d。
pushExternalVideoFrame
public abstract int pushExternalVideoFrame(HRTCVideoFrame videoFrame);
【功能说明】
输入外部视频数据。
【请求参数】
videoFrame:视频数据,具体请参见HRTCVideoFrame。
【返回参数】
- 0:成功。
- > 0:失败。具体请参见客户端错误码。
需要按照一定的时间间隔进行输入,例如,视频原本为15帧/秒,则需要间隔1000/15毫秒间隔输入视频数据。
pushAuxExternalVideoFrame
public abstract int pushAuxExternalVideoFrame(HRTCVideoFrame videoFrame);
【功能说明】
辅流输入外部视频数据。
【请求参数】
videoFrame:视频数据,具体请参见HRTCVideoFrame。
【返回参数】
- 0:成功。
- > 0:失败。具体请参见客户端错误码。
此接口与屏幕采集功能互斥。
如果需要传输texture2d编码流,需要设置setAuxExternalVideoCapture videoEnable参数为true,format设置为texture2d。