用于保存视频编码的相关参数。
struct VideoEncodeConfig { uint32_t maxPicWidth = 4096; uint32_t maxPicHeight = 4096; uint32_t width = 1920; uint32_t height = 1080; // stream format renference acldvppStreamFormat StreamFormat outputVideoFormat = StreamFormat::H264_MAIN_LEVEL; // output format renference acldvppPixelFormat ImageFormat inputImageFormat = ImageFormat::YUV_SP_420; VideoEncodeCallBack callbackFunc = nullptr; uint32_t keyFrameInterval = 30; uint32_t srcRate = 30; uint32_t rcMode = 0; uint32_t maxBitRate = 300; uint32_t ipProp = 70; };
参数名 |
说明 |
---|---|
maxPicWidth |
编码通道最大预留宽度,默认值:4096,单位为像素,取值范围:[128, 4096],配置时需大于“width”,当前仅支持Atlas 推理系列产品。 |
maxPicHeight |
编码通道最大预留高度,默认值:4096,单位为像素,取值范围:[128, 4096],配置时需大于“height”,当前仅支持Atlas 推理系列产品。 |
width |
编码后视频帧数据的宽,默认值:1920,必须与待编码图片的宽(originalSize)一致。
|
height |
编码后视频帧数据的高,默认值:1080,必须与待编码图片的高(originalSize)一致。
|
outputVideoFormat |
编码后输出的视频格式, 默认值:StreamFormat::H264_MAIN_LEVEL。 |
inputImageFormat |
输入的图像格式,默认值:ImageFormat::YUV_SP_420。
|
callbackFunc |
编码完成后的回调函数,不能为空指针。 |
keyFrameInterval |
视频I帧间隔大小,默认为30,取值范围[1, 2000]。 |
srcRate |
输入码流帧率,单位fps,默认为30。
|
rcMode |
指定码率控制模式,默认值为 0,取值如下:
|
maxBitRate |
输出码率,单位kbps,默认值为300。
|
ipProp |
一个GOP内单个I帧bit数和单个P帧bit数的比例,默认值为70,取值范围[1, 100]。 |
以下为视频采集场景下推荐的参数配置,可以保证较好的视频编码质量,其他场景下请根据实际应用对应调整。
画质/分辨率 |
srcRate |
keyFrameInterval |
maxBitRate |
---|---|---|---|
4K 3840 * 2160/4096 * 2160 |
25或30 |
50或60 |
|
2K 2560 * 1440 |
25或30 |
50或60 |
|
1080P(蓝光) 1920 * 1080 |
25或30 |
50或60 |
|
720P(高清) 1280 * 720 |
25或30 |
50或60 |
|
480P/D1_N(标清) 854 * 480/720 * 480 |
25或30 |
50或60 |
|
576P/D1 (标清) 720 * 576 |
25或30 |
50或60 |
|
270P(流畅) 480 * 270 |
25或30 |
50或60 |
- |
CIF P/N 352 * 288/320 * 240 |
25或30 |
50或60 |
|