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 |
Tabla de Contenidos
Instale FFmpeg con NVIDIA GPU Hardware Acceleration en Linux
- 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
- Reinicie el sistema Linux:
sudo reboot
- 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
- 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 - Instale ffnvcodec en Ubuntu o Debian:
cd nv-codec-headers && sudo make install
- Obtenga el código fuente de ffmpeg, ejecute:
cd ~/nvidia/
git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg/ - 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
- 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 - Compilar, ejecutar:
make -j $(nproc)
- Verifique el archivo ejecutable:
ls -l ffmpeg
./ffmpeg - 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 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
Relacionado: Las 7 mejores herramientas de línea de comandos de diagnóstico y monitoreo de GPU de Linux
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é al versión compilada):time ~/ffmpeg/ffmpeg -hwaccel cuda -y -i /tmp/input.mkv /tmp/out.mp4
Salidas de comando de tiempo con GPU utilizadas:
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:
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