> 기타 외부 패키지 > ffmpeg

ffmpeg: 강력한 미디어 변환 및 처리 도구

ffmpeg는 오디오 및 비디오 파일을 변환, 스트리밍, 녹화, 편집하는 데 사용되는 매우 강력하고 다재다능한 오픈 소스 명령줄 도구입니다. 거의 모든 미디어 형식과 코덱을 지원하며, 복잡한 필터링 및 조작 기능을 제공합니다.

개요

ffmpeg는 미디어 파일의 인코딩, 디코딩, 트랜스코딩, 멀티플렉싱, 디멀티플렉싱, 스트리밍, 필터링 등 광범위한 작업을 수행할 수 있습니다. 다양한 플랫폼에서 사용 가능하며, 개발자 및 고급 사용자에게 필수적인 도구입니다.

주요 기능

  • 다양한 오디오/비디오 형식 간 변환
  • 비디오 크기 조정, 자르기, 회전 등 필터링
  • 오디오 추출 및 변환
  • 스트리밍 미디어 처리
  • 화면 녹화 및 웹캠 캡처

주요 옵션

ffmpeg는 수많은 옵션을 제공하지만, 다음은 가장 일반적으로 사용되는 옵션들입니다.

입력/출력 제어

비디오 옵션

오디오 옵션

시간 제어

생성된 명령어:

명령어를 조합해 보세요.

설명:

`ffmpeg` 명령어를 실행합니다.

위 옵션들을 조합하여 AI와 함께 가상으로 명령어를 실행해 보세요.

사용 예시

ffmpeg의 다양한 활용법을 보여주는 예시입니다.

MP4 파일을 AVI로 변환

ffmpeg -i input.mp4 output.avi

가장 기본적인 파일 형식 변환 예시입니다.

비디오 해상도 변경 (1280x720)

ffmpeg -i input.mp4 -vf scale=1280:720 output_hd.mp4

비디오의 해상도를 1280x720으로 변경합니다.

비디오에서 오디오 추출 (MP3)

ffmpeg -i input.mp4 -vn -acodec libmp3lame output.mp3

비디오 파일에서 오디오 스트림만 추출하여 MP3 파일로 저장합니다.

비디오의 특정 구간 자르기

ffmpeg -ss 00:00:10 -i input.mp4 -t 00:00:30 -c copy output_clip.mp4

비디오의 10초 지점부터 30초 길이만큼 잘라냅니다.

비디오를 GIF 애니메이션으로 변환

ffmpeg -i input.mp4 -vf "fps=10,scale=320:-1:flags=lanczos" -c:v gif output.gif

비디오를 저용량 GIF 애니메이션으로 변환합니다. 프레임 레이트와 스케일을 조정하여 최적화합니다.

설치

ffmpeg는 대부분의 리눅스 배포판에 기본으로 포함되어 있지 않으므로, 패키지 관리자를 통해 설치해야 합니다.

Debian/Ubuntu

sudo apt update
sudo apt install ffmpeg

APT 패키지 관리자를 사용하여 설치합니다.

Fedora/CentOS (dnf)

sudo dnf install ffmpeg

DNF 패키지 관리자를 사용하여 설치합니다. (EPEL 저장소가 필요할 수 있습니다.)

Arch Linux

sudo pacman -S ffmpeg

Pacman 패키지 관리자를 사용하여 설치합니다.

팁 & 주의사항

ffmpeg를 더욱 효율적으로 사용하기 위한 팁과 주의할 점입니다.

성능 최적화

  • `-ss` 옵션을 `-i` 앞에 두면 입력 파일 탐색 시간을 줄여 더 빠르게 시작할 수 있지만, 정확도는 떨어질 수 있습니다.
  • `-c copy` (스트림 복사)를 사용하면 인코딩/디코딩 과정 없이 스트림을 직접 복사하여 매우 빠르게 작업할 수 있습니다. 단, 출력 컨테이너가 입력 스트림을 지원해야 합니다.

코덱 이해

  • 비디오 코덱(예: `libx264`, `libvpx-vp9`)과 오디오 코덱(예: `aac`, `libmp3lame`)을 이해하는 것이 중요합니다. 적절한 코덱 선택은 파일 크기와 품질에 큰 영향을 미칩니다.
  • 일부 코덱은 기본 설치에 포함되지 않을 수 있으며, 추가 라이브러리 설치가 필요할 수 있습니다.

필터 그래프 활용

  • `-vf` (비디오 필터) 및 `-af` (오디오 필터) 옵션을 사용하여 복잡한 미디어 조작을 수행할 수 있습니다. 여러 필터를 쉼표(`,`)로 연결하거나 세미콜론(`;`)으로 필터 체인을 구성할 수 있습니다.

동일 카테고리 명령어