[문제인식]
평상시 동영상 하나에 워터마크를 넣을려면, 실제 일반 동영상 편집 프로그램을 켜서 타임라인에 영상 올려놓고, 그위에 로고파일 불러다가 위치잡고, 인코딩해야 한다. 이작업이 동영상 하나나 두개정도면 귀찮지 않게 할수있는데 다수이라 작업 소요가 무진장 많아진다.
로고파일 하나만 있으면 편집프로그램을 키지않고 워터마크를 넣을 방도가 없을까를 생각해본 결과. 평소 우하단 모서리를 기준으로 일정거리만큼 위치한 곳에 로고를 넣으니 그 기준에 맞추어 배치를 만들면 될것 같았다.
[제작]
1. 환경설명
1.1 WaterMark 폴더 구성
• /ApplyLogo/
로고 PNG를 넣어두는 전용 폴더. 이름은 아무거나 상관 없고,
항상 1개만 둔다.
• /ApplyLogo_Sample/ : 샘플용 결과물이 저장되는곳
샘플비디오이름/샘플비디오이름_1.png … _10.png
샘플비디오이름_1.conf … _10.conf 이런 식으로 쌓인다.
• /ApplyLogo_Setting/
실제로 쓸 *.conf 한 개만 넣어두는 폴더.
여기 있는 설정이 본 작업 배치에서 읽혀서, 모든 영상에 공통으로 적용된다.
• /Video/
워터마크를 찍을 실제 영상들이 들어가는 곳(하위 폴더 포함).
• /Result_Video/
워터마크 완성본이 <원본파일명>_Logo.mp4 형식으로 저장되는 폴더.
• /Sample_Video/
샘플용 영상 몇 개만 넣어두는 폴더 - 여기에서 영상을 읽어 샘플에 대한
워터마크 적용을 해본다.

1.2 배치 파일은 두 개만 있다.
• ApplyLogoSample_maker.bat — 샘플 이미지 + conf 10개 자동 생성
• Final_ApplyLogo.bat — 선택한 conf로 전체 영상에 워터마크 일괄 적용
2. 샘플 생성기: ApplyLogoSample_maker.bat
2.1 목적 - 전체 적용 전에, 크기/여백/투명도를 보기위해
샘플 이미지 10장과 conf 10개를 자동으로 뽑아주는 배치
2.2 동작 요약
• Sample_Video 안의 샘플 영상 하나를 읽고, 중간 지점 프레임을 캡처한다.
• ApplyLogo 폴더의 로고를 기준으로, 100% → 10%까지 10단계로
크기를 줄여가며 워터마크를 얹는다. _1은 100%, _10은 10%
가로/세로를 동시에 10%씩 줄이는 방식.
• 로고 위치는 - 우하단 기준 여백 d를 쓰는 방식으로 통일한다.
d = D_BASE * height / BASE_H
기본값은 BASE_H=1080, D_BASE=57 (1080p 기준 여백 57px).
• 실제 좌표는
x = width - d - LogoSize_W
y = height - d - LogoSize_H
• 각 단계마다
<이름>_숫자.png (샘플 이미지)
<이름>_숫자.conf (설정 파일)
두 개씩 만든다.
2.3 conf 안에 들어가는 값
D_BASE=
BASE_H=
alpha=0.15
LogoSize_W=
LogoSize_H=
alpha는 지금은 0.15로 고정.
D_BASE, BASE_H는 배치 상단 변수로 두고 언제든 조정 가능하게 설계.


3. 워터마크 일괄적용 : Final_ApplyLogo.bat
3.1 목적 - ApplyLogo_Setting에 골라둔 conf 딱 한 개를 기준으로,
Video 폴더 전체(하위 폴더 포함)에 워터마크를 넣어서
/Result_Video/로 출력한다.
3.2 동작 요약
• ApplyLogo_Setting에 있는 .conf 한 개를 읽는다.
• Video 아래의 모든 영상(확장자: mp4, mov, mkv, m4v, ts, avi, webm)을
재귀로 순회한다.
• 각 파일마다 ffprobe로 width/height를 읽는다.
여기서 가장 중요한 건 height.
• conf에서 읽은 값으로 다시 한 번 계산:
d = D_BASE * height / BASE_H
ApplyLogoFinal_W = LogoSize_W * height / BASE_H
ApplyLogoFinal_H = LogoSize_H * height / BASE_H
x = width - d - ApplyLogoFinal_W
y = height - d - ApplyLogoFinal_H
• 위 좌표와 크기, alpha 값을 ffmpeg overlay 필터에 넘겨서 실제 영상을 렌더링한다.
• 결과는 Result_Video에 <원본파일명>_Logo.mp4로 저장한다.

4. 작동방식
① ApplyLogoSample_maker.bat 실행해서
/ApplyLogo_Sample/ 에 샘플 이미지 + conf 10개를 뽑는다.
② 마음에 드는 샘플의 conf 하나만 골라서
/ApplyLogo_Setting/ 폴더에 넣어 둔다.
③ Final_ApplyLogo.bat 실행.
/Video/ 아래 모든 영상이 /Result_Video/에 *_Logo.mp4로 생성된다.
[결과]


[해본후 느낌]
역시 한번에 여러개의 동영상에 워터 마크를 넣을수있어 편리했다. 특히 영상의 높이 사이즈에 비례해서 로고 크기를 자동으로 적용하므로 하나 하나 안해도 되서 편리했다.
ps. 사용된 영상에 적용된 워터마크는 예제에만 사용함
예시 사용 영상
- 출처: Pixabay (블로그 게시용으로 720p 재인코딩) (https://pixabay.com)
'갑자기 생각나서 만든 간단한 도구' 카테고리의 다른 글
| 뉴스 모니터링용 RSS Viewer — 직접 제작 (다운로드 포함) (0) | 2025.11.20 |
|---|---|
| 텍스트 계층 들여쓰기 제너레이터 — tistory 띄어쓰기 힘들어서 만듬 (0) | 2025.11.17 |
| Mondrian Video Mosaic — 동영상 웹뷰어 (아이디어 노트) (0) | 2025.11.12 |
| Cropper — 영상 일부만 깔끔하게 오려내는 도구 (무료 배포) (0) | 2025.11.05 |
| 블로그(티스토리) 타이틀 옆에 실시간 시계 넣기 (요일·오전/오후) (0) | 2025.11.01 |