概述
FFmpeg添加codec的步骤:(以wma为例)
1. 在libavcodec/avcodec.h 的CodecID 枚举中添加wma的codec id 比如
CODEC_ID_WMAV1 2. 在libavcodec/allcodecs.c的avcodec_register_all()函数中添加wma 解码器的注册比如:
REGISTER_ENCDEC(WMAV1, wmav1); 3. 在libavformat/xxx.c文件中添加对于可包含wma数据的文件格式对于wmav1的识别;(此
处的实现并不唯一,具体可参见ff_codec_wav_tags) 4. 创建wma.c 文件并实现 init, close, decode, flush函数,并定义一个AVCodec 变量,比如:
AVCodec wmav1_decoder = {
"wmav1", //name
AVMEDIA_TYPE_AUDIO,
CODEC_ID_WMAV1, //codec id
sizeof(WMACodecContext), //wma 结构体 wma_decode_init, // init 函数入口 NULL,
ff_wma_end,
//close 函数入口
wma_decode_superframe, // decode 函数入口 .flush=flush, //flush 函数入口 };
针对目前将wma,aac, mp3等定点解码库替换FFmpeg现有的实现,只需要重新实现init,close,decode,flush函数,实现的具体方法与各个定点解码库现有的实现有关,只要保证对传递的AVCodecContext类型的参数做正确的处理即可。
最后
以上就是潇洒铃铛为你收集整理的ffmpeg有用的笔记,关于增加新解码方式的全部内容,希望文章能够帮你解决ffmpeg有用的笔记,关于增加新解码方式所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复