Visual Studio 2013 C++ 소프트웨어 (궁극적으로 OpenCV 프로젝트의 일부로)에서 ffmpeg를 사용하려고합니다.하지만 지금은 기본 FFMPEG 기능을 얻으려고합니다. 일반적으로 Visual Studio에서 빌드 할 때 다중 스레드 DLL 런타임 라이브러리로 64 비트 소프트웨어를 빌드합니다. 나는 http://ffmpeg.org/platform.html#Windows에서 'MinGW-w64'를 사용하여 '기본 Windows 컴파일 사용'에 대한 일반적인 지침을 사용하여 ffmpeg를 작성했습니다 (아래에서 설명하는 단계별로 자세한 단계를 제공합니다 ...).Visual Studio 개발 용 FFMPEG 빌드
내 시스템에 ffmpeg 소프트웨어를 만든 후 Visual Studio 2013에서 간단한 'hello world'프로젝트를 만들려고했습니다. 특히 http://dranger.com/ffmpeg/tutorial01.html에 제시된 초기 자습서 파일을 구현하려고했습니다. 다음
c:\msys64\usr\local\ffmpeg\libavutil\common.h(45): fatal error C1083: Cannot open include file: 'libavutil/avconfig.h': No such file or directory
이는 FFmpeg을 구축하고 내 기본 비주얼 스튜디오 프로젝트 생성하기 내가했다 자세한 단계는 다음과 같습니다 :
을 ========== 프로젝트를 빌드하면, 나는 오류 == 건물의는 FFmpeg ===============
- 가 다운로드 및 http://msys2.github.io
- 에서 msys2-x86_64-20160205.exe을 intalled는 Msys2는 를 설치 업데이트 할
- 란
pacman -Suu
(두 번) 업데이트 완료 (바로 가기 업데이트에 대한 지침 등에 따라) - 그런 다음 MSys2 셸을 종료하고 MinGW-w64 Win64 셸을 열었습니다. 이 새로운 쉘에서 :
pacman -S <package-name>
을 사용하여 다음 패키지를 설치했습니다. 내가 설치 한 패키지 목록은 다음과 같습니다. make, pkg-config, diffutils, mingw-w64-x86_64-yasm, mingw-w64-x86_64-gcc, mingw- x86_64에-SDL, 자식- 은 그 때 나는
- 내가 '밖으로의 나무'이 MSys64 폴더의는 FFmpeg 라이브러리를 구축하고 싶어
git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg
를 실행cd /usr/local
에 cd'd. 그래서, 내 Windows 시스템의 일반 파일 시스템에 나는 C에서 폴더를 생성 :cd /c/ffmpeg
- 그런 다음 다음
make -r
을 /usr/loca/ffmpeg/configure --enable-shared
를 실행하십시오 Win64를 쉘 위로- 을 FFMPEG \,이 새 폴더에 cd'd 내가 추측이 있다면
- 그리고는 마지막으로
update-core
를 실행 0
make install
이제, 나의 '결함'는 FFmpeg의 '구성'스크립트를 호출 할 때 내가 사용하는 옵션에 있었다. Visual Studio에서 ffmpeg 라이브러리를 빌드하여 동적 (DLL) 라이브러리로 사용할 수 있도록 특정 옵션을 사용해야합니까? 내 비주얼 스튜디오 프로젝트 ============을
내가 있는지 확인하려면 Visual Studio에서 간단한 인사 세계 프로젝트를 생성하는 방법은 구성
========== ffmpeg가 작동 중입니다.
을 :
- 나는 다음과 같이 내가 다음 프로젝트 속성을 구성 2013
Visual Studio에서 새 Visual C++ '빈 프로젝트'를 만들었습니다.C/C++ => 일반 => 추가 포함 디렉토리에
C:\msys64\usr\local\ffmpeg
b. 링커 => 일반 => 추가 라이브러리 디렉토리에서 필자는 각 라이브러리 라이브러리 폴더를 가리켰습니다. (기본적으로 실수로 중요한 라이브러리가 누락되지 않도록하기 위해 빌드 된 라이브러리 ).
- C을 : 다음 목록은 FFmpeg에 \ \ 위해 libavcodec
- C :는 FFmpeg \의 libavdevice \
- C :는 FFmpeg \ \
- C libavfilter :는 FFmpeg \의 libavformat \
- C : \는 FFmpeg \ libavutil
- C : \의는 FFmpeg \의 libswresample
- C :는 FFmpeg \의 libswscale \
- C : 을 FFMPEG \
c. Linker => Input => Additional Dependencies에서 특정 라이브러리를 가리켰습니다. (다시 - 나는 현재 존재하는 모든 라이브러리를 지적했습니다.) 목록은 다음과 같습니다
- avdevice.lib
- avfilter.lib
- avformat.lib
- swresample.lib
- avutil.lib swscale.lib avcodec.lib
다 새로운 소스 파일 'tut01.c'라는 및 복사/
- 그런 다음 F7을 누르 http://dranger.com/ffmpeg/tutorial01.c에서 코드를 붙여 및 오류에 대한 위의이 같은 나의 추측이다
을 avconfig.h 찾지 못하는 이상으로 지정 받았습니다 (btw, Windows 10, 64 비트) & Microsoft Visual Studio 2013.이 기본 프로그램을 빌드하고 실행하려면 무엇을 변경해야합니까?
헤더를 찾을 수없는 경우 컴파일러는 include 디렉토리에 sth 오류가 있다고 불평합니다. 현재 링커 또는 외부 라이브러리와 아무 관련이 없습니다.따라서 프로젝트 속성 페이지 -> 구성 속성 -> VC++ 디렉토리 -> 디렉토리 포함으로 이동하여 헤더의 디렉토리를 추가하십시오. – halfelf
@halfelf 팁 주셔서 감사. 문제는 (그리고 나는 내 게시물에서 이것을 언급해야만한다.) libavutil 폴더에는 avconfig.h 헤더가 없다. 이것이 내가 ffmpeg 빌드를 잘못 구성했다고 생각하는 이유입니다. – gboy
신중히 읽지 않으셔서 죄송합니다. 이 경우 ffmpeg source dir에서 소스 코드를 찾아서 복사 할 수 있습니다. 그러나 전통적으로 말해서, 우리는 "--prefix = dir"옵션을 사용하여이 libs를 설정합니다. 그래서 모든 libs와 헤더는 빌드 후에 접두사 dir에있게됩니다. – halfelf