单击视频编码获取样例。
该样例将一张YUV420SP NV12格式的图片连续编码n次,生成一个H.265格式的视频码流(n可配,通过运行应用时设置入参来配置,由代码中的“venc_cnt”参数来控制,默认为16次)。
主要接口如表1所示。
功能 |
对应pyACL模块 |
pyACL 接口函数 |
功能说明 |
---|---|---|---|
资源初始化 |
初始化 |
acl.init |
初始化pyACL配置。 |
Context管理 |
acl.rt.create_context |
创建Context。 |
|
Device管理 |
acl.rt.set_device |
指定用于运算的Device。 |
|
runtime |
同步等待 |
acl.rt.process_report |
等待指定时间后,触发回调处理。 |
获取模式 |
acl.rt.get_run_mode |
获取当前昇腾AI软件栈的运行模式。 |
|
数据交互 |
内存管理 |
acl.media.dvpp_malloc |
分配内存给Device侧媒体数据处理时使用。 |
内存管理 |
acl.rt.memcpy |
数据传输,Host->Device或Device->Host |
|
公共模块 |
C和Python的数据交互 |
acl.util.bytes_to_ptr |
将bytes对象转换成为void*数据,可以将转换好的数据传递给C函数直接使用。 |
-- |
acl.util.numpy_to_ptr |
获取numpy.ndarry数组的内存数据指针地址。 |
|
-- |
acl.util.stop_thread |
回收一个回调函数线程。 |
|
媒体数据处理 |
数据类型及操作接口 |
acl.media.dvpp_get_stream_desc_ret_code |
获取视频码流描述参数:返回码。 |
数据类型及操作接口 |
acl.media.dvpp_create_pic_desc |
创建acldvppPicDesc类型的数据,表示图片描述信息。 如需销毁acldvppPicDesc类型的数据,请参见acl.media.dvpp_destroy_pic_desc。 |
|
数据类型及操作接口 |
acl.media.dvpp_get_stream_desc_size |
获取视频码流描述参数:视频码流数据内存大小。 |
|
数据类型及操作接口 |
acl.media.venc_set_channel_desc_thread_id |
设置视频编码处理通道描述信息的属性:回调线程ID。 Atlas 训练系列产品,不支持该接口。 Atlas A2训练系列产品/Atlas 800I A2推理产品,不支持该接口。 |
|
数据类型及操作接口 |
acl.media.dvpp_set_pic_desc_data |
设置图片描述参数:图片数据内存。 |
|
数据类型及操作接口 |
acl.media.dvpp_set_pic_desc_size |
设置图片描述参数:图片数据内存大小。 |
|
数据类型及操作接口 |
acl.media.dvpp_set_stream_desc_format |
设置视频码流描述参数:视频码流格式 |
|
数据类型及操作接口 |
acl.media.dvpp_set_stream_desc_timestamp |
设置视频码流描述参数:时间戳。 |
|
数据类型及操作接口 |
acl.media.dvpp_set_stream_desc_eos |
设置视频码流描述参数:是否为最后一帧数据。 |
|
数据类型及操作接口 |
acl.media.dvpp_set_stream_desc_ret_code |
设置视频码流描述参数:返回码。 |
|
数据类型及操作接口 |
acl.media.dvpp_get_stream_desc_data |
获取视频码流描述参数:Device上视频码流数据内存。 |
|
数据类型及操作接口 |
acl.media.dvpp_create_stream_desc |
创建acldvppStreamDesc类型的数据,表示视频码流描述信息。 如需销毁acldvppStreamDesc类型的数据,请参见acl.media.dvpp_create_stream_desc。 |
|
数据释放 |
acl.media.dvpp_destroy_pic_desc |
销毁通过acl.media.dvpp_create_pic_desc接口创建的acldvppPicDesc类型的数据。 |
|
数据释放 |
acl.media.dvpp_destroy_stream_desc |
销毁视频码流描述信息,只能销毁通过acl.media.dvpp_create_stream_desc接口创建的视频码流描述信息。 |
|
数据类型及操作接口 |
acl.media.venc_create_channel_desc |
创建aclvencChannelDesc类型的数据,表示创建视频数据编码处理通道时的通道描述信息。 如需销毁aclvencChannelDesc类型的数据,请参见acl.media.venc_destroy_channel_desc。 Atlas 训练系列产品,不支持该接口。 Atlas A2训练系列产品/Atlas 800I A2推理产品,不支持该接口。 |
|
数据类型及操作接口 |
acl.media.venc_create_channel |
创建视频数据编码处理的通道,同一个通道可以重复使用,销毁后不再可用。 Atlas 训练系列产品,不支持该接口。 Atlas A2训练系列产品/Atlas 800I A2推理产品,不支持该接口。 |
|
数据类型及操作接口 |
acl.media.venc_create_frame_config |
创建aclvencFrameConfig类型的数据,创建VENC编码时的单帧编码配置参数。 如需销毁aclvencFrameConfig类型的数据,请参见acl.media.venc_destroy_frame_config。 Atlas 训练系列产品,不支持该接口。 Atlas A2训练系列产品/Atlas 800I A2推理产品,不支持该接口。 |
|
数据类型及操作接口 |
acl.media.venc_set_channel_desc_callback |
设置视频编码处理通道描述信息的属性:回调函数。 Atlas 训练系列产品,不支持该接口。 Atlas A2训练系列产品/Atlas 800I A2推理产品,不支持该接口。 |
|
数据类型及操作接口 |
acl.media.venc_set_channel_desc_entype |
设置视频编码处理通道描述信息的属性:视频编码协议。 Atlas 训练系列产品,不支持该接口。 Atlas A2训练系列产品/Atlas 800I A2推理产品,不支持该接口。 |
|
数据类型及操作接口 |
acl.media.venc_set_channel_desc_pic_format |
设置视频编码处理通道描述信息的属性:输入图像格式。 Atlas 训练系列产品,不支持该接口。 Atlas A2训练系列产品/Atlas 800I A2推理产品,不支持该接口。 |
|
数据类型及操作接口 |
acl.media.venc_set_channel_desc_key_frame_interval |
设置视频编码处理通道描述信息的属性:关键帧间隔。 Atlas 训练系列产品,不支持该接口。 Atlas A2训练系列产品/Atlas 800I A2推理产品,不支持该接口。 |
|
数据类型及操作接口 |
acl.media.venc_set_channel_desc_pic_height |
设置视频编码处理通道描述信息的属性:图像高度。 Atlas 训练系列产品,不支持该接口。 Atlas A2训练系列产品/Atlas 800I A2推理产品,不支持该接口。 |
|
数据类型及操作接口 |
acl.media.venc_set_channel_desc_pic_width |
设置视频编码处理通道描述信息的属性:图像宽度。 Atlas 训练系列产品,不支持该接口。 Atlas A2训练系列产品/Atlas 800I A2推理产品,不支持该接口。 |
|
数据类型及操作接口 |
acl.media.venc_set_frame_config_eos |
设置单帧编码配置参数。 Atlas 训练系列产品,当前版本不支持该接口。 Atlas A2训练系列产品/Atlas 800I A2推理产品,不支持该接口。 |
|
数据类型及操作接口 |
acl.media.venc_set_frame_config_force_i_frame |
设置单帧编码配置参数。 Atlas 训练系列产品,当前版本不支持该接口。 Atlas A2训练系列产品/Atlas 800I A2推理产品,不支持该接口。 |
|
数据类型及操作接口 |
acl.media.venc_get_frame_config_eos |
获取单帧编码配置参数。 Atlas 训练系列产品,当前版本不支持该接口。 Atlas A2训练系列产品/Atlas 800I A2推理产品,不支持该接口。 |
|
数据类型及操作接口 |
acl.media.venc_get_frame_config_force_i_frame |
获取单帧编码配置参数。 Atlas 训练系列产品,当前版本不支持该接口。 Atlas A2训练系列产品/Atlas 800I A2推理产品,不支持该接口。 |
|
数据类型及操作接口 |
acl.media.venc_send_frame |
将待编码的图片传到编码器进行编码。异步接口。 Atlas 训练系列产品,不支持该接口。 Atlas A2训练系列产品/Atlas 800I A2推理产品,不支持该接口。 |
|
数据类型及操作接口 |
acl.util.start_thread |
创建线程,在线程中执行传入的Python函数。 |
|
数据类型及操作接口 |
acl.media.venc_destroy_channel |
销毁视频数据编码处理的通道,只能销毁通过acl.media.venc_create_channel接口创建的通道。 Atlas 训练系列产品,不支持该接口。 Atlas A2训练系列产品/Atlas 800I A2推理产品,不支持该接口。 |
|
数据类型及操作接口 |
acl.media.venc_destroy_channel_desc |
销毁通过acl.media.venc_create_channel_desc接口创建的aclvencChannelDesc类型的数据。 Atlas 训练系列产品,不支持该接口。 Atlas A2训练系列产品/Atlas 800I A2推理产品,不支持该接口。 |
|
数据类型及操作接口 |
acl.media.venc_destroy_frame_config |
销毁通过acl.media.venc_create_frame_config接口创建的aclvencFrameConfig类型的数据。 Atlas 训练系列产品,当前版本不支持该接口。 Atlas A2训练系列产品/Atlas 800I A2推理产品,不支持该接口。 |
|
资源释放 |
内存管理 |
acl.media.dvpp_free |
通过acl.media.dvpp_malloc接口申请的内存。 |
内存管理 |
acl.rt.free_host |
释放Host上的内存。 |
|
Context管理 |
acl.rt.destroy_context |
销毁Context。 |
|
Device管理 |
acl.rt.reset_device |
复位当前运算的Device,回收Device上的资源。 |
|
去初始化 |
acl.finalize |
实现pyACL去初始化。 |
venc_image
├──scripts
│ ├── host_version.conf //版本号配置文件。
│ └── testcase_300.sh //运行脚本。
├──src
│ └── acl_venc.py //视频编码实现文件。
├── README_CN.md
└── data //测试数据,需要用户部署。
└── dvpp_venc_128x128_nv12.yuv //用户待处理的图片文件。