Skip to main content

acl.himpi.venc_get_mod_param

acl.himpi.venc_send_frame

c函数原型hi_s32 hi_mpi_venc_send_frame(hi_venc_chn chn, const hi_video_frame_info *frame, hi_s32 milli_sec)
Python函数ret = acl.himpi.venc_send_frame(chn, frame, milli_sec)
函数功能发送原始图像进行视频或图像编码。
输入说明- chn:编码通道号。
- Atlas 200/500 A2推理产品,编码通道号的取值范围:[0, 128),JPEGE功能和VENC功能共用通道,且通道总数最多128。
- frame:原始图像信息字典。
- milli_sec:超时时间,单位是毫秒。
- “-1”:阻塞方式。
- “0”:非阻塞方式。
- >0:超时方式,配置具体的超时时间。超时时间受操作系统影响,一般偏差在操作系统的一个时间片内,例如,操作系统的一个时间片为4ms,用户设置的milli_sec参数值为1,则实际的超时时间在1ms到5ms范围内。在CPU负载高场景下,超时时间仍可能存在波动。
返回值说明ret:int,错误码。
- 返回0表示成功。
- 返回非0表示失败,参见VENC视频/JPEGE图像编码返回码
约束说明- 视频输入的原始图像大小必须与编码通道的大小保持一致;JPEGE输入的原始图像大小小于或等于编码通道的大小,当数据格式为YUV420SP(NV12,NV21)时,图像高度必须为2对齐。
- 调用该接口发送图像,用户需要保证编码通道已创建且开启接收输入图片
- 视频编码,对输入、输出的约束请参见VENC功能及约束说明
- 图像编码,对输入、输出的约束请参见JPEGE功能及约束说明
参考资源接口调用流程,参见JPEGE图片编码VENC视频编码

父主题: VENC视频/JPEGE图像编码接口

acl.himpi.venc_set_mod_param

c函数原型hi_s32 hi_mpi_venc_set_mod_param(const hi_venc_mod_param *mod_param)
Python函数ret = acl.himpi.venc_set_mod_param(mod_param)
函数功能设置编码相关的模块参数。
输入说明mod_param:编码模块参数字典,具体请参见hi_venc_mod_param
返回值说明ret:int,错误码。
- 返回0表示成功。
- 返回非0表示失败,参见VENC视频/JPEGE图像编码返回码
约束说明此接口在通道创建前调用,如果通道已经创建,则返回错误码“HI_ERR_VENC_NOT_PERM”。
参考资源接口调用流程,参见JPEGE图片编码VENC视频编码

父主题: VENC视频/JPEGE图像编码接口

acl.himpi.venc_get_mod_param

c函数原型hi_s32 hi_mpi_venc_get_mod_param(hi_venc_mod_param *mod_param)
Python函数mod_param, ret = acl.himpi.venc_get_mod_param(mod_param)
函数功能获取编码相关的模块参数。
输入说明mod_param:编码模块类型,具体请参见hi_venc_mod_param
返回值说明ret:int,错误码。
- 返回0表示成功。
- 返回非0表示失败,参见VENC视频/JPEGE图像编码返回码
mod_param:编码模块参数。
约束说明
参考资源接口调用流程,参见JPEGE图片编码VENC视频编码

父主题: VENC视频/JPEGE图像编码接口

acl.himpi.venc_request_idr

c函数原型hi_s32 hi_mpi_venc_request_idr(hi_venc_chn chn, hi_bool instant);
Python函数ret = acl.himpi.venc_request_idr(chn, instant)
函数功能请求IDR帧。
输入说明- chn:编码通道号。
- Atlas 200/500 A2推理产品,编码通道号的取值范围:[0, 128),JPEGE功能和VENC功能共用通道,且通道总数最多128。
- instant:是否使能立即编码IDR帧。
返回值说明ret:int,错误码。
- 返回0表示成功。
- 返回非0表示失败,参见VENC视频/JPEGE图像编码返回码
约束说明- 如果通道未创建,则返回失败。
- 接受IDR(Instantaneous Decoder Refresh)帧请求后,当instant = 0时,则在帧率控制的下一帧编出IDR帧,当instant = 1 时,则立即编出IDR帧,不受帧率控制约束。
- IDR帧请求,只支持H.264/H.265编码协议。
- 由于目前的使用场景目标帧率与源帧率的值一致,所以此接口不受帧率控制影响当instant设置为0或1时,都是每调用一次接口即编出一个IDR,调用频繁会影响码流帧率和码率的稳定,使用时需要注意。
- 当GOP模式为Smartp或B帧模式(暂不支持B帧模式)下,请求IDR帧会延时生效。

父主题: VENC视频/JPEGE图像编码接口

acl.himpi.venc_get_fd

c函数原型hi_s32 hi_mpi_venc_get_fd(hi_venc_chn chn);
Python函数ret = acl.himpi.venc_get_fd(chn)
函数功能获取编码通道对应的文件句柄。
输入说明chn:编码通道号。
- Atlas 200/500 A2推理产品,编码通道号的取值范围:[0, 128),JPEGE功能和VENC功能共用通道,且通道总数最多128。
返回值说明ret:int,编码通道对应的文件句柄。
- 0或正数值:有效返回值。
- 非正数值:无效返回值。
约束说明在进程退出时会自动关闭文件句柄,回收资源。
参考资源接口调用流程,参见JPEGE图片编码VENC视频编码

父主题: VENC视频/JPEGE图像编码接口

acl.himpi.venc_close_fd

c函数原型hi_s32 hi_mpi_venc_close_fd(hi_venc_chn chn);
Python函数ret = acl.himpi.venc_close_fd(chn)
函数功能关闭编码通道对应的设备文件句柄。 当前版本不支持该接口。
输入说明chn:编码通道号。
- Atlas 200/500 A2推理产品,编码通道号的取值范围:[0, 128),JPEGE功能和VENC功能共用通道,且通道总数最多128。
返回值说明ret:int,错误码。
- 0:关闭成功。
- -1:关闭失败。
约束说明用户可以不调用本接口,在应用程序执行完成,对应的进程退出后,系统会自动清理句柄;如果用户主动调用本接口,必须确保在调用acl.himpi.venc_destroy_chn接口之后再调用。此接口不能与其它 MPI 接口同时调用,用户必须保证此接口与其它接口在时间上是串行调用的。
参考资源

父主题: VENC视频/JPEGE图像编码接口

在线提单