🎬

FFmpeg

안대진. 2022
용도: 터미널에서 음성과 영상 변환 및 편집

1. 설치

1.1 Mac에 설치 (원문링크)

FFmpeg 다운로드
Homebrew 설치
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Bash
복사
FFmpeg 설치
$ brew install ffmpeg
Bash
복사

2. 동영상 합치기 (concat = Concatenate) 원문링크

현재 디렉토리의 동영상 목록을 텍스트 파일로 생성한다.
ls -v *.avi > videolist.txt
Bash
복사
videolist.txt 파일을 열어 아래 형식으로 수정한 후 저장한다.
file 'input 1.avi' file 'input 2.avi' file 'input 3.avi'
Bash
복사
그리고 아래 명령어를 사용하여 합친다. 이 방법은 인풋과 아웃풋 파일에 동일한 코덱을 사용하는 것이다.
ffmpeg -f concat -safe 0 -i videolist.txt -c copy output.avi
Bash
복사
파일 경로가 상대경로일 경우 -safe 0 옵션은 필요 없음
잠시 기다리면
output.mp4 파일이 생성된다.
(오디오 싱크가 안맞는 문제가 자주 발생한다. concat 의 문제인지 영상의 문제인지 확인이 필요하다)

3. 동영상 인코딩

3.1 단순 인코딩

출력 파일의 크기가 줄어든다
ffmpeg -i output.avi output.mp4
Bash
복사

3.2 코덱 유지하며 인코딩

출력 파일의 크기가 거의 동일하다
ffmpeg -same_quant -i filename.avi filename.mp4 또는 ffmpeg -i filename.avi -codec copy filename.mp4 또는 ffmpeg -i filename.avi -acodec copy -vcodec copy filename.mp4
Bash
복사

3.3 고급 인코딩

비디오 비트레이트를 64kbit/s 로 변환
ffmpeg -i input.avi -b:v 64k -bufsize 64k output.avi
Bash
복사
프레임 레이트를 24프레임으로 변환
ffmpeg -i input.avi -r 24 output.avi
Bash
복사
인풋 파일의 프레임 레이트를 1fps로(raw 포맷일 경우만 가능), 출력 파일의 프레임 레이트를 24fps로 변환
ffmpeg -r 1 -i input.m2v -r 24 output.avi
Bash
복사
위 포맷 옵션은 인풋 파일이 raw 형식이 아닌 경우 실행되지 않을 수 있습니다.