CentOS 7.4.1708: ОШИБКА: x265 не найден при использовании pkg-config

Я пытаюсь скомпилировать ffmpeg с поддержкой Nvidia, следуя инструкциям на https://trac.ffmpeg.org/wiki/CompilationGuide/Centos и https://developer.nvidia.com/ffmpeg. Я закончил со следующей командой:

PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure --enable-pthreads --disable-w32threads --prefix="$HOME/ffmpeg_build" --pkg-config-flags="--static" --extra-cflags="-I$HOME/ffmpeg_build/include -I/usr/local/cuda/include" --extra-ldflags="-L$HOME/ffmpeg_build/lib -L/usr/local/cuda/lib64" --extra-libs='-lpthread -lm' --bindir="$HOME/bin" --enable-gpl --enable-libfdk_aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-nonfree --enable-cuda --enable-cuvid --enable-nvenc --enable-nonfree --enable-libnpp

Я получаю чудесную ошибку

ОШИБКА: x265 не найден при использовании pkg-config

Ищу в ffbuild/config.log выявляет следующую ошибку:

gcc -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -I/home/agilbert/ffmpeg_build/include -I/usr/local/cuda/include -std=c11 -fomit-frame-pointer -pthread -I/home/agilbert/ffmpeg_build/include -I/usr/include/freetype2 -I/home/agilbert/ffmpeg_build/include/opus -I/home/agilbert/ffmpeg_build/include/opus -I/home/agilbert/ffmpeg_build/include -I/home/agilbert/ffmpeg_build/include -I/home/agilbert/ffmpeg_build/include -I/home/agilbert/ffmpeg_build/include -I/home/agilbert/ffmpeg_build/include -I/home/agilbert/ffmpeg_build/include -I/home/agilbert/ffmpeg_build/include -I/home/agilbert/ffmpeg_build/include -L/home/agilbert/ffmpeg_build/lib -c -o /tmp/ffconf.MfrVBc4k/test.o /tmp/ffconf.MfrVBc4k/test.c
In file included from /tmp/ffconf.MfrVBc4k/test.c:1:0:
/home/agilbert/ffmpeg_build/include/x265.h:1753:40: error: expected ';', ',' or ')' before '&' token
 FILE* x265_csvlog_open(const x265_param& param);
                                        ^
/home/agilbert/ffmpeg_build/include/x265.h:1757:40: error: expected ';', ',' or ')' before '&' token
 void x265_csvlog_frame(const x265_param& param, const x265_picture& pic);
                                        ^
/home/agilbert/ffmpeg_build/include/x265.h:1762:64: error: expected ';', ',' or ')' before '&' token
 void x265_csvlog_encode(x265_encoder *encoder, const x265_stats& stats, int argc, char** argv);
                                                                ^
/home/agilbert/ffmpeg_build/include/x265.h:1766:36: error: expected ';', ',' or ')' before '&' token
 void x265_dither_image(x265_picture& pic, int picWidth, int picHeight, int16_t *errorBuf, int bitDepth);
                                    ^
/home/agilbert/ffmpeg_build/include/x265.h:1815:50: error: expected ';', ',' or ')' before '&' token
     FILE*         (*csvlog_open)(const x265_param&);
                                                  ^
/home/agilbert/ffmpeg_build/include/x265.h:1816:51: error: expected ';', ',' or ')' before '&' token
     void          (*csvlog_frame)(const x265_param&, const x265_picture&);
                                                   ^
/home/agilbert/ffmpeg_build/include/x265.h:1817:67: error: expected ';', ',' or ')' before '&' token
     void          (*csvlog_encode)(x265_encoder*, const x265_stats&, int, char**);
                                                                   ^
/home/agilbert/ffmpeg_build/include/x265.h:1818:47: error: expected ';', ',' or ')' before '&' token
     void          (*dither_image)(x265_picture&, int, int, int16_t*, int);
                                               ^
/home/agilbert/ffmpeg_build/include/x265.h:1820:1: warning: no semicolon at end of struct or union [enabled by default]
 } x265_api;
 ^

gcc-версия gcc-4.8.5-16.el7.x86_64

В соответствии с вопросом ниже: Да - x265 установлен согласно https://trac.ffmpeg.org/wiki/CompilationGuide/Centos и да, pkg-config находит его. Ошибка компиляции заставляет меня думать, что я пропускаю флаг в опции --pkg-config-flags, но я не могу найти тот, который работает.

Кто-нибудь знает, что я должен перейти к pkg-config, чтобы он включил x265?

1 ответ

Решение

На случай, если это кому-нибудь еще поможет, в конце концов я понял, что мне не нужно предоставлять опцию --enable-libx265 когда вы также указываете --enable-nvenc,

Я до сих пор не знаю, что было ошибка компиляции, но с --enable-nvenc Вы можете кодировать в H.265 с ускорением GPU на базе nVidia.

Другие вопросы по тегам