昇腾社区首页
中文
注册

mxpi_videodecoder

功能描述

用于视频解码,当前只支持H.264/H.265格式。

同步/异步(status)

异步

约束限制

  • 输入视频的最大分辨率:4096 * 4096。
  • 输入视频的最小分辨率:128 * 128。
  • 输出图像的widthStride(对齐后的宽度):对齐到16(即宽度为16的倍数),解码插件自动对齐。
  • 输出图像的heightStride(对齐后的高度):对齐到2(即高度为2的倍数),解码插件自动对齐。
  • 输入视频格式:H264 bp/mp/hp level5.1 YUV420编码的视频流、H265 8/10bit level5.1 YUV420编码的视频流。
  • 输出图像的格式:YUV420SP NV12、 YUV420SP NV21。

插件基类(factory)

mxpi_videodecoder

输入和输出

输入:buffer(数据类型“MxpiBuffer”)、metadata(数据类型“MxpiFrame”)。

输出:buffer(数据类型“MxpiBuffer”)、metadata(数据类型“MxpiVisionList”)。

端口格式(caps)

静态输入:{"video/x-h264"}

静态输出:{"image/yuv"}

属性

请参见表1

表1 mxpi_videodecoder插件的属性

属性名

描述

是否为必选项

是否可修改

inputVideoFormat

输入视频流的格式,默认为H264,暂时只能填写H264或者H265,填写其他格式会在运行中报错。需要与拉流插件的文件格式保持一致。

目前已实现从上游插件(比如拉流插件)获取视频格式,用户不再需要设置格式,该属性已弃用。

outputImageFormat

解码的输出图像格式,默认为YUV420SP_NV12,暂时只能填写YUV420SP_NV12或者YUV420SP_NV21,填写其他格式会在运行中报错。

vdecChannelId

视频解码通道号,默认为0。

  • Atlas 200/300/500 推理产品上,取值范围为[0, 31]。
  • Atlas 200I/500 A2 推理产品上,取值范围为[0, 31]。
  • Atlas 推理系列产品上,取值范围为[0, 255]。

每个视频解码插件应使用不同的解码通道号。

outMode

设置是否实时出帧。默认值为0,可取值为0或1。

  • 0:由于解码过程中存在缓存帧,无法实时输出,因此VDEC需要在收到码流中的多帧数据后,才开始输出解码结果。
  • 1:快速出帧模式,VDEC获取码流中的一帧数据后,就开始实时输出解码结果。只支持简单参考关系的H.264/H.265标准码流(无长期参考帧,无B帧)。

outPicWidthMax

解码码流最大宽度,取值范围[0, 4096]。

outPicHeightMax

解码码流最大高度,取值范围[0, 4096]。

skipFrame

跳帧个数,默认为0,取值范围[0, 100]。

vdecResizeWidth

解码后缩放的宽。默认为0,即不做缩放,取值范围[0, 4096]。

Atlas 200/300/500 推理产品Atlas 200I/500 A2 推理产品上为预留参数。

vdecResizeHeight

解码后缩放的高。默认为0,即不做缩放,取值范围[0, 4096]。

Atlas 200/300/500 推理产品Atlas 200I/500 A2 推理产品上为预留参数。

解码插件内部缓存输入数据的输入buffer有限制,如果后端处理慢的话,就会触发反压,导致输入buffer不能被消费。当再次送帧进来的时候,会报错sendframe失败,解码插件不能恢复正常工作。