가끔 동영상을 gif로 변환해서 전달해주어야 할 때가 있는데 그때마다 프로그램을 찾아서 설치하고 하는게 번거로웠다.

리눅스에서는 방법이 없을까 찾아봤더니 터미널 명령어로 한방에 해결하는 방법이 있어서 적어둔다.


출처는 https://askubuntu.com/questions/648603/how-to-create-an-animated-gif-from-mp4-video-via-command-line 여기다.


우선 리눅스에 ffmpeg 과 imagemagick 이 설치되어 있어야 한다.


$ sudo apt install ffmpeg imagemagick 


이제 터미널에서 동영상 파일이 있는 곳으로 이동하여 다음을 입력한다.


$ ffmpeg -i <파일이름.mp4> -vf scale=320:-1 -r 10 -f image2pipe -vcodec ppm - | convert -delay 10 -loop 0 - output.gif


여기서 각 옵션들은 다음을 의미한다.

-vf scale=320:-1 : 출력 이미지의 높이를 320 픽셀로 설정한다. 이 명령어가 없으면 원본 영상의 높이로 만들어진다.

-r 10: 샘플링 FPS, 예를들어 초당 30프레임인 영상인 경우 -r 10 의 의미는 3개중 1개의 영상을 선택한다는 의미이다.

-loop 0: loop이 0이면 gif가 계속 리플레이된다.

-delay 10: 다음 프레임을 보여주는데 기다리는 시간을 1/100초 단위로 입력한다. 즉 10은 0.1초 숫자가 클수록 gif 영상의 재생 속도가 느려진다.


위 인자들을 적절히 조절하면 용량을 크게 줄일 수 있다.


+ Recent posts