FFMpeg Compile (+Visual Studio 2017)

정어리·2023년 10월 15일
0

ffmpeg_mediaPlayer

목록 보기
1/1

  • 중구난방 주의

FFMpeg Study

사용하기로 한 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


공식적인 Wiki는 여기

https://trac.ffmpeg.org/

  • 내용 보면 ffmpeg 컴파일 하는 방법.. 비디오, 오디오 코덱들의 인코딩 방법과 가이드.. 하드웨어 가속, 캡쳐, 스트리밍, 필터, 프레임, 서브타이틀 관련 내용, ffmpeg 사용해서 프로그램 개발하는 방법(C++ 도 있다), 기타 등등 유용한 정보들에 대한 것도 적혀있다

컴파일 관련해서는 내부 doc 폴더 내에 general contents.texi 내에서도 뭔가 설명해둔 게 있는 것같더라


컴파일 툴에 대한 내용은 여기

https://ffmpeg.org/platform.html

  • Unix OS - BSD, Solaris, MacOS 등등 있는데 우리한테 중요한건 MacOS 니까 다른 내용은 건너뛴다
    • MacOS 는 기본적으로 XCode 툴체인이 필요함
    • ARM 체제의 아이폰용 최적화된 어셈블리 빌드 시 gas-preprocessor가 필요함.
  • Windows : mingw, msvc, cygwin 모두 지원하고 리눅스와 크로스 컴파일도 지원함
    • 리눅스 크로스컴파일 하려면 mingw 크로스 컴파일 도구 이용해야함.
      • 근데 mingw 빌드할 수 있는 msys를 사용하는 거를 별로 추천하지 않는대. 대신 mingw64_shell.bat 처럼 비트 수 기입되어있는 애 사용하는 거를 추천하는데 정확히는 mingw64.exe 같은 애들을 사용하라는 소리였다.
    • MSYS 사용해서 빌드해보고 싶었어

잘 모르겠는거1 - Unix랑 Linux랑 뭔차이인데?

- 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로 생성된다

    • 단, PC 기본 OS언어로 에러 출력되기 때문에 인코딩 언어 잘 선택해줘야 정확한 에러 확인이 가능함.
  • prefix 폴더 만들고 싶으면 -prefix=/home/${USER}/INSTALLED configure 할 때 지정

profile
기록하자, 매일 새로우니.

0개의 댓글