跳到主要内容

类说明

回调函数格式

说明

回调函数用于接收VideoEncoder编码后的数据(如视频帧数据、ByteSize、frameId等)并在回调函数内实现自定义处理功能。

用户如需实现自定义处理功能,建议进行简单的操作,如数据保存、列表写入(append),降低函数处理耗时,防止编码线程阻塞,导致视频编码速度变慢。

函数原型

def callback_func(pyBytes: bytes, outDataSize: int, channelId: int, frameId: int) -> None

参数说明

callback_func为函数名称,用户可自己定义,与registerVencCallBack注册的函数名一致即可。

参数名类型说明
pyBytesbytes编码后输出视频帧字节数据。
outDataSizeint编码后输出视频帧数据的内存大小。
channelIdint视频流索引,在 VideoEncoder 类初始化设置。
frameIdint视频帧索引,由 VideoEncoder 类的 encode 函数来设置。

返回参数说明

无。

抛异常接口

未按指定格式定义的函数参数及输出,抛出“pybind11::error_already_set”异常。

父主题: VencCallBacker类

VencCallBacker()

函数功能

VencCallBacker的构造函数。

输出参数说明

VencCallBacker对象。

父主题: VencCallBacker类

registerVencCallBack(callback_func)

函数功能

将用户自定义的回调函数注册,以便编码后在回调函数中实现自定义操作。

输入参数说明

参数名类型说明
callback_funcPython定义的函数名需传入按指定格式定义的函数,否则将抛出异常。

返回参数说明

无。

抛异常接口

未按指定格式传入定义的回调函数,将抛出TypeError异常或runtime异常。

父主题: VencCallBacker类

类说明

VideoEncoder类,作为视频编码类,主要开放视频编码接口。

父主题: VideoEncoder类

VideoEncoder(pyVencConfig, pyVencCallBacker, deviceId, channelId)

函数功能

VideoEncoder类的构造函数。

若因内存不足,pyVencCallBacker未注册回调函数,或无法识别芯片等构造失败的场景会抛出“std::runtime_error”异常。

输入参数说明

参数名类型说明
pyVencConfigVencConfig类视频编码的参数。视频编码的最大分辨率(宽 * 高)不能超过 4096 * 2304。
pyVencCallBackerVencCallBacker类绑定回调函数的VencCallBacker类。(须先注册回调函数,否则构造VideoEncoder会抛出异常。)
deviceIdint视频编码器部署的芯片,默认为 0 号芯片。 取值范围:[0, 识别到的芯片个数 - 1]。
channelIdint视频编码器的视频流索引。
- Atlas 200I/500 A2 推理产品:只能实例化一个VideoEncoder,因此用户无需设置 channelId。

返回参数说明

VideoEncoder对象。

父主题: VideoEncoder类

encode(inputImage, frameId)

函数功能

VideoEncoder的视频编码接口。

输入参数说明

参数名类型说明
inputImageImage类输入编码前的Image类。
frameIdint输入视频帧索引。

返回参数说明

无。

抛异常接口

编码失败,抛出runtime异常。

父主题: VideoEncoder类

类说明

从Device侧申请内存,获取内存指针地址的值。

父主题: DeviceMemory类

DeviceMemory(int size)

函数功能

从Device侧申请内存。

输入参数说明

参数名类型说明
sizeint申请内存的大小,单位Byte。

返回参数说明

DeviceMemory对象。

父主题: DeviceMemory类

在线提单