我是靠谱客的博主 潇洒铃铛,最近开发中收集的这篇文章主要介绍ffmpeg有用的笔记,关于增加新解码方式,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述


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有用的笔记,关于增加新解码方式所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部