기본 콘텐츠로 건너뛰기

[리눅스] gifcurry 를 이용해서 동영상을 움직이는 gif 로 만들기

 최근 포스팅 하는데 영상을 그냥 올릴까 하다가 하는 김에 animated gif 를 만들어 보고 싶어서 한번 사용해 봤는데 꽤 괜찮았어서 이번에 포스팅 해 봅니다.

제 경우 영상은 kazam 으로 만들고 gif 는 gifcurry 를 이용해 봤는데 제법 쉽게 만들 수 있었습니다.

간단히 gifcurry 의 사용법을 적어 볼까 합니다.

>


처음 실행하면 달랑 이렇게 나옵니다. open 을 선택하면 파일선택 창이 나오고 동영상을 선택하면 됩니다.

>

그런데 파일 선택창 위를 보면 위와 같은 메시지가 나옵니다. 이거에 대해선 뒷부분에 설치방법과 함께 설명하겠습니다. 

>


 size 의 선택입니다. 이미지 폭과 프레임 색상을 설정해 줄 수 있습니다. 

원래의 이미지 크기와 달리 기본으로 이미지폭이 500으로 설정되어 나오는데 원래 폭으로 바꿔주거나 자신이 원하는 크기로 변경이 꼭 필요합니다. 

>


 crop 은 이미지의 일부를 잘라내는 것입니다. 위의 오렌지색으로 표시된 부분이 실제 영상에선 잘려나갈 부분입니다. 

>


이미지에 텍스트를 넣을 수 있습니다. 이미지의 화면상 위치와 영상의 전체 혹은 일부에 텍스트를 표시할지를 선택할 수 있습니다. 

테스트 해 본 결과 한글도 사용 가능한데 한글이 제대로 표현되려면 한글 폰트부터 설정해야 합니다. 위에 보면 sans Regular 로 폰트가 설정되에 있는데 noto sans cjk 같은 한글이 포함된 폰트를 사용해야 합니다. 그렇지 않으면 실제 gif 를 만들었을때 한글이 '????' 이런식으로 나오게 됩니다. 

그리고 한글을 입력시에 약간의 문제가 있었습니다. 제가 쓰는 fcix 입력기에서는 스페이스바를 누를때 마지막 글자가 같이 딸려오는 현상이 있습니다. 따라서 띄어쓰기를 할때 "->" 화살표 키를 이용해서 입력해야 하는 번거로움이 있습니다. 이건 직접 해보시면 쉽게 이해가 가실 겁니다. 하지만 입력기에 따라선 아무 문제 없을 수도 있습니다.

>

전체 영상중에 어느부분을 gif 로 만들지를 선택하는 부분입니다. 2줄이 보이는데요. 위가 전체 영상을 나타내고 아래쪽에 전체 영상중에 선택된 부분을 표시합니다. 

아래에 "-" 와 "+" 버튼으로 시작위치와 끝의 위치를 설정해 주면 됩니다. 

다 설정되었으면 file 을 선택해서 저장을 해 주면 됩니다. gif 파일이 만들어 질때까지 시간이 좀 걸리니 기다리셔야 합니다. 

파일이 다 만들어졌으면 만들어진 파일을 어떤 프로그램으로 열 것인지를 묻는 창이 뜹니다. 프로그램을 선택해서 만들어진 파일을 확인해 보시면 됩니다. 

그렇게 해서 만들어진 이미지는 다음과 같습니다.

>

글을 마치기 전에 위에 FFmpeg 디코더 부분에 대해서 적어 보겠습니다.

제 경우는 우분투 리눅스에서 snap 으로 gifcurry 를 설치했습니다. 이 경우 gifcurry 에 ffmpeg 이 포함이 되어 있지 않습니다. apt 로 ffmpeg 을 설치해도 메시지는 계속 나온다고 하는데요. 이유는 snap은 가상환경에서 실행되기 때문입니다. 

snap 에서 ffmpeg 을 포함하지 않는 이유는 저작권 문제라는거 같기도 하고....어쨌던 복잡한 사정보다는 포함이 안되있다는 것과, 따라서 h264 로 인코딩된 mp4 같은 파일을 snap 으로 설치한 gifcurry 는 인식을 못한다는 것을 알려드립니다.

따라서 제 경우는 kazam 으로 영상을 만들때 webm 으로 영상을 만들었습니다. 이 경우 snap으로 설치한 gifcurry 에서 잘 읽어 들입니다.

만일 mp4 영상을 gif 로 만들고 싶다면 snap 이 아닌 다른 경로로 gifcurry 를 설치해야 합니다. 

가장 간단한 방법은 appimage 를 이용하는 방법입니다.

https://appimage.github.io/Gifcurry/

위링크에 설명되어 있지만 appimage는 snap이나 flatpak 같은 설치과정이 필요 없습니다. 그냥 파일을 받아서 실행권한을 주고 실행하면 됩니다. 윈도우의 무설치 프로그램과 비슷하다고 보시면 됩니다.

제 경우는 appimage 를 아직 이용해 본적이 없어서 이것에 대해서는 자세히 설명을 해 드리지는 못하겠습니다만...설명을 보면 실행권한만 주고 실행하면 되기 때문에 어려움은 없으리라 생각됩니다. 

다만 기본적으로는 샌드박스에서 실행되는 snap 이나 flatpak 과 달리 샌드박스에서 실행되지 않기 때문에 제작자를 신뢰하는 경우에만 이용하라는 주의사항이 표시되어 있습니다. 샌드박스에서 실행하는 방법도 있는것 같은데 나중에 사용하게 되면 포스팅 해 보기로 하겠습니다. 

댓글

이 블로그의 인기 게시물

antix linux 업데이트시 GPG Error

 최근에 가장 가벼운 리눅스를 검색해서 antix 리눅스를 설치해서 테스트 해 보고 있습니다. 역시 가볍긴 가볍더군요. 생각보단 패키지 구성도 괜찮아 보였고요.    설치후 좀 써보고 업데이트를 하는데 GPG Error 가 발생했습니다. GPG 키 관련 문제인것 같아서 검색해 보니 antixforum에 답이 있었습니다.  https://www.antixforum.com/forums/topic/how-to-fix-expired-gpg-key-error/   간단히 적어보자면... http://repo.antixlinux.com/bookworm/pool/main/a/antix-archive-keyring/antix-archive-keyring_20019.5.0_all.deb 위 파일을 받은 다음에 터미널에서... sudo dpkg -i antix-archive-keyring_20019.5.0_all.deb 을 실행해서 설치해 주면 됩니다.    그런다음 업데이트를 시도해 보면 잘 됩니다.   

pygame 에서 이미지 회전하는 방법

 pygame 에서 transform.rotate 를 사용해서 이미지를 회전시켜 보면 생각과는 달리 요상하게 회전합니다.    따라서 이를 해결해 보고자 검색해 보다 다음 링크를 찾았습니다. https://stackoverflow.com/questions/4183208/how-do-i-rotate-an-image-around-its-center-using-pygame/54714144 위 링크를 보면 파이게임의 이미지 회전이 왜 그렇게 이상한지 알 수 있고 답변하신 분이 blitRotate 라는 함수를 만들어 놓아서 이용할 수 있습니다.  제 소스에 가져와서 테스트를 해 봤는데 제 생각대로 회전 하더군요.  def blitRotate(image, pos, originPos, angle):       #calcaulate the axis aligned bounding box of the rotated image     w, h       = image.get_size()     box        = [pygame.math.Vector2(p) for p in [(0, 0), (w, 0), (w, -h), (0, -h)]]     box_rotate = [p.rotate(angle) for p in box]     min_box    = (min(box_rotate, key=lambda p: p[0])[0], min(box_rotate, key=lambda p: p[1])[1])     max_box    = (max(box_rotate, key=lambda p: p[0])[0], max...

유로트럭 시뮬레이터 2 순간이동 치트 사용방법

최근 이벤트때 운송해야 할 물건이 나오지 않아 고민중에 어떤 게임사이트에서 찾아낸 방법입니다. 이미 게임을 충분히 하신 분들은 여기저기에 창고가 이미 있을것이기 때문에 그 창고로 이동하면 되지만 그렇지 못한 분들은 지역을 이동하는것이 시간이 많이 걸립니다. 이 방법을 쓰면 특정 도시로 빠르게 이동이 가능합니다. 내문서 -> Euro Truck Simulator 2 의 config.cfg 를 사용하시는 텍스트 에디터로 수정합니다. 수정해야 할 부분은 위에 표시해 놓은 부분입니다. 원래값은 0 이며 1로 바꿔줍니다. 이제 키보드의 '~' 키를 누르면 콘솔창이 뜹니다. 위의 스크린샷이 콘솔을 띄운 화면 입니다. 위와 같이 키보드를 눌렀을때 콘솔이 뜨면 일단 준비과정은 끝납니다. 이제 순간이동 사용법을 알려드리겠습니다. 1. 숫자키 '0'을 눌러서 프리카메라 모드로 들어갑니다. 2. 'm' 키를 눌러서 이동해야 할 도시를 확인하고 도시의 이름을 외워둡니다. 3. 콘솔을 열고 'goto 도시이름' 을 입력합니다. 성공했으면 해당 도시로 바로 이동합니다. 4. 마우스와 키보드 오른쪽의 숫자키패드를 이용해서 지상으로 이동합니다. 5. Ctrl + F9 키를 눌러 트럭을 소환합니다. 위의 순서에서 4번은 주의 하셔야 합니다. 트럭은 Ctrl + F9 를 누르는 순간 카메라의 위치로 소환됩니다. 만일 지상으로 이동하지 않고 트럭을 소환하실 경우 트럭이 지상으로 추락하여 손상 100%가 될 수도 있습니다. 즐거운 게임 되시길 바랍니다.    2022 년 2월 3일 수정사항 트럭의 소환키가 F9 에서 Ctrl + F9 로 변경되었다는 걸 확인해서 본문을 수정했습니다.