libav - кодек не найден

Я следую этому примеру кодирования аудио из документа 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 -> похоже не могу открыть кодек.

Я установил wavpack и libva с --enable-libwavpack.


person IIIIIIIIIIIIIIIIIIIIII    schedule 13.08.2015    source источник


Ответы (1)


Итак, ваш вопрос неясен, вы говорите о декодировании .wav и кодировании wavpack, я предполагаю, что вы имеете в виду, что хотите использовать файл .wav и кодировать его в wavpack/.wv (в отличие от того, что вы думаете, что .wav связан с wavpack никак; это не так).

Если это так, то причина, по которой он не работает, заключается в том, что вы используете libav без поддержки wavpack. Возможно, вы установили wavpack, но libav не нашел его при компиляции, поэтому он не поддерживается. Вы можете рассмотреть возможность использования ffmpeg со встроенным кодировщиком wavpack, который не зависит от libwavpack, или выяснить, как скомпилировать libav с поддержкой libwavpack (вероятно, потребуется установить пакеты разработчика, если вы используете предварительно собранные двоичные файлы из вашего Linux). дистрибутив, или, альтернативно, сообщите libav, где они находятся, используя --extra-cflags= и --extra-libs= при запуске configure).

person Ronald S. Bultje    schedule 13.08.2015