Невозможно включить библиотеку libvpx в ffmpeg из командной строки
Это мой первый вопрос, который я задал суперпользователю, поэтому, пожалуйста, будьте терпеливы с моим невежеством, если оно всплывет. Я потратил часы и часы, пытаясь понять это, и был бы очень признателен за вашу помощь.
Я недавно установил ffmpeg, и он поставлялся со многими необходимыми библиотеками, но в нем отсутствовал libvpx. После этого я установил libvpx.tar.bz2 в те же каталоги, что и мои другие библиотеки, и запустил untar. Затем я выполнил следующее в командной строке из моего каталога ffmpeg:
./configure --enable-libvpx
Похоже, он не возвращал никаких ошибок, но в нем перечислены внешние библиотеки, включенные декодеры, включенные кодеры и т. Д., А в нижней части он сказал:
Creating config.mak, config.h, and doc/config.texi...
config.h is unchanged
config.asm is unchanged
libavutil/avconfig.h is unchanged
Но когда я бегу:
ffmpeg -codecs
Возвращает:
configuration: --prefix=/usr/local/cpffmpeg --enable-shared --enable-nonfree --enable-gpl --enable-pthreads --enable-libopencore-amrnb --enable-decoder=liba52 --enable-libopencore-amrwb --enable-libfaac --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid --extra-cflags=-I/usr/local/cpffmpeg/include/ --extra-ldflags=-L/usr/local/cpffmpeg/lib --enable-version3 --extra-version=syslint
Который не содержит --enable-libvpx. Есть ли что-то, что мне не хватает? Как я могу включить libvpx?
Я использую CentOS 6.6. Спасибо за вашу помощь!
1 ответ
Сначала проверьте, действительно ли libvpx был включен. Мое предположение нет:
$ grep LIBVPX config.h
#define CONFIG_LIBVPX 1
#define CONFIG_LIBVPX_VP8_DECODER 1
#define CONFIG_LIBVPX_VP9_DECODER 1
#define CONFIG_LIBVPX_VP8_ENCODER 1
#define CONFIG_LIBVPX_VP9_ENCODER 1
Предполагая, что это говорит о 0 (имеется в виду: отключено), выясните почему, выполнив поиск "-lvpx" в config.log:
check_pkg_config vpx> = 0.9.1 vpx / vpx_decoder.h vpx / vp8dx.h vpx_codec_vp8_dx
pkg-config --exists --print-errors vpx> = 0.9.1
check_func_headers vpx / vpx_decoder.h vpx / vp8dx.h vpx_codec_vp8_dx -I / opt / local / include -L / opt / local / lib -lvpx -lm
check_ld cc -I / opt / local / include -L / opt / local / lib -lvpx -lm
check_cc -I / opt / local / include -L / opt / local / lib
НАЧАЛО /var/folders/fz/vjyfg5z12vj759mhd1t27r_m0000gn/T//ffconf.m3VTrQlx.c
1 #include
2 #include
3 long check_vpx_codec_vp8_dx (void) {return (long) vpx_codec_vp8_dx; }
4 int main (void) {return 0; }
END /var/folders/fz/vjyfg5z12vj759mhd1t27r_m0000gn/T//ffconf.m3VTrQlx.c
gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS = 64 -D_LARGEFILE_SOURCE -DPIC -I / Пользователи /ronaldbultje/ Проекты /libvpx -I/opt/local/include -std=c99 -fomit-frame-pointer -fPIC -pthread -I /include -L/opt/local/lib -c -o /var/folders/fz/vjyfg5z12vj759mhd1t27r_m0000gn/T//ffconf.9gSJKIir.o /var/folders/fz/vjyfg5z12vj759mhd1t27r_mffqf3TT00g.x
clang: warning: аргумент не используется во время компиляции: '-L / opt / local / lib'
gcc -L / Users /ronaldbultje/ Projects / libvpx / x86-64 -L / opt / local / lib -Wl, -dynamic, -search_paths_first -I / opt / local / include -L / opt / local / lib -o / вар / папки / FZ /vjyfg5z12vj759mhd1t27r_m0000gn/T//ffconf.kMUmUAaJ /var/folders/fz/vjyfg5z12vj759mhd1t27r_m0000gn/T//ffconf.9gSJKIir.o -lvpx -lm -framework CoreGraphics -lm -llzma -lbz2 -lz -pthread
В вашем случае вы, скорее всего, увидите, что эти тесты не пройдены, например, из-за того, что не удалось найти заголовочные файлы или библиотеки, на которые можно ссылаться. Скорее всего, это вызвано тем, что при использовании ссылок на libvpx не используются правильные cflags / libs. Чтобы это исправить, используйте --extra-cflags =.. и --extra-libs =.. при запуске configure. Например, когда вы помещаете заголовки libvpx в / path / to / libvpx / include и библиотеки в / path / to / libvpx / libs, используйте:
--extra-cflags='-I /path/to/libvpx/include' --extra-libs='-L /path/to/libvpx/libs'
В качестве дополнительных параметров настройки (т.е. в дополнение к --enable-libvpx). Тогда это должно работать. Также можно переместить заголовки libvpx в / usr / include и библиотеки libvpx в / usr / lib, и тогда они автоматически найдут их. (В типичных дистрибутивах Linux именно здесь менеджер пакетов по умолчанию помещает эти файлы.)