首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用FFmpeg API加载G.729解码器的问题

使用FFmpeg API加载G.729解码器的问题
EN

Stack Overflow用户
提问于 2015-07-17 19:41:31
回答 1查看 843关注 0票数 1

我使用FFmpeg API构建了一个类来解码多个音频文件(mp3、ogg、G.729等),并将它们作为原始音频数据加载到数据结构中。例如,当我运行以下代码时:

代码语言:javascript
运行
复制
codec = avcodec_find_decoder(AV_CODEC_ID_G729);
if (codec == NULL){
    printf("Codec not found");
    exit(1);
}

程序确实会输出错误消息,但是如果我加载mp3或ogg编解码器,就没有问题。

因此,为了进行二次检查,我在终端ffmpeg -decoders中执行,以确定是否支持解码器(我还在线检查了解码器)并输出:

A....D g729 G.729

我需要G.729的解码器。我遗漏了什么或者做错了什么吗?有什么不同的方法来加载这个解码器吗?如有任何建议,将不胜感激。

在Debian系统上安装的FFmpeg版本为2.7.1

API使用示例:8c-example.html

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-20 12:49:33

好的,考虑到最初的注释序列,我尝试了我能想到的最简单的例子:

代码语言:javascript
运行
复制
#include "libavcodec/avcodec.h"

int main() {
    avcodec_register_all();
    AVCodec *codec = avcodec_find_decoder(AV_CODEC_ID_G729);
    if (!codec) {
        fprintf(stderr, "Codec not found\n");
        exit(1);
    }
    fprintf(stderr, "Codec found\n");
    return 0;
}

并对本地的ffmpeg树进行了编译,结果很好:

代码语言:javascript
运行
复制
$ /tmp/x
Codec found

所以,在你的特殊情况下,一定发生了一些奇怪的事情。例如,您能否提供更多信息,说明如何编译自编译的ffmpeg树(特别是配置参数,并执行"grep 729 config.h“),以及如何运行代码的完整示例代码(由于缺少avcodec_register_all(),它不会自行运行),但由于您引用了api_example,我假设您的完整代码没有这个问题,否则mp3/ogg将无法工作),编译器行用于编译/链接它与您的ffmpeg版本。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31483533

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档