libav - 找不到编解码器

时间:2015-08-13 17:08:18

标签: c ffmpeg libavcodec libav libavformat

我正在关注ffmpeg docu:https://www.ffmpeg.org/doxygen/0.6/api-example_8c-source.html

中的音频编码示例

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

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

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

我已将wavpacklibva--enable-libwavpack安装在一起。

1 个答案:

答案 0 :(得分:1)

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

如果是这种情况,那么它不起作用的原因是因为你在没有wavpack支持的情况下使用了libav。您可能已经安装了wavpack,但是libav在编译时没有找到它,因此它不支持它。您可以考虑使用ffmpeg,它具有不依赖于libwavpack的内置wavpack编码器,或者弄清楚如何使用libwavpack支持编译libav(如果您使用Linux中的预构建二进制文件,可能需要安装开发人员包)分发,或者在运行configure时使用--extra-cflags =和--extra-libs =告诉libav这些位置。