我正在从ffmpeg文档访问以下音频编码示例: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一起安装。

最佳答案

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

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

09-05 09:45