0. 개요
ubuntu에 ffmpeg를 설치하고, 자주 사용하는 명령어에 대해 정리하기 위해 작성한 글
1. FFMPEG 설치
아래의 명령어를 터미널에 입력하여 설치
sudo apt install ffmpeg # 우분투 환경
brew install ffmpeg # 맥 환경
아래의 명령어를 터미널에 입력하여, 설치된 버전을 확인할 수 있음
ffmpeg -version
2. 자주 사용하는 명령어
연구 및 프로젝트를 하면서 자주 이용했던 명령어들을 아래에 정리하였음
2.1. 다수의 영상 파일을 하나의 파일로 합치기
우선 영상 파일 합칠 준비를 위해 영상 파일이 존재하는 폴더로 이동 후, videolist.txt
파일을 생성하고 해당 파일에 아래의 내ㅐ용 입력
file 'a.mp4'
file 'b.avi'
file 'c.mkv'
...
이후 아래의 명령어를 터미널에 입력
ffmpeg -f concat -safe 0 -i videolist.txt -c copy output.mp4
2.2. 2개의 영상 파일을 가로 혹은 세로로 이어붙이기
아래의 명령어를 터미널에 입력
ffmpeg -i input1.mp4 -i input2.mp4 -c:v libx264 -filter_complex "[0:v][1:v]#stack=inputs=2[v]" -map "[v]" output.mp4
명령어 중 ...[1:v]#stack=...
부분이 있는데, 가로로 이어붙이려면 #
에 h
를, 세로로 이어붙이려면 #
에 v
를 입력하면 됨
즉 가로로 이어붙이려면 hstack
, 세로로 이어붙이려면 vstack
이용
2.3. 4개의 영상 파일을 2x2로 이어붙이기
아래의 명령어를 터미널에 입력
ffmpeg -i input1.mp4 -i input2.mp4 -i input3.mp4 -i input4.mp4 -filter_complex "[0:v][1:v]hstack=inputs=2[top];[2:v][3:v]hstack=inputs=2[bottom];[top][bottom]vstack=inputs=2[v]" -map "[v]" output.mp4
2.4. 영상 파일의 특정 부분을 crop 하기
아래의 명령어를 터미널에 입력
ffmpeg -i input.mp4 -c:v libx264 -c:a copy -filter:v "crop=width:height:left_top_x:left_top_y" output.mp4
영상에서 (left_top_x, left_top_y)
의 위치로 부터 width
와 height
를 가진 box 만큼 crop을 수행하게 되며, (left_top_x, left_top_y)
의 입력을 생략할 경우, 영상의 중심을 기준으로 width
와 height
를 가진 box 만큼 crop을 수행
2.5. 영상 해상도 변경
아래의 명령어를 터미널에 입력
ffmpeg -i input.mp4 -vf "scale=AxB" output.mp4
명령어 중 ...scale=AxB...
부분이 있는데, 본인이 원하는 해상도를 A
(가로)와 B
(세로)에 입력하면 됨
예를 들어 1280x720 해상도로 변경하고 싶다면, scale=1280x720
을 입력하면 됨
2.6. 영상 확장자와 그에 따른 코덱 변환
mov 파일을 mp4 파일로 변환하기 위해 아래의 명령어를 터미널에 입력
ffmpeg -i input.mov -vcodec h264 -acodec aac output.mp4
2.7. 영상의 모든 프레임을 이미지로 추출
아래의 명령어를 터미널에 입력
ffmpeg -ss 00:00:00 -i input.mp4 -q:v 1 output/%08d.jpg
명령어를 입력하면 output 폴더에 8자리 길이의 숫자로 프레임이 저장됨(00000001.jpg, 00000002.jpg, ...)
즉, 다양한 이미지 확장자와 파일 형식을 지정하여 이용할 수 있음
2.8. 다수의 이미지 파일을 하나의 영상 파일로 만들기
아래의 명령어를 터미널에 입력
ffmpeg -r 25 -i input/%08d.jpg -vcodec libx264 output.mp4
-r 옵션 뒤의 숫자는 영상의 FPS를 뜻하며, 현재 명령어 기준으로 input 폴더안의 이미지 파일은 8자리 길이의 숫자로 이루어져야하며, 1 부터 순서대로 시작하여야 함(00000001.jpg, 00000002.jpg, ...)
2.9. 영상의 FPS 변경
아래의 명령어를 터미널에 입력
ffmpeg -i input.mp4 -r 25 output.mp4
-r 옵션 뒤의 숫자에 본인이 원하는 FPS 값을 입력