FFmpeg 명령어 설명: 다양한 작업 예제
FFmpeg은 강력한 오픈 소스 멀티미디어 프레임워크로, 동영상 및 오디오 파일의 변환, 편집, 추출 등을 수행할 수 있습니다. 아래는 FFmpeg 명령어의 다양한 활용 사례를 설명한 예제입니다.
FFmpeg
Converting video and audio has never been so easy. $ ffmpeg -i input.mp4 output.avi News September 30th, 2024, FFmpeg 7.1 "Péter" FFmpeg 7.1 "Péter", a new major release, is now available! A full list of changes can be found in the release changelo
www.ffmpeg.org
1. 동영상에서 일정 간격으로 프레임 추출
ffmpeg -i input.mp4 -vf "fps=1/5" .\output\output%04d.png
설명
- -i input.mp4: 입력 파일을 지정합니다. 여기서는 input.mp4를 사용합니다.
- -vf "fps=1/5": 비디오 필터를 사용해 초당 1/5 프레임(즉, 5초에 한 프레임)을 추출합니다.
- .\output\output%04d.png: 출력 이미지 파일의 이름 형식을 지정합니다. %04d는 4자리 숫자로 파일 이름을 붙이며, 예를 들어 output0001.png, output0002.png와 같은 형식으로 저장됩니다.
활용 예
동영상에서 일정 간격으로 이미지를 추출하여 썸네일 생성에 활용할 수 있습니다.
2. 동영상에서 일정 프레임 속도로 이미지를 추출하고 해상도 조정
ffmpeg -i input.mp4 -vf "fps=5,scale=1920:1080" .\output\output%04d.png
설명
- -vf "fps=5,scale=1920:1080": 초당 5프레임을 추출하며, 이미지의 해상도를 1920x1080으로 조정합니다.
- .\output\output%04d.png: 출력 파일 이름 형식을 지정합니다.
활용 예
동영상을 분석하거나 고해상도의 이미지 데이터를 생성할 때 유용합니다.
3. 동영상 해상도 조정 및 품질 최적화
ffmpeg -i input.mp4 -vf "scale=1600:-1" -qscale:v 1 output.mp4
설명
- -vf "scale=1600:-1": 동영상의 가로 해상도를 1600픽셀로 조정하며, 세로 해상도는 비율을 유지하도록 자동 계산합니다(-1).
- -qscale:v 1: 출력 비디오의 품질을 설정합니다. 값이 작을수록 품질이 높고 파일 크기가 커집니다(1이 가장 높은 품질).
활용 예
동영상 크기를 조정하면서 높은 품질을 유지해야 할 때 사용합니다.
4. 동영상의 특정 구간 추출
ffmpeg -i input.mp4 -ss 00:00:00 -to 00:08:14 output.mp4
설명
- -ss 00:00:00: 시작 시간을 설정합니다(여기서는 0초).
- -to 00:08:14: 종료 시간을 설정합니다(8분 14초).
- output.mp4: 지정된 구간의 동영상을 저장합니다.
활용 예
동영상의 특정 부분만 잘라내고 싶을 때 사용합니다.
5. 특정 구간 추출 및 해상도 조정
ffmpeg -i input.mp4 -ss 00:00:00 -to 00:08:14 -vf "scale=1600:-1" -qscale:v 1 output.mp4
설명
- -ss 00:00:00 -to 00:08:14: 특정 구간(0초부터 8분 14초까지)을 추출합니다.
- -vf "scale=1600:-1": 가로 해상도를 1600픽셀로 조정하고 세로 비율은 자동 계산합니다.
- -qscale:v 1: 품질을 높게 설정합니다.
활용 예
필요한 구간만 추출하면서 해상도를 조정하고 품질을 유지하고자 할 때 사용합니다.
6. 여러 동영상 파일을 하나로 합치기
ffmpeg -i video_list.txt -safe 0 -f concat -c copy output.mp4
설명
- video_list.txt: 합칠 동영상 파일 목록이 포함된 텍스트 파일입니다. 파일 형식은 아래와 같습니다:
file 'video1.mp4' file 'video2.mp4' file 'video3.mp4'
- -safe 0: 파일 경로의 안전성 검사를 비활성화합니다.
- -f concat: 파일을 병합하는 concat 포맷을 사용합니다.
- -c copy: 비디오 및 오디오 데이터를 다시 인코딩하지 않고 복사하여 빠르게 병합합니다.
활용 예
동영상을 다시 인코딩하지 않고 빠르게 여러 파일을 하나로 합칠 때 사용합니다.
7. 동영상 속도 4배 빠르게 재생
ffmpeg -i input.mp4 -vf "setpts=(1/4)*PTS" -an output.mp4
설명
- -vf "setpts=(1/4)*PTS": 프레임 타임스탬프(PTS)를 재설정하여 동영상을 4배 빠르게 만듭니다. (1/4) 값은 속도를 나타냅니다.
- -an: 오디오를 제거합니다.
활용 예
타임랩스 효과를 만들거나 빠르게 재생되는 동영상을 생성할 때 유용합니다.
결론
FFmpeg는 다양한 작업을 수행할 수 있는 강력한 도구입니다. 위의 명령어들은 동영상 편집, 해상도 조정, 프레임 추출, 속도 변경 등 여러 가지 상황에서 활용할 수 있습니다. 작업에 따라 적절한 옵션을 사용하여 원하는 결과를 얻으시길 바랍니다!