ffmpeg for CUDA 이용한 MP4-to-GIF 변환

0
4

CUDA 지원 ffmpeg 빌드

ffmpeg의 decode/encode에 Nvidia GPU를 사용하면 변환 속도를 향상 할 수 있습니다. CUDA를 지원하도록 빌드한 ffmpeg은 없는지 소스 빌드를 하도록 안내를 하고 있습니다. 자세한 소스 빌드 정보는 Using FFmpeg with NVIDIA GPU Hardware Acceleration를 참고하면 됩니다. 빌드 옵션이 문서에서 알려 준 것과 다른 내용이 있습니다. ffmpeg build 아래 명령을 사용하시면 됩니다.

Build 환경:

AD
  • Ubuntu 24.04
  • Nvidia Driver version: Driver Version: 580.105.08
  • CUDA Version: 13.0
  • Ubuntu 추가 Package 설치: nasm (2.16.01-1build1), libavdevice60 libavdevice-dev (7:6.1.1-3ubuntu5)
  • ffmpeg 빌드 명령 수정본:
Bash
 ./configure --enable-nonfree --enable-cuda-nvcc --extra-cflags=-I/usr/local/cuda/include \
 --extra-ldflags=-L/usr/local/cuda/lib64 --disable-static --enable-shared

빌드 성공하면 CUDA 지원 여부를 확인할 수 있습니다. Hardware acceleration methods: CUDA가 나옵니다.

Bash
$ ffmpeg -hwaccels
ffmpeg version N-122250-g8ac6325143 Copyright (c) 2000-2025 the FFmpeg developers
  built with gcc 13 (Ubuntu 13.3.0-6ubuntu2~24.04)
  configuration: --enable-nonfree --enable-cuda-nvcc --extra-cflags=-I/usr/local/cuda/include --extra-ldflags=-L/usr/local/cuda/lib64 --disable-static --enable-shared
  libavutil      60. 20.100 / 60. 20.100
  libavcodec     62. 23.102 / 62. 23.102
  libavformat    62.  8.101 / 62.  8.101
  libavdevice    62.  2.100 / 62.  2.100
  libavfilter    11. 10.101 / 11. 10.101
  libswscale      9.  3.100 /  9.  3.100
  libswresample   6.  2.100 /  6.  2.100
Hardware acceleration methods:
cuda

ffmpeg 이용한 MP4-to-GIF 변환

블로그 글에 삽입할 GIF 파일 생성을 위해서 다음과 같이 Scale 변환 없이 원본 파일과 동일한 크기로 변환을 했습니다. Gemini 추천 방식은 2-Pass 방식으로 1-Pass 에서는 MP4 영상에서 팔레트를 추출하고, 2-Pass에서 팔레트를 이용해서 GIF 최종 결과물을 얻는 방법입니다.

아래 예제는 On-Prem AI 서비스-(4) Ollama 후기 글 본문에 추가했던 gpt-oss, gemma3 실행 속도 체감을 위한 영상을 GIF 로 변환합니다.

1) gpt-oss 영상에서 팔레트 생성

Bash
ffmpeg -hwaccel cuda -i ollama_gpt-oss.mp4 \
-vf "palettegen" \
-y palette_gpt-oss.png

2) gpt-oss 영상을 팔레트를 이용해 GIF 변환

Bash
ffmpeg -hwaccel cuda -i ollama_gpt-oss.mp4 -i palette_gpt-oss.png \
-filter_complex "[0:v][1:v]paletteuse" \
ollama_gpt-oss.gif

3) gemma3 영상에서 팔레트 생성

Bash
ffmpeg -hwaccel cuda -i ollama_gemma3.mp4 \
-vf "palettegen" \
-y palette_gemma3.png

4) gemma3 영상을 팔레트를 이용해 GIF로 변환

Bash
ffmpeg -hwaccel cuda -i ollama-gemma3.mp4 -i palette_gemma3.png \
-filter_complex "[0:v][1:v]paletteuse" \
ollama_gemma3.gif

AD

LEAVE A REPLY

Please enter your comment!
Please enter your name here