文档
注册

VideoEncodeConfig

功能

用于保存视频编码的相关参数。

结构定义

struct VideoEncodeConfig {
    uint32_t maxPicWidth = 4096;
    uint32_t maxPicHeight = 4096;
    uint32_t width = 1920;
    uint32_t height = 1080;
    StreamFormat outputVideoFormat = StreamFormat::H264_MAIN_LEVEL;
    ImageFormat inputImageFormat = ImageFormat::YUV_SP_420;
    VideoEncodeCallBack callbackFunc = nullptr;
    uint32_t keyFrameInterval = 30;
    uint32_t srcRate = 30;
    uint32_t rcMode = 0;
    uint32_t shortTermStatsTime = 60;
    uint32_t longTermStatsTime = 120;
    uint32_t longTermMaxBitRate = 300;
    uint32_t longTermMinBitRate = 0;
    uint32_t maxBitRate = 300;
    uint32_t ipProp = 70;
    uint32_t sceneMode = 0;
    uint32_t displayRate = 30;
    uint32_t statsTime = 1;
    uint32_t firstFrameStartQp = 32;
    std::vector<uint32_t> thresholdI = {0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255};
    std::vector<uint32_t> thresholdP = {0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255};
    std::vector<uint32_t> thresholdB  = {0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255};
    uint32_t direction = 8;
    uint32_t rowQpDelta = 1;
};

参数说明

参数名

说明

maxPicWidth

编码通道最大预留宽度,默认值:4096,单位为像素,取值范围:[128, 4096],配置时需大于“width”,当前仅支持Atlas 推理系列产品(Ascend 310P AI处理器)

maxPicHeight

编码通道最大预留高度,默认值:4096,单位为像素,取值范围:[128, 4096],配置时需大于“height”,当前仅支持Atlas 推理系列产品(Ascend 310P AI处理器)

width

编码后视频帧数据的宽,默认值:1920,必须与待编码图片的宽(originalSize)一致。

  • Atlas 200/300/500 推理产品,取值范围:[128, 1920],输入的视频宽需要对齐16。
  • Atlas 200I/500 A2 推理产品,取值范围:[128, 1920],输入的视频宽需要对齐16。
  • Atlas 推理系列产品(Ascend 310P AI处理器,取值范围:[128, 4096],输入的视频宽需要对齐2。

height

编码后视频帧数据的高,默认值:1080,必须与待编码图片的高(originalSize)一致。

  • Atlas 200/300/500 推理产品,取值范围:[128, 1920],输入的视频高需要对齐2。
  • Atlas 200I/500 A2 推理产品,取值范围:[128, 1920],输入的视频高需要对齐2。
  • Atlas 推理系列产品(Ascend 310P AI处理器,取值范围:[128, 4096],输入的视频高需要对齐2。

outputVideoFormat

编码后输出的视频格式, 默认值:StreamFormat::H264_MAIN_LEVEL。

inputImageFormat

输入的图像格式,默认值:ImageFormat::YUV_SP_420。

  • Atlas 200/300/500 推理产品支持 YUV_SP_420、YVU_SP_420 格式。
  • Atlas 200I/500 A2 推理产品支持 YUV_SP_420、YVU_SP_420 格式。
  • Atlas 推理系列产品(Ascend 310P AI处理器支持 YUV_SP_420、YVU_SP_420、RGB_888、BGR_888 格式。

callbackFunc

编码完成后的回调函数,不能为空指针。

keyFrameInterval

视频I帧间隔大小,默认为30,取值范围[1, 2000]。

srcRate

输入码流帧率,单位fps,默认为30。

  • Atlas 200/300/500 推理产品,取值范围:[1, 120]。
  • Atlas 200I/500 A2 推理产品,取值范围:[1, 120]。
  • Atlas 推理系列产品(Ascend 310P AI处理器,取值范围:[1, 240]。

rcMode

指定码率控制模式,默认值为“0”,取值如下:

  • 0或1:CBR模式
  • 2:VBR模式
  • 3:AVBR模式(仅在Atlas 推理系列产品(Ascend 310P AI处理器上支持)
  • 4:QVBR模式(仅在Atlas 推理系列产品(Ascend 310P AI处理器上支持)
  • 5:CVBR模式(仅在Atlas 推理系列产品(Ascend 310P AI处理器上支持)

shortTermStatsTime

码率短期统计时间,单位为秒,默认值为“60”,取值范围:[1, 120]。

该参数仅在Atlas 推理系列产品(Ascend 310P AI处理器上,且“rcMode”为5时生效。

longTermStatsTime

码率长期统计时间,单位为分钟,默认值为“120”,取值范围:[1, 1440]。

该参数仅在Atlas 推理系列产品(Ascend 310P AI处理器上,且“rcMode”为5时生效。

longTermMaxBitRate

编码器输出长期最大码率,单位为kbps,默认值为“300”。取值范围:[2, maxBitRate]。

该参数仅在Atlas 推理系列产品(Ascend 310P AI处理器上,且“rcMode”为5时生效。

longTermMinBitRate

编码器输出长期最小码率,单位为kbps,默认值为“0”。取值范围:[0, longTermMaxBitRate]。

该参数仅在Atlas 推理系列产品(Ascend 310P AI处理器上,且“rcMode”为5时生效。

maxBitRate

输出码率,单位kbps,默认值为300。

  • Atlas 200/300/500 推理产品,取值范围:[10, 30000]。
  • Atlas 200I/500 A2 推理产品,取值范围:[10, 30000]。
  • Atlas 推理系列产品(Ascend 310P AI处理器,取值范围:[2, 614400]。

ipProp

一个GOP内单个I帧bit数和单个P帧bit数的比例,默认值为70,取值范围[1, 100]。

sceneMode

场景模式。默认值为“0”

  • 0:摄像机不运动或周期性连续运动的场景,支持H.264/H.265。
  • 1:高码率下运动场景,支持H.265。

该参数仅在Atlas 推理系列产品(Ascend 310P AI处理器上生效。

说明:

当输出视频格式设置为“H.264”并且“sceneMode”设置为“1”时,由于H.264不支持高码率下运动场景,sceneMode值将自动切换成“0”

displayRate

输出视频的播放帧率,默认值为“30”,取值范围[1, 120]。

该参数仅在Atlas 推理系列产品(Ascend 310P AI处理器上生效。

statsTime

码率统计时间,以秒为单位,默认值为“1”,取值范围:[1, 60]。

该参数仅在Atlas 推理系列产品(Ascend 310P AI处理器上生效。

firstFrameStartQp

设置第一帧的起始Qp值,默认值为“32”,取值范围:

  • CBR模式:[10, 51]
  • VBR:[24, 51]
  • AVBR:[24, 51]
  • QVBR:[16, 51]
  • CVBR:[20, 47]

该参数仅在Atlas 推理系列产品(Ascend 310P AI处理器上生效。

thresholdI

I帧宏块级码率控制的Madi(用于度量当前帧的空域纹理复杂度)门限。取值范围:[0,255]。默认值为[0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255]。

减方向的数值设置为“0”,表示关闭当前级;加方向的数值设置为“255”,表示关闭当前级。

该参数仅在Atlas 推理系列产品(Ascend 310P AI处理器上生效。

thresholdP

P帧宏块级码率控制的Madi(用于度量当前帧的空域纹理复杂度)门限。取值范围:[0,255]。默认值为:[0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255]。

减方向的数值设置为“0”,表示关闭当前级;加方向的数值设置为“255”,表示关闭当前级。

该参数仅在Atlas 推理系列产品(Ascend 310P AI处理器上生效。

thresholdB

B帧宏块级码率控制的Madi(用于度量当前帧的空域纹理复杂度)门限。取值范围:[0,255]。默认值为[0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255]。

减方向的数值设置为“0”,表示关闭当前级;加方向的数值设置为“255”,表示关闭当前级。

该参数仅在Atlas 推理系列产品(Ascend 310P AI处理器上生效。

direction

在基于纹理宏块级码率控制时,用于控制加减方向。默认值为“8”,取值范围:[0, 16]。

该参数仅在Atlas 推理系列产品(Ascend 310P AI处理器上生效。

rowQpDelta

行级码率控制调节幅度是一帧内行级调节的最大范围,其中行级以宏块行为单位。调节幅度越大,允许行级调整的QP范围越大,码率越平稳。

对于图像复杂度分布不均匀的场景,行级码率控制调节幅度设置过大会带来图像质量不均匀。

默认值为“1”,取值范围:[0, 10],设置为“0”表示关闭基于行的宏块级码率控制。

该参数仅在Atlas 推理系列产品(Ascend 310P AI处理器上生效。

推荐配置

以下为视频采集场景下推荐的参数配置,可以保证较好的视频编码质量,其他场景下请根据实际应用对应调整。

画质/分辨率

srcRate

keyFrameInterval

maxBitRate

4K

3840 * 2160/4096 * 2160

25或30

50或60

  • H.264: 8000 ~ 12000
  • H.265: 8000 ~ 12000

2K

2560 * 1440

25或30

50或60

  • H.264: 6000 ~ 10000
  • H.265: 6000 ~ 10000

1080P(蓝光)

1920 * 1080

25或30

50或60

  • H.264: 2000~6000
  • H.265: 1000~4000

720P(高清)

1280 * 720

25或30

50或60

  • H.264: 1000~3000
  • H.265: 800~2000

480P/D1_N(标清)

854 * 480/720 * 480

25或30

50或60

  • H.264: 600~1400
  • H.265: 300~700

576P/D1 (标清)

720 * 576

25或30

50或60

  • H.264: 600~1400
  • H.265: 300~700

270P(流畅)

480 * 270

25或30

50或60

-

CIF P/N

352 * 288/320 * 240

25或30

50或60

  • H.264: 250
  • H.265: 250
搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词