오캠으로 캡처하기
나는 움짤 만드는 프로그램으로 오캠을 추천하고 싶다. 워터마크 같은 것도 없고 품질도 상당히 좋다.
사용법은 간단하다. 오캠 프로그램을 실행하고 코덱에서 “움짤 – GIF 애니메이션 (.GIF)”를 선택해주고 옵션의 설정의 움짤 부분에서 프레임과 해상도 정도만 알맞게 설정해주면 된다.
움짤을 만들 때는 용량을 최대한 가볍게 하는 것이 중요하다고 생각한다. 그러면서도 너무 프레임이 적어서 끊기는 것도 좋지 않고, 해상도가 너무 작은 것도 좋지 않다. 나는 딱 떨어지게 나뉘는 프레임이 좋다고 생각한다. 30프레임 영상이라면 15프레임이나 10프레임으로 캡쳐한다는 것이다.
그리고 해상도는 최대한 작게 한다. 아주 짧은 움짤이면 해상도가 조금 커도 문제가 없지만, 시간이 조금만 길어져도 해상도가 높으면 용량이 매우 커질 수 있기 때문이다. 그래서 나는 가로 400px 세로 224px로 캡쳐해서 블로그나 커뮤니티에서 공개할 때 코드의 설정으로 가로 800px로 늘려서 표시되게 하기도 한다. 그렇게 하면 이미지가 선명하지 않고 점이 보인다는 단점이 있지만, 파일 크기는 많이 줄일 수 있다. (다들 기준이 다르겠지만, 내 기준으로는 그정도 이미지도 못 볼 정도는 아니라고 생각한다.)
약 10초의 가로 600px 세로 336px 12프레임 11.4메가 GIF 움짤
(브레이브걸스(Brave Girls) – 치맛바람 뮤비의 일부)
위 영상의 원본은 24프레임이라서 절반인 12프레임으로 만들었다. 용량을 줄이기 위해서 프레임을 조금 더 줄여보자.
8프레임 7.5메가
6프레임 5.7메가
용량이 많이 줄어들긴 했지만, 프레임이 줄어든 만큼 뚝뚝 끊겨 보인다.
프레임 혼합, 모션 블러 기능으로 프레임 줄이기 연구
프레임을 더 줄이면서도 부드러운 것처럼 보이게 만드는 방법을 고민하다가 프리미어의 프레임 혼합이나 샤나 인코더의 모션 블러 같은 기능을 활용해보면 어떨까 싶었다. 샤나 인코더에서 모션 블러 기능을 주면 아래와 같은 결과물을 얻을 수 있다. (모션 블러 적용 방법은 아래에서 설명하겠다.)
8프레임 7.46메가
6프레임 5.61메가
좌측은 동일한 12프레임. 우측 위는 일반적인 6프레임. 아래는 모션 블러 적용한 6프레임.
내가 내린 결론은 모션 블러 기능을 적용하면 조금 더 연결되고 부드럽게 보이는 것 같긴 하지만, 잔상 때문에 이미지가 선명하게 보이지 않는 문제가 있고 손이 너무 많이 간다는 문제가 있다. 12프레임으로 캡처하는게 용량은 더 클지 몰라도 캡처하면 끝이기 때문에 편하고 퀄리티도 더 좋은 것 같다.
샤나 인코더에서 모션 블러 적용하는 방법
일단 샤나 인코더를 실행해서 “빠른 설정”에서 내가 출력하고 싶은 방식을 선택한다. (여기서 바로 GIF를 선택해도 되고 MP4와 같은 일반 영상을 선택해도 된다. 그런데 나는 GIF로 하니까 결과물이 너무 마음에 안 들어서 MP4로 인코딩한 이후에 오캠으로 다시 캡처하는 방법을 사용하기로 했다.)
퀄리티는 알아서 설정하면 되고, 중요한 건 프레임이다. 30프레임 영상의 프레임을 바꾸지 않고 그대로 30프레임으로 설정해도 모션 블러 기능이 적용되겠지만, 나는 프레임을 줄여서 끊기는 것을 모션 블러로 부드러운 것처럼 보이도록 하는 것이 목적이기 때문에 10프레임으로 설정해줬다. (사실 인코딩 후의 파일을 오캠에서 GIF로 캡처할 것이기 때문에 어떻게 설정하든 상관은 없다. 하지만 프레임을 줄여놔야 인코딩 시간을 절약할 수 있을 것이다.)
“설정 적용”을 눌러서 창을 닫은 후에 이제 진짜 모션 블러 기능을 적용해보자. F7을 누르면 “필터 설정” 창이 뜬다.
① “필터 추가”를 클릭한다.
② “tmix”를 입력한다.
③ frames=5:weights='1 3 9 3 1':enable=between(t\,0\,99999)
를 입력한다. (밑에서 설명하겠다.)
④ “필터 추가”를 클릭한다. 그리고 확인을 누른다.
frames=5:weights='1 3 9 3 1':enable=between(t\,0\,99999)
위의 코드를 설명하면 숫자 “5”는 잔상, 프레임을 혼합하는 개수다. “1 3 9 3 1″은 혼합되는 5개의 컷 중에서 어떤 컷을 더 진하고 어떤 것을 더 연하게 할 것인지의 비중을 설정하는 것이다. “0”과 “99999”은 모션 블러 필터 기능이 적용될 시간 범위를 초 단위로 설정하는 기능이다. 만약 “0” “1”이라고 쓰면 0초부터 1초까지만 모션 블러 필터 기능을 적용하겠다는 것이다. (나는 따로 설정하기 귀찮아서 시작부터 끝까지 모두 적용되도록 설정하기 위해서 0과 99999로 적었다.) 이 코드가 위의 움짤의 8프레임에 모션 블러를 적용했을 때 내가 입력한 수치다.
frames=6:weights='1 2 3 9 3 1':enable=between(t\,0\,99999)
위의 코드는 6프레임에서 적용한 수치다. 원본이 24프레임이니까 6프레임이면 한 컷에 4컷을 넘겨버리는 것이다. 조금 더 연결되는 느낌을 주기 위해서 앞뒤의 프레임을 하나씩 더해서 6개의 잔상이 나오도록 모션 블러, 프레임 혼합을 적용한 것이다.
관련 링크