- 6
- 이니스프리
- 조회 수 1449
별점 |
---|
MoviePy를 이용하여 MP4 -> GIF 변환을 하고 resize 하여 파일 크기를 비교하는 테스트를 진행해봤습니다.
테스트 파일의 출처는 아래 유튜브 채널입니다.
(원 출처는 영상에 표기되어 있습니다.)
https://www.youtube.com/watch?v=C4BuRysAdp8
위 영상을 1280x720 사이즈의 mkv 파일로 저장하면 865.2KB입니다.
첨부파일 : 냥뇽녕냥 - 언니 나 주거.mkv
(mkv 파일을 에디터에 drag & drop 해도 영상 자체를 첨부할 수 없네요 ㅠㅠ)
이를 아래의 스크립트를 이용하여 GIF로 변환해보겠습니다.
from moviepy.editor import * clip = VideoFileClip('파일명.mkv', audio=False) clip.write_gif('파일명.gif', fps=14, fuzz=1)
참고로 MoviePy에서 fps=14 미만의 옵션을 주면 상당히 눈에 거슬립니다 ㅠㅠ
변환하면 용량은 62.7MB입니다.
(용량 때문에 스포어에 첨부할 수 없습니다 ㅠㅠ)
위 스크립트에 아래와 같이 한 줄을 추가하여 1/2 사이즈로 resize 해보겠습니다.
from moviepy.editor import * clip = VideoFileClip('파일명.mkv', audio=False) clip_r = clip.resize(0.5) clip_r.write_gif('파일명_resized.gif', fps=14, fuzz=1)
결과물은 아래와 같으며, 640x360으로 변환한 용량은 19.0MB입니다 ^^
대략 1/3 이하로 용량이 줄어들었음을 확인할 수 있습니다.
이는 Pillow(PIL)을 이용하여 GIF 파일을 resize하면 파일 용량이 그다지 줄어들지 않는 것과 대비됩니다.
이러한 차이점이 발생하는 이유는 MoviePy는 FFMPEG을 사용하는 반면, PIL은 그렇지 않기 때문으로 추측됩니다 ^^
결론적으로 홈페이지를 운영할 때 MP4 파일을 이용하는 것이 가장 트래픽을 덜 사용할 수 있는 방법이며,
불가피하게 GIF를 이용하여야 된다면 MoviePy를 이용하여 MP4 -> GIF로 resizing하는 백엔드를 구축하는 것이 대안이 될 수 있겠습니다.
아 코드요!