맥 동영상 gif로 변환하는 방법

mp4 혹은 mov(주로 스크린 레코딩)으로 만들어진 동영상 파일을 gif로 변환하는 방법에 대한 내용입니다. ffmpeg(터미널)을 통한 방법과 Drop to GIF(GUI 환경)에서의 작업 방법을 적어 놓았으니, 본인에게 편리한 방법을 선택하여 사용하시면 될 듯 합니다.


Drop to GIF를 활용한 방법

드래그 앤 드롭을 이용하여 간단하게 동영상 파일을 GIF로 변환하는 방법입니다.

OS X 10.10 이상의 OS에서 구동 가능한 앱이며, 필자의 OS 환경 (macOS Mojave 10.14 Beta)에서도 잘 동작합니다.

 

1) 아래 링크를 통해 Drop to GIF 앱을 다운로드 받습니다. ▼

2) 다운로드 받은 앱을 /Applications로 옮기고 실행합니다.

3) 영상을 드래그 앤 드롭으로 옮깁니다. ▼

* gif 파일은 mp4가 있는 디렉토리에 자동으로 생성됩니다.

4) 이미지 파일의 품질 관련 설정은 톱니바퀴를 눌러 하실 수 있습니다. ▼

  • FPS : 초당 프레임 수, 클수록 부드럽게 움직이며 용량이 커짐
  • MAX – px : 픽셀 수가 클수록 선명해지며, 용량이 커짐
  • Quality 지수 : Tiny and distorted 부터 Best quality, large file까지 설정 가능

소스 코드 다운로드

$ git clone https://github.com/mortenjust/droptogif.git

관련 링크


ffmpeg를 활용한 방법

익숙해지기만 하면, GUI 툴보다 훨씬 더 편리한 방법입니다.

 

ffmpeg 설치 방법 (ffmpeg가 없을 경우)

HomeBrew와 ffmpeg가 둘다 없다고 가정하고 적어 놓았습니다. 혹, 둘중 하나 혹은 둘다 이미 있으시다면 필요 없으신 단계를 건너 띄셔도 무방합니다. 자세한 설명은 아래 링크에 되어 있으니, 참조 바랍니다.

1) Terminal 앱을 열고, HomeBrew를 설치합니다.

$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

최신 버전 확인을 한번 해줍니다.

$ brew update

2) ffmpeg를 설치합니다.

$ brew install ffmpeg

동영상 GIF 변환 방법

ffmpeg가 설치된 상태에서 아래 내용을 진행하셔야 합니다.

1) gifenc.sh 다운로드 (아래 링크에서 Clone or Download > Download Zip) ▼

혹은

$ git clone https://github.com/thevangelist/FFMPEG-gif-script-for-bash.git

2) gifenc.sh 파일을 영상과 같은 위치에 두고 아래 커맨드를 실행(혹은 해당 위치의 gifenc.sh를 실행)

예시 : 바탕화면에 gifenc.sh와 변경하고자 하는 동영상 파일 ▼

gifenc.sh a.mp4 a.gif 720 30
gifenc.sh 바꿀동영상 바뀔gif 해상도 FPS

3) 성공적으로 gif 생성.

 

추가 팁

gifenc.sh 파일을 매번 영상과 같은 위치에 둘 수 없고 경로를 계속 기억할 수 없기 때문에, 아래와 같이 작업해두시면 향후에 편리합니다.

1) 적당한 위치(본인이 원하는)로 gifenc.sh 파일을 옮깁니다.

필자의 경우 ~ 디렉토리에 옮겼습니다.

2) .bash_profile을 엽니다. ▼

$ vi ~/.bash_profile

3) 아래 alias를 .bash_profile에 추가합니다. ▼

* 붉은색 부분에 본인이 gifenc.sh를 저장한 경로를 넣으셔야 합니다 그리고 movtogif는 향후 커맨드로 활용될 것이기 때문에 본인이 쉽게 기억할 수 있는 것으로 바꾸셔도 관계 없습니다.

alias movtogif="~/gifenc.sh"

4) 터미널을 재시작하시면, 아무 경로에서나 movtogif 커맨드를 이용해 gifenc.sh를 부를 수 있습니다. ▼

movtogif Apparition_trimmed.mp4 a.gif 720 10

 

해상도, FPS 고정

해상도와 FPS를 고정하고 싶으시면, gifenc.sh 파일을 열어 아래 붉은색/초록색 부분을

3번 줄 : if test $# -lt 4; then
16번 줄 : filters="fps=$4,scale=$3:-1:flags=lanczos"

아래와 같이 수정하시면 됩니다. 붉은색은 유동 초록색 고정

  • fps : FPS
  • scale : 해상도
#!/bin/sh

if test $# -lt 2; then
cat <<-EOH
$0: Script to generate animated gifs easily from command line.
Usage:
$0 input.(mp4|avi|webm|flv|...) output.gif horizontal_resolution fps
EOH
    exit 1
fi
palette="$(mktemp /tmp/ffmpeg2gifXXXXXX.png)"
filters="fps=30,scale=720:-1:flags=lanczos"
ffmpeg -v warning -i "$1" -vf "$filters,palettegen" -y "$palette"
ffmpeg -v warning -i "$1" -i $palette -lavfi "$filters [x]; [x][1:v] paletteuse" -y "$2"

rm -f "$palette"

또한, 커맨드 실행 시 해상도와 FPS 부분을 입력하실 필요가 없습니다. ▼

$movtogif Apparition_trimmed.mp4 a.gif


혹, 부족한 내용이 있으면 댓글로 알려주시면 감사 드립니다. 이상입니다.

댓글 남기기