«   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

OBS Studio 분석 (2) - 빌드 본문

분석

OBS Studio 분석 (2) - 빌드

라떼청년 2021. 3. 2. 01:08

 

 

OBS 빌드 방법에 대해서 설명하고자 합니다.
OBS 빌드는 이전 블로그에서 작성한 내용을 기반으로 준비가 진행된 이후 부터 진행을 합니다.

 

 

OBS Studio 분석 (1) - 준비

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

videocube.tistory.com

필자는 윈도우 OS 를 기반으로 빌드한 내용을 기록하였습니다.

1. 소스를 깃을 이용하여 내려받습니다.

git clone --recursive https://github.com/obsproject/obs-studio.git

--recursive Option 을 이용하여 서브모듈까지 내려받습니다.서브 모듈을 확인하는 방법은 

.gitmodules 을 편집기로 살펴보면, 다음과 같습니다.

- plugins/win-dshow/libdshowcapture
ㄴ https://github.com/obsproject/libdshowcapture.git

- plugins/mac-syphon/syphon-framework
ㄴ https://github.com/palana/Syphon-Framework.git

- plugins/enc-amf
ㄴ https://github.com/obsproject/obs-amd-encoder.git

- plugins/obs-browser
ㄴ https://github.com/obsproject/obs-browser.git

- plugins/obs-vst
ㄴ https://github.com/obsproject/obs-vst.git

- plugins/obs-outputs/ftl-sdk
ㄴ https://github.com/Mixer/ftl-sdk.git

 

위 서브 모듈의 각 기능은 추후 다뤄보도록 하고

필자는 다음 경로에 소스를 내려 받았습니다.

- E:\source\obs-studio
ㄴ Build 된 소스는 다음 경로에 생성합니다.

master 소스는 현재 작업중인 경우가 대부분이기 때문에 Tags 에 있는 한 버전으로 빌드를 진행하려 합니다.

git tag

현재 Tag 목록을 볼 수 있습니다

현재 최신 버전인 26.1.2 버전으로 Tag 를 checkout 합니다.

git checkout tags/26.1.2


local 로 branch 로 생성해야 하기 때문에 -b 옵션을 사용합니다.

git checkout -b 26.1.2

 

해당 경로로 가서 Build 폴더를 생성합니다.

필자는 E:\source\obs-studio\build 에 생성하였습니다.

2. CMake 를 실행합니다.

1) 소스 및 빌드 폴더 설정

- Source Code 는 E:\source\obs-studio 으로 하고
- Build 된 내용은 E:\source\obs-studio\build 으로 설정합니다.

2) Environment Editor 설정

github.com/obsproject/obs-studio/wiki/Install-Instructions#windows-install-directions

 

obsproject/obs-studio

OBS Studio - Free and open source software for live streaming and screen recording - obsproject/obs-studio

github.com

에 따르면 몇가지 환경 변수를 설정하라고 정의가 되어 있습니다

Environment Editor 에서 Add Entry 를 클릭하고, 다음 항목들을 입력해 주어야 합니다.


(1) DepsPath 는 이전 준비 블러그에서 다루었던 VS2019 용으로 사전 빌드된 항목으로서 다운로드를 받은 적이 있습니다.

필자는 dependencies2019 를 다음 경로에 압축을 해제 하여, D:\obs-deps 에 위치하고 있습니다. 

Name  : DepsPath32 
Value : D:\obs-deps\win32
Name  : DepsPath64 
Value : D:\obs-deps\win64

위와 같이 추가합니다.

(2) QTDIR : QT 설치 경로

Name : QTDIR32 
Value : D:\Qt\5.15.2\msvc2019
Name : QTDIR64 
Value : D:\Qt\5.15.2\msvc2019_64

(3) CEF_ROOT_DIR : Chromium Embedded Framework 설치 경로
    필자는 다음 경로에 다운로드 하여 압축 해제 하였습니다.

    Name : CEF_ROOT_DIR
    Value : D:\cef_binary\75.1.16

반드시 위 Environment Editor 에서 완료 버튼을 클릭해줘야 저장이 됩니다.

 

Generate 버튼을 클릭하면 다음 프로젝트 버전을 선택하라고 되어 있습니다

 

프로젝트 버전 설정 화면

 

완료를 클릭하면 다음과 같이 빌드가 진행이 됩니다.

 

만약 다음과 같이 에러가 발생이 된다면, 경로가 틀리게 설정이 된것이니 위 경로를 확인 및 변수명을 확인하셔서

설정해 주셔야 합니다.

경로 설정 및 변수명이 잘못기재되어 발생된 에러 화면

 

그러면 해당 폴더로 가서 실제 파일이 있는지 그리고 비쥬얼 스튜디오로 이동하여 목록을 확인합니다.

CMake 에서 Open Project 를 클릭하면 비쥬얼 스튜디오가 실행이 되며 해당 프로젝트를 로드해 줍니다.

추가) 

사이트에서는 clang-format 에 관련하여 다음과 같이 안내를 하고 있습니다.

VS2019 버전 보다 높은 clang-format 이 필요하다고 하여 설정하였으나, 필자의 경우에는 오류가 발생이 되지 않아 설정은 하지 않았으나 해당 오류가 발생하는 경우 위 내용과 같이 조치 하여 빌드를 하도록 합니다.

도구 > 옵션 > 텍스트편집기 > C/C++ > 코드 스타일 > 서식 > 일반 에 위치하고 있습니다.

사용자 지정 설정을 하여 설치된 LLVM 의 경로에서 clang-foramt 을 설정합니다.

 

Visual Studio 에서 디버거 버튼을 클릭하면 빌드가 실행이 되며, 실제 프로그램이 동작하는 것을 확인 할 수 있습니다.

CMakePredefinedTargets 를 클릭하면 4가지 Build 를 확인 할 수 있습니다.

 

여기에서 PACKAGE 를 빌드를 위해서는 다음 WIX 를 설치해야만 빌드가 됩니다.

확장 > 확장관리 > 온라인 > Wix 를 찾기 하면 다운로드 버튼이 나오면서 다음 사이트로 이동이 됩니다

 

Downloads (wixtoolset.org)

 

WiX toolset

Downloads

wixtoolset.org

 

설치를 한 이후에 다시 해당 Tool 을 비쥬얼 스튜디오에서 실행하려면, 다음 확장 툴을 설치 하여야 합니다.

빌드를 실행하게 되면 해당 폴더에 

obs-studio-x64-26.1.2-modified.msi 가 생성되는 것을 확인 할 수 있습니다.

빌드는 성공적으로 완료가 되었습니다.

이 소스의 프로젝트를 분석하여, 추후 저에게 도움이 될 만한 정보를 수집해 보도록 하겠습니다.

1개의 소스로 3가지의 OS 를 빌드하는 방법에 있어서, 간단한 프로젝트도 생성해 볼수 있으면 해보려고 합니다.

1. 시작 지점은 어디서 부터 시작이 되는지
2. 화면 생성은 어떻게 하며, 해당 화면 UI 는 어떻게 사용을 하는지.
3. 폴더는 어떻게 구성이 되어 있는지
4. 플러그인들은 어떤 것들을 사용하고 있는지 

그외에 많은 정보가 포함되어 있는 소스이기 때문에 다양한 부분에서 분석을 진행해 보고

언제가 될지 모르겠지만, 시간이 허락만 한다면 다양한 학습의 기회가 되었으면 하는 바램입니다.

반응형

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

FFmpeg 분석 (2) - 빌드  (0) 2023.12.31
OBS Studio 분석 (3) - 구조  (0) 2021.03.08
OBS Studio 분석 (1) - 준비  (1) 2021.02.21
[MPEG TS] 구조 분석  (0) 2018.01.02
HLS ( Http Live Streaming ) 분석하기  (4) 2017.12.12
Comments