Linux에서 소스 코드를 사용하여 FFmpeg 빌드하기
이 페이지에서는 Linux에서 FFmpeg을 구성하고 빌드하는 방법을 설명합니다. 필요한 단계는 다음과 같습니다:
- FFmpeg 소스 코드를 가져옵니다.
- 필요한 종속성을 설치합니다.
- 명령줄에서 FFmpeg을 구성합니다.
- 개발용 라이브러리를 빌드합니다.
FFmpeg 소스 코드 구하기
다음과 같은 방법으로 FFmpeg 소스 코드를 얻을 수 있습니다:
- FFmpeg 다운로드 페이지에서 다운로드합니다.
- Git에서 클론합니다. 예를 들어, 다음 명령어는 FFmpeg 소스 코드 버전 9.0.1을
~/ffmpeg로 클론합니다.git clone --branch n9.0.1 https://git.ffmpeg.org/ffmpeg.git ffmpeg
Qt Multimedia 메인 페이지에 명시된 것과 동일한 FFmpeg 버전을 사용하는 것이 좋습니다.
다음 설명은 FFmpeg 소스 코드를 ~/ffmpeg 에 저장한 것을 전제로 합니다.
필수 조건
FFmpeg를 빌드하려면 다음 도구와 패키지가 필요합니다:
- Yasm.
- 선택한 보안 백엔드에 대한 개발자 패키지(아래 참조).
패키지 설치
필요한 패키지(FFmpeg용 Yasm 포함)를 설치하려면 다음 명령을 실행하십시오:
apt-get install yasm또한, 보안 백엔드를 활성화하는 경우 해당 개발자 패키지가 필요합니다. 예를 들어:
apt-get install libssl-dev다른 백엔드의 경우, 관련 패키지를 설치하십시오:
- OpenSSL의 경우:
libssl-dev. - GnuTLS의 경우:
libgnutls-dev. - LibreSSL(libtls)의 경우:
libtls-dev. - MbedTLS의 경우:
libmbedtls-dev.
FFmpeg 구성 및 빌드
~/ffmpeg 디렉터리 내에 build 디렉터리를 생성하고 해당 디렉터리로 이동합니다:
mkdir ~/ffmpeg/build
cd ~/ffmpeg/buildFFmpeg을 구성하려면 다음 명령을 실행합니다:
../configure --prefix=/usr/local/ffmpeg --disable-doc --enable-network --enable-shared--prefix 인수는 빌드 후 FFmpeg 개발 라이브러리가 설치될 경로를 지정합니다. 문서 옵션은 필요하지 않지만, 네트워크 기능은 활성화해야 합니다. FFmpeg를 정적 라이브러리로 빌드하려면 --enable-shared 옵션을 생략하십시오.
보안 백엔드를 사용하여 FFmpeg을 빌드하는 경우, 적절한 옵션을 선택하십시오:
../configure --enable-openssl # For OpenSSL
../configure --enable-gnutls # For GnuTLS
../configure --enable-libtls # For LibreSSL (libtls)
../configure --enable-mbedtls # For MbedTLS앞서 언급한 대로 해당 개발자 패키지가 설치되어 있는지 확인하십시오.
하드웨어 가속
기본적으로 FFmpeg는 적절한 패키지가 설치되지 않은 경우 하드웨어 가속 없이 빌드됩니다. 특히 GPU를 지원하는 시스템에서 더 나은 성능을 얻으려면 VAAPI 개발 패키지를 설치하는 것이 좋습니다:
apt-get install libva-dev이렇게 하면 FFmpeg가 구성 과정에서 VAAPI 지원을 감지할 수 있게 됩니다.
FFmpeg을 NVIDIA 그래픽 카드와 함께 사용할 경우, NVIDIA 코덱 헤더를 설치해야 합니다. 이 헤더는 다음 저장소에서 다운로드할 수 있습니다: GitHub의 NVIDIA 코덱 헤더.
헤더를 빌드하고 설치하려면 다음 명령어를 실행하십시오:
mkdir ~/nv-codec-headers
cd ~/nv-codec-headers
git clone https://github.com/FFmpeg/nv-codec-headers.git
mkdir build
cd build
make -j installnv-codec-headers 가 사용 중인 NVIDIA 드라이버 버전과 호환되는지 반드시 확인하십시오. 최신 nv-codec-headers 는 구버전 드라이버와 호환되지 않을 수 있습니다. 자세한 내용은 공식 문서를 참조하십시오.
자동 감지 비활성화
기본적으로 FFmpeg는 빌드 시스템에서 사용 가능한 종속성을 자동으로 감지하려고 시도합니다. 여기에는 하드웨어 가속 및 보안 백엔드가 포함됩니다. 자동 감지를 비활성화하려는 경우(예: 불필요한 종속성을 컴파일하지 않으려는 경우), 다음을 사용할 수 있습니다:
../configure --disable-autodetect보안 백엔드나 하드웨어 가속과 같은 추가 종속성을 사용하여 FFmpeg를 빌드하는 경우, 대상 시스템에 필요한 라이브러리가 설치되어 있는지 확인하십시오. 이를 처리하는 방법에는 여러 가지가 있습니다:
- FFmpeg과 함께 종속성 바이너리를 제공하십시오.
- 대상 시스템에 필요한 바이너리가 설치되어 있는지 확인합니다.
- 실제 라이브러리를 조회할 수 있는 라이브러리 스텁을 구현하고, 실제 라이브러리를 찾을 수 없는 경우 오류 코드를 반환하도록 합니다.
Linux의 RPATH 및 RUNPATH
리눅스에서 FFmpeg는 라이브러리 경로를 관리하기 위해 RPATH 및 RUNPATH 메타데이터 섹션을 모두 사용합니다. 올바른 런패스를 설정하려면 patchelf 유틸리티를 사용하는 것이 좋습니다:
patchelf --set-rpath "new/runpath" lib.so기본적으로 patchelf 는 RUNPATH를 수정합니다. 리눅스에서는 RPATH가 더 이상 사용되지 않는 것으로 간주되기 때문입니다. 상대적 런패스를 설정하려면 $ORIGIN 변수를 사용할 수 있으며, 이 변수는 경로를 실행 파일의 위치에 상대적으로 지정합니다:
patchelf --set-rpath "$ORIGIN/../lib" lib.so이 방법은 라이브러리를 상대 경로를 기준으로 링크함으로써 이식성을 보장합니다.
FFmpeg 빌드
configure 명령어가 완료되면, make 명령어를 사용하여 FFmpeg를 빌드하고 설치합니다.
make -j install오류 없이 빌드가 완료되면 FFmpeg 개발 라이브러리가 /usr/local/ffmpeg 디렉터리에 설치됩니다. Qt Multimedia 로 빌드하는 경우, 이 경로는 Qt Multimedia 를 구성할 때 사용되는 FFMPEG_DIR 변수에 저장됩니다.
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.