명령 줄에서 ffmpeg의 libvpx 라이브러리를 활성화 할 수 없습니다.


0

이것은 내가 수퍼 유저에게 물어 본 첫 번째 질문이므로 표면에 나와야한다면 내 무지로 오래 기다려주십시오. 나는 이것을 이해하기 위해 수 시간을 보냈으며 당신의 도움에 크게 감사 할 것입니다.

최근에 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을 실행 중입니다. 당신의 도움을 주셔서 감사합니다!


아마도 실제로 가지고 있지 않습니다. libvpx 귀하의 빌드에 사용할 수 있습니다. 그 config.h is unchanged 이상해. 의 가치는 무엇입니까? CONFIG_LIBVPX 너의 config.h 귀하의 FFmpeg 빌드 디렉토리의 루트 디렉토리에? 또한, 아마도 당신은 ffmpeg -buildconf 귀하의 질문의 마지막 부분에 대한 출력.
— Baris Demiray

답변:


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 (의미 : 사용 안 함)이라고 가정하고 config.log에서 "-lvpx"를 검색하여 이유를 파악합니다.

check_pkg_config vpx & gt; = 0.9.1 vpx / vpx_decoder.h vpx / vp8dx.h   vpx_codec_vp8_dx
pkg-config --exists --print-errors vpx & gt; = 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
BEGIN /var/folders/fz/vjyfg5z12vj759mhd1t27r_m0000gn/T//ffconf.m3VTrQlx.c
1 #include & lt; vpx / vpx_decoder.h & gt;
2 #include & lt; vpx / vp8dx.h & gt;
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 / opt / local / include -L / opt / local / lib -c -I / 사용자 / ronaldbultje / 프로젝트 / libvpx -I / opt / local / include -std = c99- 프레임 프레임 포인터 -fPIC- -o /var/folders/fz/vjyfg5z12vj759mhd1t27r_m0000gn/T//ffconf.9gSJKIir.o   /var/folders/fz/vjyfg5z12vj759mhd1t27r_m0000gn/T//ffconf.m3VTrQlx.c
clang : 경고 : 컴파일 중에 사용되지 않은 인수 : '-L / opt / local / lib'
gcc -L / Users / ronaldbultje / Projects / libvpx / x86-64 -L / opt / local / lib   -l / -dynamic, -search_paths_first -I / opt / local / include -L / opt / local / lib -o /var/folders/fz/vjyfg5z12vj759mhd1t27r_m0000gn/T//ffconf.kMUmUAaJ / var / folders / fz / vjyfg5z12vj759mhd1t27r_m0000gn / T // ffconf.9gSJKIir.o   -lvpx -lm -framework CoreGraphics -lm -llzma -lbz2 -lz -pthread

예를 들어, 링크 할 헤더 파일이나 libs를 찾을 수 없기 때문에 이러한 테스트가 실패한 것으로 볼 수 있습니다. 이것은 libvpx와 연결하려고 할 때 올바른 cflags / libs를 사용하지 않아 발생했을 수 있습니다. 이를 수정하려면 configure를 실행할 때 --extra-cflags = .. 및 --extra-libs = ..를 사용하십시오. 예를 들어, / path / to / libvpx / include에 libvpx 헤더를 넣고 / 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 배포판에서는 기본 패키지 관리자가이 파일을 넣을 곳입니다.)

당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.