ps:假设你的编码器名字为xxcodec
文件准备
准备好以下文件
- xxcodec.h —— 编码器主要api的头文件
- libxxcodec.so/libxxcodec.a —— 编码器的动态库或者静态库
- xxcodec.pc —— 编码器的pkg-config配置文件
- libxxcodec.c —— 实现ffmpeg AVCodec中需要的所有回调
ffmpeg修改
拷贝libxxcodec.c
拷贝libxxcodec.c文件到ffmpeg/libavcodec目录中
修改configure
在configure中搜索x265,参照x265,所有有x265的地方拷贝一份,把x265改成xxcodec
主要修改有以下几处
- help信息 —— 添加“–enable-libxxcodec enable XX encoding via xxcodec [no]”
- EXTERNAL_LIBRARY_GPL_LIST —— 添加“libxxcodec”
- external libraries —— 添加“libxxcodec_encoder_deps=“libxxcodec””
- enabled里 —— 添加“enabled libxcodec && require_pkg_config libxxcodec xxcodec xxcodec.h xxcodec_encoder_encode”
注册编码器
在ffmpeg/libavcode/allcodec.c里添加编码器AVCodec实例,就是libxxcodec.c里AVCodec的实例
配置&编译
./configure --enable-xxcodec && make