Vejo suporte para nvidia NVENC neste documento, mas parece confuso, alguns passo a passo? ou PPA com ffmpeg-nvenc para ubuntu?
Vejo suporte para nvidia NVENC neste documento, mas parece confuso, alguns passo a passo? ou PPA com ffmpeg-nvenc para ubuntu?
Respostas:
Como sempre com o FFmpeg, o desenvolvimento contínuo muda as postagens muitas vezes, e isso certamente é verdade para o nvenc e o FFmpeg. Houve três fases:
São necessárias duas etapas:
1. Instale o pacote nv-codec-headers :
Algo como os seguintes comandos do Terminal deve ser suficiente:
sudo apt-get install make git
mkdir $HOME/nv-codec-headers_build && cd $HOME/nv-codec-headers_build
git clone https://git.videolan.org/git/ffmpeg/nv-codec-headers.git
cd nv-codec-headers
make && sudo make install
Se, por algum motivo, você mudar de idéia e desejar remover completamente os arquivos instalados, bem como o diretório de compilação, basta executar os dois comandos do Terminal a seguir:
sudo rm -v /usr/local/{lib/pkgconfig/ffnvcodec.pc,include/ffnvcodec/*.h}
rm -rfv $HOME/nv-codec-headers_build
E seu sistema foi limpo. Se, no entanto, você deseja continuar, use a seguinte etapa:
2. Compile o FFmpeg :
Use este guia muito bem testado:
O nv-codec-headers
será automagicamente reconhecido (nenhuma ./configure
opção extra é necessária) e o nvenc será construído com sucesso.
Teste:
Eu testei isso no Bionic Beaver LTS e os resultados são:
andrew@ilium:~$ ffmpeg -encoders 2>/dev/null | grep nvenc
V..... h264_nvenc NVIDIA NVENC H.264 encoder (codec h264)
V..... nvenc NVIDIA NVENC H.264 encoder (codec h264)
V..... nvenc_h264 NVIDIA NVENC H.264 encoder (codec h264)
V..... nvenc_hevc NVIDIA NVENC hevc encoder (codec hevc)
V..... hevc_nvenc NVIDIA NVENC hevc encoder (codec hevc)
andrew@ilium:~$
E se você vir uma imagem semelhante à anterior e tiver uma placa de vídeo suportada , está certo: :)
Notas:
@ andrew.46 sua resposta é ótima, obrigado. Minha reputação está abaixo do limite para postar isso como um comentário. Se possível, expanda sua resposta com as seguintes informações.
Se você precisar reverter para uma versão anterior nv-codec-headers
, faça o download e compile uma versão anterior em https://github.com/FFmpeg/nv-codec-headers/releases .
Isso pode ser necessário se você compilar ffmpeg
as nv-codec-headers
versões mais recentes , mas o driver gráfico é de uma versão que ainda não lida com a versão mínima da API CUDA exigida por nv-codec-headers
. O sintoma será que ffmpeg
falhará na transcodificação dos fluxos de vídeo. No meu caso, era nv-codec-headers
necessário a API CUDA 9.1, enquanto a mais recente nvidia-driver
para minha distribuição (teste) ainda estava em uma versão usando 9.0.
A reversão para uma versão anterior nv-codec-headers
é provavelmente mais segura do que baixar o driver mais recente diretamente da Nvidia e construí-lo fora do mecanismo de atualização da sua distribuição.