목차
0. 들어가기
최고의 라이브러리 중 하나를 꼽으라면 ffmpeg이다. 다양한 비디오/오디오 코덱 및 포맷 (컨테이너) 그리고 스트리밍까지 뭐하나 빠지는 것이 없다. 빌드된 라이브러리를 사용할 수 있고 입맛에 맞게 수정하여 사용할 수도 있다. (라이선스를 지켜야 하겠지만.) 어쨌든, 사랑받아왔고 앞으로도 쭉 사랑받을 라이브러리다.
1. QtAVPlayer 코드 받기
QtAVPlayer는 github에서 받을 수 있다.
https://github.com/valbok/QtAVPlayer
git을 사용해 받아도 되고 ZIP으로 소스코드를 받아도 되고 편한 방식으로 한다.
아래와 같이 소스코드가 준비되면 다음 단계로 이동하자.
2. 터미널 실행
QtAVPlayer github 페이지를 보면 여러 가지 빌드 방법이 있는데 문제는 개발 환경마다 되고 안되고의 차이가 있다는 것이다. 이것이 오픈소스의 유일한 단점이다.
여기서 사용하는 방법이 누군가에게는 맞지 않겠지만 일단 고~
나는 VS 2019로 빌드할 계획이라 2019 빌드 Command Prompt를 실행한다.
물론, 환경마다 다르고 설치 위치도 달라 자신의 환경에 맞게 직접 찾아 실행해야 한다.
일반적으로 시작 화면에서 "2019" (여기서는 Visual Studio 2019 사용)를 검색했을 때 나타나는 다음과 같은 것이다.
이와 같은 바로가기를 쫓아가면 아래와 같이 확인할 수 있고 아래의 배치파일을 실행해도 된다. 일단 여기서는 시작 메뉴에서 찾은 것을 사용!!
x86 버전을 사용할 예정이라 "x86 Native Tools Command Prompt for VS 2019"를 실행한다. 실행 후, nmake를 실행해서 실행되면 일단 OK!!
3. ffmpeg 라이브러리 받기
2단계까지 왔다면 빌드가 될 가능성이 있으니 ffmpeg 라이브러리를 받자.
소스코드를 받아 빌드 후 사용해도 되니 개인 선택에 맞기고 나는 귀찮으니 빌드된 라이브러리를 받아 사용할 계획이다. 사이트에서 보이는 게 shared library라서 일단 이것으로 받아 사용한다. ffmpeg 사이트를 가면 win64 라이브러리만 보이니 win32 라이브러리를 검색해서 받는다.
https://github.com/sudo-nautilus/FFmpeg-Builds-Win32/releases
4. QtAVPlayer 빌드
이렇게 모든 준비가 되었다면 빌드한다.
아래와 같이 자신의 환경에 맞게 준비한다. 보면 알만한 내용이니 자세한 설명을 넘어가자.
SET QtAVPlayer_BASE=E:\busyman\Qt\QtAVPlayer-master
SET QT_msvc2019_static_BASE=E:\_000\Qt\Qt5.12.12\5.12.12\msvc2019-static
SET LIBS_BASE=E:\busyman\Lib
SET FFMPEG_BASE=%LIBS_BASE%\ffmpeg-n4.4-latest-win32-gpl-shared-4.4
SET PATH=%FFMPEG_BASE%\bin;%FFMPEG_BASE%\lib;%QT_msvc2019_static_BASE%\bin;%PATH%
SET INCLUDE=%FFMPEG_BASE%\include;%QtAVPlayer_BASE%\src;%INCLUDE%
SET LIB=%FFMPEG_BASE%\lib;%LIB%
cd %QtAVPlayer_BASE%
qmake & nmake
위의 내용을 붙여 넣고 빌드를 하면 잘된다.
만약 아래 부분이 "no"로 나온다면 빌드 실패다. 이 경우 다시 라이브러리 경로를 확인하고 QtAVPlayer 소스코드를 지우고 새로 받아 시도해보자. 만약 이 부분에서 해결이 안된다면 다른 빌드 방법을 찾아보는 것이 좋을지도 모르겠다.
일단, 빌드 완료.
5. 예제 돌려보기
예제를 빌드하기 위해서는 examples 디렉터리로 들어가서 qmake & nmake를 하면 된다.
빌드에 문제가 없었다면 예제 3가지 모두 실행이 된다. 그 중 하나를 실행해보자. ffmpeg이 shared library여서 DLL 파일을 해당 디렉터리에 복사를 먼저 해야 한다. (시스템에 해당 경로가 등록되어 있다면 패스!!)
짜잔! 비디오 관련 개발을 해봤다면 한 번은 봤을 법한 영상이 재생된다.
'놀기 > Qt' 카테고리의 다른 글
warning: '_sleep' is deprecated (0) | 2022.08.01 |
---|---|
ffmpeg을 활용한 transcoder 만들기 (QProcess, 정규식 활용) (0) | 2022.05.06 |
MSVC2019 Static Library로 Qt 예제 빌드 해보기 (0) | 2022.05.01 |
QT Kit 추가 (0) | 2022.05.01 |
Qt 빌드하기 (Windows, MSVC2019, Static Library) (0) | 2022.04.24 |
댓글