«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

VIDEOCUBE

FFmpeg 분석 (2) - 빌드 본문

분석

FFmpeg 분석 (2) - 빌드

라떼청년 2023. 12. 31. 08:22

현 게시된 글은 FFMpeg 에 게시된 글은 MinGW, MSYS을 사용하지 않고, WSL 을 이용한 윈도우 빌드를 기반으로 작성되었습니다.

 

1. 준비하기

1) WSL 을 설치 하도록 합니다. 자세한 내용은 다음 글을 참조하여 주시면 됩니다.

Window10 WSL 로 Ubuntu 설치하기 (tistory.com)

 

Window10 WSL 로 Ubuntu 설치하기

기존 Ubuntu 설치는 Multi OS로 설치가 진행이 되어 윈도우와는 별개의 OS 로 재부팅을 거쳐Grub 를 통하여 OS 진입 점을 선택하였으나, 세상이 참 좋아졌다. 우선 윈도우에서 Ubuntu 재부팅을 하지 않고

videocube.tistory.com

 

2) Visual Studio 설치하기

필자는 기존 OBS Studio 빌드를 해봄으로서 Visual Studio 2019가 설치 되어 있습니다.

OBS Studio 분석 (1) - 준비 (tistory.com)

 

OBS Studio 분석 (1) - 준비

코로나로 인해서 많은 사람들이 비대면을 선호하고 이로 인해 많은 이들로 하여금, 라이브 방송을 접하고 있다. 라이브커머스(Live Commerce), 웨비나(WEBINAR) 등 비대면 상품들이 등장을 하게 되고,

videocube.tistory.com

 

3) FFmpeg 소스 다운로드 하기

https://ffmpeg.org/download.html

 

Download FFmpeg

If you find FFmpeg useful, you are welcome to contribute by donating. More downloading options Git Repositories Since FFmpeg is developed with Git, multiple repositories from developers and groups of developers are available. Release Verification All FFmpe

ffmpeg.org

 

필자는 Source Code 를 Git 으로 연결하여 설정하였습니다.

Git 에 연결하는 SourceTree 등을 이용하여, 윈도우 환경에서 소스를 받게 되면,

configure 파일 등에 개행이 추가 되는 경우가 생기므로, 빌드 시 많은 애로 사항이 발생이 됩니다.

되도록이면, ubuntu WSL 을 이용하여, Git 으로 Clone 해 주시기 바랍니다.

필자는 D:\develop\ffmpeg 에 clone 을 하였으며, clone 시 https 인증서 문제로 연결이 되지 않는다면, 

https > http 로 하거나, 

git clone http://git.ffmpeg.org/ffmpeg.git ffmpeg

http.sslVerify 를 False 로 설정 후 연결하시면 됩니다.

git config --global http.sslVerify false

최초 받은 소스는 master 에서 직접 받아온 버전이기 때문에 버전 선택 후 checkout 을 하도록 합니다.

git checkout release/6.1

필자는 현재 2023 11월 10일 FFmpeg 6.1 "Heaviside" 버전으로 빌드를 진행하려 합니다.

4) FFmpeg 소스 빌드 하기

위 소스까지 모두 준비를 마쳤으면, 현재 사용한 WSL (Ubuntu) 를 닫고,
윈도우 시작 버튼을 눌러 Visual Studio 2019 폴더에서 Developer PowerShell for VS 2019 를 눌러
관리자 모드로 실행합니다.

위와 같은 창이 나타나면 다음 명령어를 실행합니다.

wsl

위 명령어를 실행 하게 되면 다음과 같은 화면을 보게 됩니다.

FFmpeg 소스가 있는 디렉토리로 이동을 합니다.

필자는 D:/develop/ffmpeg 에 있으므로 다음과 같이 입력합니다.

cd /mnt/d/develop/ffmpeg

해당 폴더로 이동이 되었다면, 다음 명령어를 입력하도록 합니다.

./configure \
--toolchain=msvc \
--arch=x86_64 \
--enable-yasm \
--disable-x86asm \
--enable-asm \
--enable-shared \
--enable-w32threads \
--disable-doc \
--disable-static \
--prefix=/mnt/d/ffmpeg/

위 명령어를 실행하였을 때, 에러가 발생을 한다면, Git 으로 소스를 받을 때, 개행이 자동으로 추가 되는 경우가 있어 발생이 될 수 있으니, 만약 개행이 존재 한다면 WSL 환경에서 다시 받으시거나, 개행을 없애야 합니다.

개행의 문제는 configure 파일 뿐만아니라, 빌드 시에 사용되는 compat/windows 에 사용되는 스크립트 모두 개행이 추가 되어 빌드에 영향을 받을 수 있으니 꼭 리눅스 환경에서 연결하여 작업하시길 권합니다.

위 명령어를 실행하게 되면 현재 정의된 설정 정보 및 디코더, 인코더 등 실행 가능한 정보가 출력이 되며 완료가 됩니다.

물론 다음 내용은 빌드에는 구지 문제가 없으나, 글자가 깨져 노출이 될 수 있으므로

vi config.h

를 하여

#define CC_IDENT 부분을 영문으로 변경 해 주시면 됩니다.

make 
make install

make 를 진행 하게 되면, 여러 경고 메세지를 확인 할 수 있는데, 무시 하고 진행하면 됩니다.

상당히 오랜 시간동안 빌드를 진행하게 됩니다.

후 make install 을 하게 되면 

--prefix=/mnt/d/ffmpeg/

prefix 에 지정된 폴더로 파일이 생성됩니다

 

폴더 구조

                    bin 폴더에는  각종 라이브러리와 ffmpeg, ffprobe 실행 파일이 있습니다.

bin 폴더

                     include 폴더에는 각종 라이브러리의 header 파일이 있습니다.

include 폴더

                      lib 폴더에는 pkgconfig 와 def 파일이 있습니다. 
                      - 주의 : linux 에서 build 를 진행하였기 때문에 pkgconfig 의 경우 linux 경로로 적용되어 있습니다.
                        사용에 유의 해 주세요

lib 폴더

                       preset 정보 와 활용 예제 파일이 있습니다.

share 폴더

 

다음은 위 내용이 정상적으로 빌드가 되었는지, 빌드가 된 라이브러리를 다른 프로젝트에서 활용하는 방법을
기술하도록 하겠습니다.

반응형

'분석' 카테고리의 다른 글

FFmpeg 분석 (1) - 이해  (0) 2023.12.31
OBS Studio 분석 (3) - 구조  (0) 2021.03.08
OBS Studio 분석 (2) - 빌드  (1) 2021.03.02
OBS Studio 분석 (1) - 준비  (1) 2021.02.21
[MPEG TS] 구조 분석  (0) 2018.01.02
Comments