---
title: Config
description: "输入编码器的初始化配置，需要在InitEncoder之前调用。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengboostkithistory/2530/armnative/kunpengcpsvideo_16_0064.html
sourcePath: /source/zh/kunpengboostkithistory/2530/armnative/kunpengcpsvideo_16_0064.html
indexId: 20b3b1ea08509e9a4a01b4e65f5e046a17f893e6077349a11cfca1fa8bcc4c2377
---
# 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：配置编码器成功。
