FFmpeg 사용하여 동영상 합치기, 인코딩하기

edited February 2023 in 기타 오픈소스

FFmpeg은 오픈소스 동영상 인코딩 소프트웨어입니다.

AtoM과 Omeka 등에도 사용되는 유명한 툴입니다.
여러 개의 영상을 한꺼번에 포맷 변환하거나 합치는 작업에 유용합니다.
터미널에서 명령 프롬프트로 실행되며 그리 어렵지 않으니 따라서 해 보세요.
아래 설명은 Mac에서 실행하는 방법입니다.
Linux 나 Windows는 본문 링크의 원문에서 찾아보세요.

1. 설치

1.1 Mac에 설치 (원문링크)

FFmpeg 다운로드

https://www.ffmpeg.org/download.html


Homebrew 설치

/bin/bash -c "$(curl -fsSL <https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh>)"

FFmpeg 설치

$ brew install ffmpeg


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

 현재 디렉토리의 동영상 목록을 텍스트 파일로 생성한다.

ls -v *.mp4 > videolist.txt

videolist.txt 파일을 열어 아래 형식으로 수정한 후 저장한다.

file 'input 1.mp4'
file 'input 2.mp4'
file 'input 3.mp4'

그리고 아래 명령어를 사용하여 합친다.

ffmpeg -f concat -safe 0 -i videolist.txt -c copy output.mp4

잠시 기다리면 output.mp4 파일이 생성된다.

(오디오 싱크가 안맞는 문제가 자주 발생한다. concat 의 문제인지 영상의 문제인지 확인이 필요하다)



3. 동영상 인코딩

3.1 단순 인코딩

출력 파일의 크기가 줄어든다

ffmpeg -i output.avi output.mp4

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

3.3 고급 인코딩

(원문 : https://ffmpeg.org/ffmpeg.html#Description)

비디오 비트레이트를 64kbit/s 로 변환

ffmpeg -i input.avi -b:v 64k -bufsize 64k output.avi

프레임 레이트를 24프레임으로 변환

ffmpeg -i input.avi -r 24 output.avi

인풋 파일의 프레임 레이트를 1fps로(raw 포맷일 경우만 가능), 출력 파일의 프레임 레이트를 24fps로 변환

ffmpeg -r 1 -i input.m2v -r 24 output.avi

위 포맷 옵션은 인풋 파일이 raw 형식이 아닌 경우 실행되지 않을 수 있습니다.



원문 : 아카이브랩 홈페이지 https://achieved-pamphlet-53f.notion.site/FFmpeg-465b04af97ae42cdbfc31ade45c6f54e

Sign In or Register to comment.