Cómo instalar FFmpeg con aceleración de GPU NVIDIA en Linux

Ter ffmpeg es un software de conversión de video de código abierto y gratuito para sistemas Linux y tipo Unix. Sin embargo, en Ubuntu / Debian Linux y otras distribuciones, la codificación basada en hardware de NVIDIA está deshabilitada en el momento de la compilación. Entonces, por supuesto, necesitará una GPU NVIDIA compatible. Aparte de eso, sería mejor si tuviera el soporte CUDA instalado con compiladores GNU. Veamos cómo instalar todo uno por uno en un servidor o escritorio con Ubuntu o Debian Linux.

Probé las siguientes instrucciones en Ubuntu Linux 20.04 LTS. Instalé el controlador NVIDIA versión 460 y CUDA versión 10.1. Mi GPU es GeForce GTX 1650. Veamos cómo instalar FFmpeg con soporte de aceleración de hardware NVIDIA GPU en Linux.

Detalles de las instrucciones
Nivel de dificultad Entre
Derechos de root sí señor
requisitos Debian / Ubuntu Linux
Horario de verano europeo. Tiempo de leer 3 minutos

Instale FFmpeg con NVIDIA GPU Hardware Acceleration en Linux

  1. Primero, asegúrese de que el controlador Nvidia (el controlador propietario más reciente) esté instalado en Ubuntu o Debian. Por ejemplo:sudo apt install nvidia-driver-460
  2. Reinicie el sistema Linux:sudo reboot
  3. A continuación, debe instalar el kit de herramientas CUDA en Debian o Ubuntu Linux usando el comando apt o apt-get:sudo apt install nvidia-cuda-toolkit
    Use FFmpeg con NVIDIA GPU Hardware Acceleration instalando CUDA

    Instale el kit de herramientas CUDA (haga clic para ampliar)

  4. Para compilar ffmpeg con NVIDIA también necesitamos ffnvcodec. Clonar el repositorio de Git:mkdir ~/nvidia/ && cd ~/nvidia/
    git clone https://git.videolan.org/git/ffmpeg/nv-codec-headers.git
  5. Instale ffnvcodec en Ubuntu o Debian:cd nv-codec-headers && sudo make install
  6. Obtenga el código fuente de ffmpeg, ejecute:cd ~/nvidia/
    git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg/
  7. Instale el conjunto de compiladores GNU gcc y las bibliotecas, ejecute:sudo apt install build-essential yasm cmake libtool libc6 libc6-dev unzip wget libnuma1 libnuma-dev
  8. Configure ffmpeg con soporte para GPU NVIDIA:cd ~/nvidia/ffmpeg/
    ./configure --enable-nonfree --enable-cuda-nvcc --enable-libnpp --extra-cflags=-I/usr/local/cuda/include --extra-ldflags=-L/usr/local/cuda/lib64
  9. Compilar, ejecutar:make -j $(nproc)
  10. Verifique el archivo ejecutable:ls -l ffmpeg
    ./ffmpeg

    Instale ffmpeg con soporte NVIDIA y verifique la instalación (haga clic para ampliar)

  11. Ahora puedes usar -hwaccel cuda Interruptor de codificación. Por ejemplo:ffmpeg -y -hwaccel cuda -i input.file output.file

Cómo ver las estadísticas de la GPU de NVIDIA y cargarlas mientras usa ffmpeg

Utilice uno de los siguientes comandos:
nvidia-smi
Asegúrese de revisar nvtop. Es un visor de estado de GPU basado en ncurses para GPU NVIDIA:
nvtop

Click para agrandar

Relacionado: Las 7 mejores herramientas de línea de comandos de diagnóstico y monitoreo de GPU de Linux

Guías exclusivas para seguidores de Patreon 🤓

  • Sin publicidad ni seguimiento
  • Instrucciones detalladas para desarrolladores y administradores de sistemas en Opensourceflare✨
  • Únase a mi Patreon para ayudar a los creadores de contenido independientes y lea las guías más recientes:

asociar Patreon

Resultado

En este ejemplo, estoy convirtiendo input.mkv a out.mp4 sin usar la aceleración de GPU de la siguiente manera:
time /bin/ffmpeg -y -i /tmp/input.mkv /tmp/out.mp4
Salidas de comando de tiempo con la CPU utilizada:

real	1m40.678s
user	16m52.159s
sys	0m7.821s

También tome nota de la velocidad:

frame= 7320 fps= 73 q=-1.0 Lsize=   58306kB time=00:02:02.03 bitrate=3914.0kbits/s speed=1.22x    

Y ahora el mismo archivo con aceleración de GPU NVIDIA (tenga en cuenta la ruta, llamaré la versión compilada):
time ~/ffmpeg/ffmpeg -y -i /tmp/input.mkv /tmp/out.mp4
Salidas de comando de tiempo con GPU utilizadas:

real	0m28.494s
user	1m58.659s
sys	0m3.670s

Velocidad de ffmpeg aumentada en 4.32x:

frame= 7320 fps=259 q=31.0 Lsize=   50294kB time=00:02:02.03 bitrate=3376.2kbits/s speed=4.32x  

La mía es una GPU de consumo, pero sin duda una GPU NVIDIA para el centro de datos o profesional funcionará aún mejor. Asegúrese de leer las siguientes páginas de manual con el comando man:
man ffmpeg
man nvtop
man nvdia-smi

Resumir

Aprendió cómo instalar FFmpeg con soporte de hardware de aceleración de GPU NVIDIA en Debian o Ubuntu Linux para acelerar la codificación con el comando ffmpeg. Para obtener más información, consulte la documentación de NVIDIA y la página wiki de ffmpeg. En pocas palabras, para habilitar la compatibilidad con la codificación asistida por GPU con una GPU NVIDIA para ffmpeg, necesitará:


PUBLICIDAD


Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *