ffmpeg를 이용해서 영상에 로고 추가하기

소은비·2021년 11월 14일
4

1. 개요

ffmpeg를 이용하여 간단하게 동영상에 로고를 붙이는 방법을 알아봅시다.

동영상에서 특정 위치에 로고 등의 워터마크 이미지가 고정되도록 할 수 있으며,
command의 옵션으로 어느 위치에 붙일지 조정도 가능합니다.

2. 방법

원본 영상(mp4)와 로고이미지(png)를 가지고, 여러 위치에 로고를 붙여 새로운 영상을 만들어 봅시다.

저는 아래의 영상과 이미지를 이용해보도록 하겠습니다.

영상예시: video.mp4

로고이미지 예시: logo.png

기본 command

원본 영상에 로고를 붙이는 기본 ffmpeg command는 아래와 같습니다.

ffmpeg -y -i {원본영상.mp4} -i {로고이미지.png} -filter_complex "overlay=x={로고_x좌표}:y={로고_y좌표}" {아웃풋영상.mp4}

  • -filter_complex 옵션: 로고이미지의 왼쪽상단을 기준으로 x, y 좌표 지정. 아래와 같이 원본영상의 크기(가로, 세로 길이)와 로고이미지의 크기(가로, 세로 길이)를 이용하여 왼쪽상단, 오른쪽상단 등의 위치 지정 가능
    - main_h: 원본영상의 세로 길이
    - main_w: 원본영상의 가로 길이
    - overlay_h: 로고이미지의 세로 길이
    - overlay_w: 로고이미지의 가로 길이

1) 왼쪽 상단에 각각 n pixel만큼 떨어진 곳에 붙이기

ffmpeg -y -i video.mp4 -i logo.png -filter_complex "overlay=10:10" OUT_1.mp4

2) 가운데에 붙이기

ffmpeg -y -i video.mp4 -i logo.png -filter_complex "overlay=x=(main_w-overlay_w)/2:y=(main_h-overlay_h)/2" OUT_CENTER.mp4

3) 왼쪽 상단에 붙이기

ffmpeg -y -i video.mp4 -i logo.png -filter_complex "overlay=x=main_w*0.01:y=main_h*0.01" OUT_TOP_LEFT.mp4

4) 오른쪽 상단에 붙이기

ffmpeg -y -i video.mp4 -i logo.png -filter_complex "overlay=x=main_w-overlay_w-(main_w*0.01):y=main_h*0.01" OUT_TOP_RIGHT.mp4

5) 왼쪽 하단에 붙이기

ffmpeg -y -i VIDEO.mp4 -i subscribe.png -filter_complex "overlay=x=main_w*0.01:y=main_h-overlay_h-(main_h*0.01)" OUT_BOTTOM_LEFT.mp4

6) 오른쪽 하단에 붙이기

ffmpeg -y -i video.mp4 -i logo.png -filter_complex "overlay=x=main_w*0.01:y=main_h-overlay_h-(main_h*0.01)" OUT_BOTTOM_LEFT.mp4

3. 마치며

만약 로고이미지에 투명도를 주고싶다면, 로고이미지(png) 자체에 투명도를 주면 됩니다.

Reference

https://openwritings.net/pg/ffmpeg/ffmpeg-add-logo-video

profile
개발자!

3개의 댓글

출처 밝혀서 퍼가도 되나요? ㅎㅎ

1개의 답글
comment-user-thumbnail
2022년 10월 18일

앱 개발 도중에 영상에 워터마크를 삽입해야 됐는데, 덕분에 잘 해결될 것 같네요 감사합니다.

답글 달기