CMake에서 FFmpeg 라이브러리 가져오기

· by 박승재

이 글을 컴퓨터에 FFmpeg 라이브러리가 설치되어 있다는 것을 전제로 설명합니다.

만약 라이브러리가 설치되어있지 않다면 스크롤을 내려 FFmpeg 라이브러리를 먼저 설치해주세요.

CMake에서 FFmpeg를 불러오기 위해서는 아래 코드를 CMakeLists.txt에 추가합니다.

CMakeLists.txt:

find_path(AVCODEC_INCLUDE_DIR libavcodec/avcodec.h)
find_library(AVCODEC_LIBRARY avcodec)

find_path(AVFORMAT_INCLUDE_DIR libavformat/avformat.h)
find_library(AVFORMAT_LIBRARY avformat)

find_path(AVUTIL_INCLUDE_DIR libavutil/avutil.h)
find_library(AVUTIL_LIBRARY avutil)

target_include_directories(${PROJECT_NAME} PRIVATE ${AVCODEC_INCLUDE_DIR} ${AVFORMAT_INCLUDE_DIR} ${AVUTIL_INCLUDE_DIR})
target_link_libraries(${PROJECT_NAME} PRIVATE ${AVCODEC_LIBRARY} ${AVFORMAT_LIBRARY} ${AVUTIL_LIBRARY})

번외: FFmpeg 라이브러리 설치하기

Ubuntu

sudo apt update
sudo apt install libavcodec-dev libavformat-dev libavformat-dev

Windows

Vcpkg를 이용하는 방식이 가장 편리합니다.

Vcpkg를 다운로드해서 설치하는 방법은 Windows 10에서 Vcpkg를 이용해 Boost 라이브러리 설치하기를 참고하세요.

$ ./vcpkg install ffmpeg:x64-windows

정적 라이브러리는 ffmpeg:x64-windows-static으로 설치하면 됩니다.

$ ./vcpkg list
...
ffmpeg:x64-windows                                 4.2#23           a library to decode, encode, transcode, mux, dem...
ffmpeg[avcodec]:x64-windows                                         Codec support in ffmpeg
ffmpeg[avdevice]:x64-windows                                        Device support in ffmpeg
ffmpeg[avfilter]:x64-windows                                        Filter support in ffmpeg
ffmpeg[avformat]:x64-windows                                        Format support in ffmpeg
ffmpeg[avresample]:x64-windows                                      Libav audio resampling library support in ffmpeg
ffmpeg[postproc]:x64-windows                                        Postproc support in ffmpeg
ffmpeg[swresample]:x64-windows                                      Swresample support in ffmpeg
ffmpeg[swscale]:x64-windows                                         Swscale support in ffmpeg
...

목록에 ffmpeg가 나오면 FFmpeg가 잘 설치된 것입니다.

만약 CMake에서 계속 FFmpeg를 찾지 못하면 -DCMAKE_TOOLCHAIN_FILE 옵션을 확인해보세요.