libav - 找不到编解码器

libav - Codec not found

我正在关注 ffmpeg 文档中的音频编码示例:https://www.ffmpeg.org/doxygen/0.6/api-example_8c-source.html

但是我想解码 .wav 文件而不是 .mp2 文件 所以我在程序中更改了这一行:

codec = avcodec_find_encoder(AV_CODEC_ID_WAVPACK)
if(!codec){
fprintf(stderr,"codec not found\n");
exit(1)
}

但是我总是输入if -> 好像打不开编解码器。

我已经安装了 wavpacklibva 以及 --enable-libwavpack

所以你的问题不清楚,你在谈论 .wav 解码和 wavpack 编码,我假设你的意思是你想使用 .wav 文件并将其编码为 wavpack/.wv(而不是认为 .wav 文件)。 wav 在任何方面都与 wavpack 相关;它不是)。

如果是这样,那么它不起作用的原因是您使用的 libav 没有 wavpack 支持。你可能安装了wavpack,但是libav在编译的时候没有找到,所以不支持。您可以考虑使用 ffmpeg,它有一个不依赖于 libwavpack 的内置 wavpack 编码器,或者弄清楚如何使用 libwavpack 支持编译 libav(如果您使用来自 Linux 分发,或者在 运行 配置时使用 --extra-cflags= 和 --extra-libs= 告诉 libav 这些位于何处。