그림판으로 간단하게 동영상에 배경이 투명한 워터마크를 넣는 방법입니다.
예전에 궁금해서 찾아봤던 건데 정작 제가 실제로 사용할 일은 없더군요..
그래서 직접 써본 적은 한 번도 없습니다. ㅎㅎ;
물론 포토샵같은 이미지 편집툴로 배경이 투명한 워터마크를 만들어서 오버레이하는 방법이 있지만
이미지 편집툴에 서툴다거나(저처럼) 아주 간단한 워터마크 정도만 필요한 경우라면
이 방법이 좀 더 쉽지 않을까 합니다.
먼저 삽입할 워터마크를 정해야 하는데, 간단한게 SD VidC라는 문구로 해보겠습니다.
그림판을 열어서 해당 문구를 만듭니다. 텍스트 도구를 사용해서 적절하게? 만듭니다.
SD 문구에는 방송국 워터마크처럼 테두리도 쳐 보겠습니다. ㅎㅎ;
어차피 나중에 동영상에 삽입하는 과정에서 리사이즈할 수 있기 때문에 그림판에서는
큼직하게 작업하는 편이 쉽고 좋습니다.
아래가 완성된 그림 파일입니다. 눈여겨 볼 점은 워터마크에 해당하는 SD VidC라는 문구는
흰색이고 배경은 검은색이라는 점입니다.
만들 때 처음부터 배경을 검은색으로 칠해 놓고 흰색으로 글씨를 써도 되지만
그림판을 열면 흰색 배경이 기본값이기 때문에 흰 배경에 검은색으로 글씨를 쓴 다음에
그림판 메뉴의 "이미지"에서 "색 반전"을 적용해 주는 편이 간단합니다.
이렇게 만들어진 그림파일을 적당한 이름으로 저장합니다.
여기서는 orange.jpg로 저장하겠습니다. (오렌지는 아무 의미 없습니다;)
이제 orange.jpg에서 SD 문구에 해당하는 부분은 붉은색으로 덮어 주고
VidC 문구에 해당하는 부분은 흰색으로 덮어 줍니다.
이렇게 만들어진 그림파일을 적당한 이름으로 저장합니다.
여기서는 banana.jpg로 저장하겠습니다. (역시 아무 의미 없습니다;)
이제 사전작업은 모두 끝났습니다.
여기서부터는 위 두 파일을 가지고 워터마크를 삽입해 주면 됩니다.
먼저 워터마크가 삽입될 원본 영상을 불러옵니다.
예제로 사용될 영상은 라디오 스타입니다. 보기 쉽게 화면 크기를 좀 줄였습니다.
아래는 워터마크가 삽입될 원본 영상을 AvsP에서 불러온 화면입니다.
다음으로 위에서 만든 orange.jpg와 banana.jpg를 불러옵니다.
그리고 각각 원본 영상은 source, orange.jpg는 orange, banana.jpg는 banana로 지정해 준 다음
overlay필터로 source에 banana를 삽입해 줍니다.
아직까지는 모양도 모양이거니와 워터마크의 크기도 너무 큽니다.
먼저 lanczosresize필터로 워터마크의 크기를 적당하게 줄이겠습니다.
여기서 주의할 점은 banana와 orange의 크기가 항상 같아야 한다는 점입니다.
따라서 .lanczosresize(320,200)을 banana와 orange에 동일하게 추가해 줍니다.
다음으로 overlay필터에서 mask옵션으로 orange를 지정해 줍니다.
이렇게 하면 banana 위에 orange를 덮어 씌우는 형태가 되는데
orange의 흰 부분은 투명하고 검은 부분은 불투명하다고 생각하시면 됩니다.
그래서 SD VidC 문구에 해당하는 부분만 화면에 보이게 되는 거죠.
이제 워터마크를 원하는 위치로 이동해야 합니다.
overlay필터의 x, y옵션으로 워터마크를 원하는 위치로 이동할 수 있습니다.
기본값은 각각 0으로 워터마크가 왼쪽 위 모서리에 위치합니다.
여기서는 MBC 워터마크의 아래쪽으로 옮겨 보겠습니다.
x는 오른쪽으로, y는 아래쪽으로 얼마만큼 이동할지를 정해 줍니다.
마지막으로 워터마크에 약간 투명한 효과를 넣어 보겠습니다.
overlay필터의 opacity옵션으로 투명도를 정할 수 있습니다.
0은 완전히 투명하게 만들고 1은 완전히 불투명하게 만들어 줍니다.
기본값은 1이고 여기서는 0.5를 적용해서 약간 투명하게 만들겠습니다.
완성입니다.
여기까지가 그림판으로 간단하게 배경이 투명한 워터마크를 삽입하는 방법입니다.
앞서 말씀드린대로 더 좋은 퀄리티로 자신만의 워터마크를 삽입하려면 포토샵같은
이미지 편집툴로 만드는 수밖에 없습니다. 그림판으로는 한계가 있으니까요.
게다가 이미지 편집툴같은 경우에는 처음부터 배경을 투명하게 만들 수도 있기 때문에
overlay필터의 mask옵션이 없이도 배경이 투명한 워터마크를 삽입할 수 있습니다...만
저처럼 이미지 편집툴을 잘 다루지 못하거나 간단한 워터마크라면 이 방법을 사용하는 것도
유용하지 않을까 해서 적어봤습니다.
예를 들어서 전체 영상이 0~10000프레임이고 그 중 1000~9000까지의 프레임에만 로고를 삽입하면서
1000~1100까지 100프레임 동안 fadein을 하고 8900~9000프레임 동안 fadeout을 하는 경우라고 하면요.
본문에서 말씀드린 스크립트를 아래와 같이 수정하면 됩니다.
orange=ImageReader("orange.JPG")
banana=ImageReader("banana.JPG")
source=MPEG2Source("test.d2v", cpu=0)
a=trim(source,0,999)
b=overlay(trim(source,1000,7999),banana,mask=orange.fadein(100))
c=overlay(trim(source,8000,9000),banana,mask=orange.fadeout(100))
d=trim(source,9001,framecount(source))
unalignedsplice(a,b,c,d)
ImageReader로 불러온 그림파일의 프레임 수가 1001장이라서 저렇게 하는건데요.
영상전체의 프레임 수가 1001장보다 작은 경우가 아니라면(대부분 1001장보다 훨신 많죠) 저렇게 하시면 될겁니다.
더 쉬운 방법이 있을지 모르겠네요..우선 생각나는대로 만들어 봤습니다.
++로고를 삽입하려는 구간이 1001보다 작은 경우라면 그림파일의 프레임 수를 줄이시면 됩니다.
예를 들어 0~500까지의 프레임에만 로고를 삽입하면서 앞,뒤 100프레임에 fadein/out을 적용하려면
아래와 같이 만드시면 됩니다.
orange=ImageReader("orange.JPG",0,500)
banana=ImageReader("banana.JPG",0,500)
source=MPEG2Source("test.d2v", cpu=0)
a=overlay(trim(source,0,500),banana,mask=orange.fadein(100).fadeout(100))
b=trim(source,501,framecount(source))
unalignedsplice(a,b)
ImageReader 필터는 원래 여러개의 그림파일을 불러와서 동영상으로 만들어 주는 필터입니다.
여러개의 그림파일 중 0~1000까지 총 1001장의 그림파일을 동영상으로 만들어 주는 게 기본값인데요
그림파일을 하나만 불러오는 경우에는 그 그림파일로 1001장의 프레임이 모두 채워지기 때문에
1001장의 동일한 프레임으로 이뤄진 영상이 만들어 집니다.
ImageReader("test.jpg",0,500) 이런식으로 불러오면 501장의 동일한 프레임으로 이뤄진 영상이 되는거죠
그러고보니 첫번째 답글에서 ImageReader 필터를 trim으로 편집할 게 아니라 그냥 이런식으로 프레임을 줄이면 되겠네요
(첫번째 리플의 두번째 예시를 trim 필터 대신 ImageReader 필터의 옵션을 바꾸는 걸로 수정했습니다.)
이미지툴로 배경이 투명한 그림파일 만들 때는 png포맷을 썼던 걸로 기억합니다. 확실하진 않네요 ㅎㅎ;


