명령 줄에서 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.