Subscribe to New Posts

Lorem ultrices malesuada sapien amet pulvinar quis. Feugiat etiam ullamcorper pharetra vitae nibh enim vel.

Subscribe Zalgritte's Blog cover image
Zalgritte profile image Zalgritte

Mac OS에서 MP4를 WebP로 변환하기

Automator에서 셸 스크립트를 설정하여, mp4 파일을 webp로 원클릭 변환할 수 있는 방법을 소개합니다.

Mac OS에서 MP4를 WebP로 변환하기

저번 포스팅을 위해 영상을 편집하고, Webp로 출력하려는데

프리미어 프로에서는 Webp로 내보내기가 없다...! (Webm은 가능)

내가 원하는 것은 Webp인데... MP4 to Webp는 제대로된 프로그램도 없었다.

유료 소프트웨어를 써본 것은 아니지만... 최소 30mb, 10개 이상의 파일을 한번에 변환할 수 있는 방법은 그리 많지 않았다.

물론 Ezgif 사이트를 사용할 순 있지만, 일일이 업로드하고 대략 5분정도 기다려야 한다.

이것보다 쉬운 방법을 열심히 뒤지다가 ChatGPT를 통해 답을 얻었다.

3줄요약
  1. Homebrew로 ffmpeg를 설치한다.
  2. Automator - 빠른 동작 - 셸 스크립트(Shell Script)에서 코드를 붙여넣는다.
  3. 변환할 파일을 우클릭 - 빠른 동작 을 누르면 끝.


1. Homebrew 설치하기
💡
먼저, 이 글은 "맥에서 간편하게 webp 변환하는 법.howtowebp"을 참고하였다.
처음에는 이 글만 보고 될 줄 알았으나, mp4는 영상이기 때문에 적용이 안됐다(!)
Homebrew
The Missing Package Manager for macOS (or Linux).

위 Homebrew에서 제공하는 코드를 터미널에 붙여넣는다.

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

비밀번호를 입력하고, 엔터 몇 번 누르면 설치 완료!

2. ffmpeg 다운로드

설치가 되었으면 바로 ffmpeg도 다운로드받는다. (약 1분 소요)

brew install ffmpeg

이 코드도 터미널에 입력하기

알아서 ffmpeg 패키지를 설치해준다

완료가 되었으면 which ffmpeg 그리고 which ffprobe 를 입력해서, 경로를 적어둔다.

내 경우는 /opt/homebrew/bin/ffmpeg 이다.

이 경로가 추후 스크립트에 사용된다.

3. Automator 설정
웬만한 맥 전문가가 아니면 쓸 일이 없는 앱

Automator는 맥에서 자동화, 매크로 같은 것을 사용할 때 종종 쓴다. (별로 안써봄)

앱을 실행해서 새로운 문서 - 빠른 동작을 선택해준다.

그런 다음, 유틸리티 - 셸 스크립트 를 드래그하여 작업 흐름에 넣어준다.

셸 스크립트를 작업 흐름에 추가하기

최종 결과물은 아래 화면이 될 것이다.

이것과 똑같이 만들면 완료
  • 현재 수신하는 작업흐름 : 동영상 파일
  • 선택 항목 위치 : Finder
  • 셸 : /bin/bash
  • 통과 입력 : 인수
  • 셸 내용
for f in "$@"
do
  if [[ $f == *.mp4 ]]; then
    width=$(/opt/homebrew/bin/ffprobe -v error -select_streams v:0 -show_entries stream=width -of csv=p=0 "$f")
    if (( width > 800 )); then
      /opt/homebrew/bin/ffmpeg -i "$f" -vf "scale=800:-1,fps=fps=20" -q:v 80 -loop 0 "${f%.*}.webp"
    fi
  fi
done

복사해서 붙여넣어주세요.

혹시, ffprobe & ffmpeg 경로가 다른 분은 수정해서 넣어야 한다.(/opt/homebrew/bin/ffmpeg 이부분)

이 코드에 적용된 옵션은 몇가지가 있다.

  • 원본 동영상이 800px보다 큰 경우, 800px로 조정한다.
    • 보통 웹용으로 볼 때 이보다 크게 넣는 경우는 잘 없을 것 같아서 설정했음
  • -q:v 80 (퀄리티 80%)
    • 0~100 사이에서 숫자를 조절하면 반영된다.
    • 약 9mb 동영상 파일이 q:v 80으로 변환하면, 1.2mb
    • 같은 파일은 q:v 100으로 변환하면 약 4mb
  • fps=20 (20프레임)
    • 보다 자연스러운 것을 원하면 24, 30 등으로 수정하기

그런 다음, ⌘(cmd) + S를 눌러 저장을 한다.

다음과 같이 이름을 적당히 설정한다.

4. 변환하기

이후에는 MP4파일을 우클릭 - 빠른 동작 에서 원클릭으로 변환을 수행할 수 있다.

우클릭 메뉴에서 사용할 수 있는 스크립트

이렇게 초기 설정만 해두면, 따로 응용프로그램을 사용할 필요 없이 언제든지 변환을 원클릭으로 순식간에 할 수 있다.

mp4와 webp 용량 비교. 이 포스팅에서도 유용하게 사용되었다.


여담1 - ChatGPT

서두에서 밝혔듯, 이 코드는 직접 짠 것은 아니고... 여러 글을 참조하여 ChatGPT를 통해 다듬었다.

코드 인터프리터(Code Interpreter)가 정말 실생활에 많은 도움을 준다.

혹시 코드 인터프리터에 대해 더 많은 활용 사례를 보고 싶은 분들은 아래 링크를 참고하시길.

코드 인터프리터 활용 사례 모음 (슬라이드 + 링크 포함) | GPTers 그룹
이제 막 오픈한 코드 인터프리터 (Code Interpreter) 에 대한 활용 사례들을 모아봤습니다! 제가 직접 사례들을 만들면서 느꼈던 점은, “이건 GPT4.5다…” 였습니다. 그냥 코드를 잘 짜주고 파일을 잘 활용하는 정도가 아닙니다. 알아서 해주는 에이전트 입니다. 23.07.11에 처음 작성 되었습니다. 계속 업데이트 할 예정입니다. 구글 슬라이드 링크 : https://docs.google.com/presentation/d/…

여담2 - Nibbles

mp4 to webp 응용프로그램중에는 "Nibbles"라는 것이 있다.

귀여운 디자인에 파일을 넣으면 먹어 삼키는 인터랙션도 있다.

써본 결과, 여러 파일을 업로드하면 뻗어버린다.

한 두개 정도의 파일은 괜찮으나...

여러 파일을 연속으로 작업하기 시작하면 기하급수적인 메모리를 사용하면서 멈춘다.

잘은 모르지만 쓰로틀링(Throttling) 설정이 잘못되있지 않나 싶다.


혹시나 궁금한 점은 이메일로 남겨주시면 답해드리겠습니다.

Zalgritte profile image Zalgritte
프로덕트 디자이너로 근무했습니다. 현재는 프론트엔드 개발을 배우고 있습니다. 인터랙티브 웹을 좋아합니다.