Olá! No tutorial de hoje você vai aprender a compilar o FFmpeg com o codec Nvidia NVENC habilitado no Ubuntu e seus derivados. O NVENC pode ser muito útil para quem faz captura de tela no Linux, ele permite que os games especialmente rodem com uma taxa de FPS muito próxima da original do game sem a gravação, o que sem dúvida é interessante.
Infelizmente o processo de instalação não é tão simples, porém, se você seguir o passo a passo, tudo deve ocorrer sem maiores problemas. Será necessário recompilar o FFmpeg no seu sistema. Vamos começar?
Tutorial passo a passo para instalar o FFmpeg com suporte ao NVENC no Ubuntu
Existem alguns preparativos que você deve fazer para estar apto para recompilar o FFmpeg com o codec Nvidia NVENC ativado. E vamos precisar usar o terminal para muitos passos, então fique atento.
1 – Ative o repositório de código fonte no Ubuntu
Abra o menu do sistema e procure pelo aplicativo “Programas e atualizações“, e na aba “Aplicativos Ubuntu“, marque a opção “Código fonte“.
Depois de marcar a caixa de seleção que permite o download de softwares à partir do código fonte, clique no botão “Fechar” e permita a atualização dos repositórios.
2 – Tenha drivers de vídeo atualizados
Para poder desfrutar do NVENC com plenitude é recomendável ter as versões mais recentes dos drivers Nvidia no Ubuntu, para aprender a instalar a versão correta dos drives no seu sistema consulte este post do blog Diolinux.
OBS: No meu caso, na momento em que fiz o tutorial, utilizei o driver 367.24.
3 – Remova o FFmpeg instalado à partir do repositório oficial
Se você instalou o FFmpeg do repositório do Ubuntu, pode ser uma boa removê-lo. As pessoas que me ajudaram a testar este tutorial fizeram das duas formas, tanto removendo o FFmpeg, quanto deixando-o. Particularmente eu preferi remover, então é com você.
sudo apt-get remove ffmpeg
sudo apt-get autoremove
Compilando o FFmpeg com o NVENC no Ubuntu
Muito bem, agora que já fizemos os nossos preparativos, vamos começar a fazer a instalação do FFmpeg com NVENC incluso.
1 – Instale as bibliotecas de 32 bits para compatibilidade com aplicações desta arquitetura:
sudo apt-get install libgtk2.0-0:i386 libpangox-1.0-0:i386 libpangoxft-1.0-0:i386 libidn11:i386 libglu1-mesa:i386
2 – Preparando componentes úteis (O CUDA é opcional):
sudo apt-get install build-essential git yasm unzip wget sysstat
sudo apt-get install nvidia-cuda-toolkit nvidia-modprobe
3 – Baixe o Patch Nvidia NVENC do site
Temos uma passo importante aqui, que é onde você vai baixar o NVENC para habilitá-lo dentro do FFmpeg.
Entre no site de desenvolvedores da Nvidia e baixar o NVIDIA Video Codec SDK. Para baixar a versão utilizada neste tutorial clique aqui. Salve na sua pasta home. Se preferir, baixar usando o wget:
wget -c https://developer.nvidia.com/video-sdk-601
4 – Extraia o conteúdo
unzip nvidia_video_sdk_6.0.1
5 – Copie os arquivos necessários para a compilação para a pasta adequada.
sudo cp nvidia_video_sdk_6.0.1/Samples/common/inc/*.h /usr/local/include
6 – Baixe as dependências do FFmpeg
sudo apt-get build-dep ffmpeg
sudo apt-get install libfdk-aac-dev
7 – Baixe o código fonte do FFmpeg (não rode este comando com o sudo!):
apt-get source ffmpeg
8 – Mude para o diretório do arquivo baixou, ele está na sua home, se a versão for diferente de “2.8.6” coloque a versão correta.
cd ffmpeg-2.8.6
9 – Veja todos os possíveis parâmetros
ffmpeg -buildconf
Caso você não tenha removido o FFmpeg no início, copie todos os sufixos disponíveis da instalação original, eles ficam depois da linha “Configure:” e adicione ao final da linha (como no próximo passo) os parâmetros:
enable-nonfree –enable-nvenc –enable-libfdk-aac
10 – Habilite os plugins do FFmpeg, incluindo o NVENC. Nesta parte você pode colocar apenas os que você desejar, no meu caso utilizei estes.
./configure --prefix=/usr --extra-version=1ubuntu2 --build-suffix=-ffmpeg --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --cc=cc --cxx=g++ --enable-gpl --enable-shared --disable-stripping --disable-decoder=libopenjpeg --disable-decoder=libschroedinger --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librtmp --enable-libschroedinger --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxvid --enable-libzvbi --enable-openal --enable-opengl --enable-x11grab --enable-libdc1394 --enable-libiec61883 --enable-libzmq --enable-frei0r --enable-libx264 --enable-libopencv --enable-nonfree --enable-nvenc --enable-libfdk-aac
11 – Construa:
make
12 – Instale
make install
Fim.
Com isso você já poderá utilizar o FFmpeg em programas como o OBS e o Simple Screen Recorder para fazer gravações de tela com maior qualidade.
Tome cuidado para não sobrescrever esta versão do FFmpeg com as atualizações do sistema, caso isso ocorra, será necessário compilar novamente.
Obs: É possível renderizar usando este codec no Kdenlive utilizando a opção HVENC.
Até a próxima!