ffmpeg有用的笔记,关于增加新解码方式
2014-10-23 16:36
387 查看
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类型的参数做正确的处理即可。
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编解码的好文章
- 黑马程序员(学习笔记一)——关于一维数组的几种操作方式。求最大,最小值,查找!
- 性能测试培训笔记-关于windows下无法增加更多的虚拟用户
- java笔记--关于线程同步(5种同步方式)
- java笔记--关于线程同步(5种同步方式)
- 看BBC关于大脑的video的一些笔记,极有用的浓缩版。
- java笔记--关于线程同步(5种同步方式)
- FFMPEG 增加 AVS+ 视频解码 支持-第二篇:ffmpeg中注册cavsp解码器
- java笔记--关于线程同步(5种同步方式)
- <高性能javascript>阅读笔记一 ---关于脚本放的位置以及加载方式
- Spring学习笔记 关于spring 2.x中dependency-check标签与Spring3中的实现方式
- 关于ffmpeg解码通过UDP协议传输的视频流遇到fifosize 的问题
- 关于.net编译过后的程序增加功能的一种实现方式_也可以说是.net exe注入,插件机制_开发记录
- java笔记--关于线程同步(5种同步方式)
- 性能测试培训笔记-关于windows下无法增加更多的虚拟用户
- Live555 + h264 + ffmpeg 客户端解码 笔记
- java笔记--关于线程同步(7种同步方式)
- [学习笔记]基于ffmpeg的视频解码,输出YUV图像到文件。
- ffmpeg 编解码相关笔记