---
title: Config
description: "输入编码器的初始化配置，需要在InitEncoder之前调用。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengboostkithistory/2530/armnative15/kunpengcpsvideo_16_0064.html
sourcePath: /source/zh/kunpengboostkithistory/2530/armnative15/kunpengcpsvideo_16_0064.html
indexId: 3dc0730d265727b9387db33daeba690c868d067114a3959f6907f6be3501ad7c79
---
# Config

#### 函数功能

输入编码器的初始化配置，需要在InitEncoder之前调用。


#### 约束说明

如配置参数所示的参数类型，会经由此参数透传至VmiEncoderConfig和VmiEncoderParams中；配置参数中的配置参数的相关约束此处仍然存在。


#### 函数原型

EncoderRetCode Config(int32_t fd, const VmiEncoderConfig& config)


#### 参数说明

| 参数名称 | 输入/输出 | 参数类型 | 参数描述 |
| --- | --- | --- | --- |
| fd | 输入 | int32\_t | 编码器标记符。 |
| config | 输入 | struct VmiEncoderConfig | 要配置的编码器配置。 |


struct VmiEncoderConfig和struct VmiEncoderParams的具体定义如下：

```
struct VmiEncoderParams {
    uint32_t bitRate = 3000000;
    uint32_t gopSize = 30;
    uint32_t profile = 1;
    uint32_t keyFrame = 0;
    uint32_t rcMode = 2;                        // 流控模式
    uint32_t crf = 34;                          // crf码控级别
    uint32_t maxCrfRate = 20000000;             // crf码率峰值
    int32_t vbvBufferSize = 1000;               // crf码率缓冲区大小
};
```

```
struct VmiEncoderConfig {
    uint32_t width = 720;
    uint32_t height = 1280;
    uint32_t frameRate = 30;
    VmiEncoderParams encodeParams;
};
```


#### 返回值说明

数据类型：EncoderRetCode

取值如下：

VIDEO_ENCODER_SUCCESS：配置编码器成功。
