FFmpeg는 비디오, 오디오 등의 멀티미디어 파일을 처리할 수 있는 프로그램입니다. 이 프로그램으로 할 수 있는게 너무 많아서 공식 웹사이트의 설명에는 '오디오와 비디오를 기록하고(record), 변환하고(convert), 스트리밍(stream)하는 완전한 크로스 플랫폼 솔루션이다' 라고 합니다.

 

프로그래밍 적으로 ffmpeg는 오픈소스 라이브러리(프레임워크)로 동영상 플레이어를 만들거나 멀티미디어 콘텐츠를 다루는 앱개발에서 유용하게 사용할 수 있습니다. (영상 관련 개발에는 필수적으로 알아둬야 하는 라이브러리) ffmpeg C++ 관련 강의나 튜토리얼은 별로 많지 않아서 나중에 시간이 있을 때 한번 다뤄보면 어떨까 싶습니다. 물론 이 포스팅은 프로그래밍이 아니라 FFmpeg를 설치하고 사용하는 내용입니다.

 

 

FFmpeg 설치하기(윈도우, 우분투)

FFmpeg 는 공식 웹사이트에서 다운로드 받을 수 있습니다. 리눅스, 윈도우, MacOS 의 패키지를 선택할 수 있습니다.

 

Download FFmpeg

 

Download FFmpeg

If you find FFmpeg useful, you are welcome to contribute by donating. More downloading options Git Repositories Since FFmpeg is developed with Git, multiple repositories from developers and groups of developers are available. Release Verification All FFmpe

ffmpeg.org

 

윈도우라면 Scoop을 사용하는 것도 괜찮습니다.

 

윈도우 패키지 매니저 Scoop 설치와 사용법 (tistory.com)

 

윈도우 패키지 매니저 Scoop 설치와 사용법

Scoop(스쿱)은 윈도우의 패키지 매니저입니다. 패키지 매니저는 쉽게 말하면 인스톨러(installer - 설치기)라고 할 수 있습니다. 우리가 윈도우에서 앱이나 프로그램을 설치할 때 exe 파일을 실행하여

digiconfactory.tistory.com

 

scoop.sh에서 검색해보면 main 버킷에 있습니다.

scoop install ffmpeg

scoop ffmpeg

 

설치가 완료되면 버전을 체크해봅니다. 윈도우용은 MSYS의 gcc로 빌드된거네요.

 ffmpeg -version

 

우분투는 다음의 명령어로 설치가능합니다.

sudo apt update
sudo apt install ffmpeg

 

사용가능한 코덱을 출력합니다. -endcoders 가 엔코더이고 -decoders가 디코더입니다. 엔코딩은 파일을 코딩(암호화)시키는 기능이고 디코딩은 암호화된 파일을 푸는 기능입니다. 출력해보면 상당히 많은 종류의 엔코더와 디코더가 들어있습니다. 인터넷이 발전 과정에서 많이 사용되었던 웬만한 포맷들은 대략 다 들어 있는데요. 코덱은 특허가 있기 때문에 유료 코덱을 이용한 동영상의 변환 등을 할 때는 라이센스에 대해 체크하도록 주의합니다.

ffmpeg -encoders

엔코더 출력

mp3 변환하기

간단한 mp3 변환부터 시작해 보겠습니다. 샘플 mp3 영상을 다운로드 받아서 ogg 파일로 변환합니다. -i는 인풋파일을 말하고 뒤에 나오는 ogg 파일은 아웃풋 파일입니다. -hide_banner는 좀 더 깔끔하게 결과를 볼 수 있도록 합니다.

 ffmpeg -i sample2.mp3 sample.ogg -hide_banner

 

파일 포맷(엔코더)을 지정하지 않아도 ffmpeg가 알아서 파일 확장자를 기반으로 변환합니다. 

ffmpeg mp3 변환

 

mp4 변환하기

마찬가지로 간단한 명령어로 mp4에서 다른 포맷으로 변환할 수 있습니다. 요즘은 avi를 점점 안 쓰지만 한때 동영상 확장자에 avi 많이 봤었지요. 코덱과 상세사항을 지정하지 않고 avi로 변환하면 화질이 좀 떨어지는 대신 용량이 줄어들게 됩니다.

ffmpeg -i sample_4min.mp4 output.avi

코덱 지정하기

핸드폰으로 촬영한 영상을 코덱을 지정해 변환해봤습니다. -c:v는 비디오 엔코더 -c:a는 오디오 엔코더를 넣습니다. 엔코더는 위의 내용처럼 -encoders 옵션에서 볼 수 있습니다.

ffmpeg -i sample_4min.mp4 -c:v mpeg4 -c:a ac3 output.mp4

 

 

h264 코덱이 mpeg4로 매핑됩니다. 560메가에 4분짜리 영상이 110메가 정도로 압축되더군요. (영상에 따라 압축률이 다름) 해상도는 그대로지만 화질은 약간 손실이 있는 것 같았습니다. 아무래도 압축률이 높으면 흐릿해지는 부분이 생겨납니다. 하지만 용량대비 가성비가 좋네요.

 

ffmpeg 기본 변환하기

 

출력 파일을 확인해보면 코덱이 바뀌었습니다.

 

ffmpeg 기본 사용

 

여기까지 기본 변환 방법이고 디테일한 내용은 ffmpeg 문서를 참고합니다.

 

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

 

ffmpeg Documentation

Table of Contents ffmpeg [global_options] {[input_file_options] -i input_url} ... {[output_file_options] output_url} ... ffmpeg is a very fast video and audio converter that can also grab from a live audio/video source. It can also convert between arbitrar

www.ffmpeg.org

공유하기

facebook twitter kakaoTalk kakaostory naver band