ffmpeg6.0 注册编码器
时间: 2023-07-05 16:36:04 浏览: 60
在FFmpeg 4.0及以上版本中,可以使用avcodec_register()函数注册编码器,例如:
```
avcodec_register(codec);
```
其中,codec是一个AVCodec结构体指针,用于描述编码器的信息。AVCodec结构体定义如下:
```
typedef struct AVCodec {
const char *name; // 编码器名称
enum AVMediaType type; // 媒体类型
enum AVCodecID id; // 编码器ID
const AVCodecDescriptor *descriptor; // 编码器描述符
int capabilities; // 编码器功能标志
const AVRational *supported_framerates; // 支持的帧率
const enum AVPixelFormat *pix_fmts; // 支持的像素格式
const int *supported_samplerates; // 支持的采样率
const enum AVSampleFormat *sample_fmts; // 支持的采样格式
} AVCodec;
```
你需要填充AVCodec结构体的各个字段,例如:
```
AVCodec my_codec = {
.name = "my_codec",
.type = AVMEDIA_TYPE_VIDEO,
.id = AV_CODEC_ID_H264,
.descriptor = NULL,
.capabilities = AV_CODEC_CAP_DELAY,
.supported_framerates = NULL,
.pix_fmts = NULL,
.supported_samplerates = NULL,
.sample_fmts = NULL,
};
avcodec_register(&my_codec);
```
注意,AVCodec结构体中的字段并不是全部都需要填充,具体需要填充哪些字段可以参考FFmpeg官方文档。