PromleeBlog
sitemapaboutMe

posting thumbnail
Mac에서 폴더 액션을 이용해 파일 자동 변환하기 (webp, gif, png, mp4)
Decoding and Encoding Files with Folder Actions on Mac (webp, gif, png, mp4)

📅

🚀

들어가기 전에🔗

성능, 품질상의 문제로 인해 웹에서 사용하는 이미지나 동영상 파일을 변환해야 할 때가 있습니다. 이런 변환 작업을 수동으로 하다보면 귀찮고 시간이 많이 걸리는데요. 이번 포스팅에서는 Mac에서 폴더 액션을 이용해 파일 변환 작업을 자동화하는 방법을 알아보겠습니다.
필자는 블로그에 올리는 파일로 변환하기 위해 mp4, gif, png 형태의 파일을 webp로 변환하는 작업을 자동화했습니다. 이를 통해 파일 변환 작업을 자동화하고 시간을 절약할 수 있었습니다.

🚀

환경 세팅🔗

먼저, Homebrew가 설치되어있는 환경에서 ffmpeg를 설치합니다. Homebrew가 설치되어있지 않다면 홈브루 설치하기를 참고해 설치하고 다음 명령어를 실행합니다.
brew install ffmpeg
원하는 곳에 폴더를 생성하고 폴더의 이름을 변경해줍니다. 저는 제일 먼저 mp4 to webp 변환을 위한 mp4_to_webp 폴더를 바탕화면에 생성했습니다.
image
🖐️
이후에 폴더 액션 설정을 완료하면 파일명을 변경할 수 없게 됩니다. 따라서 폴더명을 신중하게 변경해주세요!
finder의 응용 프로그램 메뉴에서 Automator를 실행합니다. 폴더 적용 스크립트을 선택합니다.
image
이제 이전에 만든 폴더를 선택 후 선택된 finder 항목 가져오기를 추가해줍니다
image
유틸리티 항목에서 쉘 스크립트 실행을 추가한 후 통과 입력을 '인수'혹은 'as arguments'로 변경합니다.
image
이제 모든 준비는 끝났습니다. 스크립트를 작성해보겠습니다.

🚀

스크립트 작성🔗

모든 예제는 원본 파일 삭제 후 /Users/{사용자명}/Documents 폴더에 저장됩니다. 원하는 경로로 변경해주세요.

video to webp (mp4, mov to webp)🔗

for f in "$@"; do
    /opt/homebrew/bin/ffmpeg -n -loglevel error -i "$f" -vf "fps=15,scale=720:-1:flags=lanczos" -loop 0 "/Users/promlee/Documents/$(date +"%y%m%d-%H%M%S").webp"
    rm -f "$f"
done
다음 표는 스크립트에서 사용된 명령어와 옵션에 대한 설명입니다.
명령어설명
for f in "$@"입력된 각 파일(f)을 순차적으로 처리하는 반복문.
/opt/homebrew/bin/ffmpegHomebrew로 설치된 ffmpeg 실행.
-n기존에 같은 이름의 파일이 있으면 덮어쓰지 않음.
-loglevel error오류 메시지만 출력하고, 기타 불필요한 로그는 숨김.
-i "$f"입력 파일($f, 즉 변환할 영상 파일).
-vf비디오 필터 옵션.
"fps=15"초당 18프레임으로 변환 (프레임 수를 줄여서 용량을 줄임).
"scale=720:-1"가로 720px로 조정, 세로는 비율 유지 (-1은 자동 계산).
"flags=lanczos"고품질 리샘플링(스케일링) 알고리즘 사용.
-loop 0WebP 애니메이션을 무한 반복하도록 설정.
-f변환이 완료된 원본 영상 파일($f)을 삭제.

png to webp🔗

for f in "$@"; do
    /opt/homebrew/bin/cwebp -q 70 "$f" -o "/Users/promlee/Documents/$(date +"%y%m%d-%H%M%S").webp";
    rm -f "$f"
done

video to gif🔗

for f in "$@"; do
    /opt/homebrew/bin/ffmpeg -n -loglevel error -i "$f" -vf "fps=15,scale=720:-1:flags=lanczos" "/Users/promlee/Documents/$(date +"%y%m%d-%H%M%S").gif";
    rm -f "$f"
done

🚀

적용 및 결과 화면🔗

저장 버튼을 눌러 스크립트를 저장해준 후 스크립트가 잘 동작하는 지 확인해봅니다. 스크립트가 정상적으로 동작하면 파일 변환이 완료된 후 원본 파일이 삭제됩니다.
image
설정을 완료한 후 폴더 우클릭, '폴더 적용 스크립트 설정'을 클릭하면 폴더 액션이 적용되었는지 확인할 수 있습니다.
image
좌측 폴더명, 우측 스크립트명
좌측 폴더명, 우측 스크립트명

🚀

용량 변화 기록🔗

mp4
2MB
gif968KB
webp459KB
png
194KB
webp41KB

🚀

결론🔗

Mac OS의 폴더 액션을 이용해 파일 변환 작업을 자동화하는 방법을 알아보았습니다. 이 시스템이 너무 강력해져서 더 많은 작업으로 확장하고 싶다는 생각이 들었습니다. 이제 폴더를 모든 명령줄 앱의 인터페이스로 전환할 수 있기 때문입니다. 이제 제 데스크톱은 그 어느 때보다 유용해졌습니다:)

더 생각해 보기🔗

참고🔗