사용하기로 한 FFmpeg 버전은 5.1.3 Riemann. 각 라이브러리 버전정보는 다음과 같다.
libavutil 57. 28.100
libavcodec 59. 37.100
libavformat 59. 27.100
libavdevice 59. 7.100
libavfilter 8. 44.100
libswscale 6. 7.100
libswresample 4. 7.100
libpostproc 56. 6.100
컴파일 관련해서는 내부 doc 폴더 내에 general contents.texi 내에서도 뭔가 설명해둔 게 있는 것같더라
컴파일 툴에 대한 내용은 여기
https://ffmpeg.org/platform.html
- Unix는 1960년 개발된 OS. 여러 플랫폼에서 실행할 수 있는 최초의 운영체제.
- 독점 운영체제이기에 사용자는 개발사의 요구사항에 매우 많은 제한을 받음. 또 돈주고 사야하는 경우가 많음
- 일반적으로 대규모 컴퓨터시스템에서 사용하는 경우가 많음. 예를 들어 서버.
- Solaris, MacOS, BSD가 그 예.
- Linux는 Unix의 변종. 무료 및 오픈 소스이고 매우 다양한 사용자 정의가 가능함.
- 오픈소스이기에 누구나 소스코드 수정이 가능함.
삽질을 좀 했는데.. visual studio 2017은 터미널을 직접적으로 연결하는 게 없어서 필요하면 아래 경로 bat 파일 직접 실행해야함
C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\Tools
비트가 워낙 중요하다보니 ffmpeg 위키에서는 32비트로 할건지 64비트로 할건지를 vcvarsall.bat 통해서 지정하라고 하는데 그럴 필요없이 시작 창에서 64it는 “VS 2017용 x64 네이티브 도구 명령 프롬프트”를 실행한다.
해당 프롬프트를 실행한 후에 mingw32_shell.bat나 msys.bat 를 실행한다.
근데 실행할 때 C:\msys64\msys2_shell.cmd -use-full-path 이거로 입력해야함
그러면 msys.exe 파일이 별도로 실행되더라.
실행되고 나면 mingw는 link라는 것을 사용하기 때문에 PATH 순서를 바꿔줘야 함.
아래 명령어 입력
export PATH="/c/Program Files (x86)/Microsoft Visual Studio/2017/Professional/VC/Tools/MSVC/14.16.27023/bin/HostX86/x64/":$PATH
visual studio는 host x86 환경이므로 맞춰줘야함. 단 뒤에 x64는 자기 pc사양에 맞춰서 적어줘야함.
which link 사용했을 때 /usr/bin/link 참고 안하면 ok
거의 다됐다.
msys2가 접근가능한 프로젝트 경로로 가서 ./configure —target-os=win64 —arch-x86_64 —toolchain=msvc 하면 쭉 configure 하고 다시 루트 경로로 이동 후 make, make install 실행.
dynamic library 만들거면 —enable-shared 해줘야함.
configure 에러는 ffbuild 폴더에 config.log로 생성된다
prefix 폴더 만들고 싶으면 -prefix=/home/${USER}/INSTALLED configure 할 때 지정