Vedo il supporto per NVIDIA NVENC in questo documento, ma sembra confuso, qualche passo dopo passo? o PPA con ffmpeg-nvenc per ubuntu?
Vedo il supporto per NVIDIA NVENC in questo documento, ma sembra confuso, qualche passo dopo passo? o PPA con ffmpeg-nvenc per ubuntu?
Risposte:
Come sempre con FFmpeg, lo sviluppo continuo sposta gli obiettivi più volte e questo è certamente vero per nvenc e FFmpeg. Ci sono state 3 fasi:
Sono richiesti due passaggi:
1. Installa il pacchetto nv-codec-headers :
Qualcosa come i seguenti comandi del Terminale dovrebbe essere sufficiente:
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 per qualche motivo cambi idea e desideri rimuovere completamente i file installati e la directory di build, esegui semplicemente i seguenti due comandi Terminal:
sudo rm -v /usr/local/{lib/pkgconfig/ffnvcodec.pc,include/ffnvcodec/*.h}
rm -rfv $HOME/nv-codec-headers_build
E il tuo sistema è stato pulito. Se tuttavia si desidera continuare, utilizzare il seguente passaggio:
2. Compilare FFmpeg :
Usa questa guida molto ben testata:
La nv-codec-headers
saranno automagicamente riconosciuto (non aggiuntivi ./configure
sono necessari opzioni) e nvenc saranno costruiti con successo.
test:
Ho provato questo su Bionic Beaver LTS e i risultati sono:
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 vedi un'immagine simile come sopra e hai una scheda grafica supportata , hai ragione! :)
Appunti:
@ andrew.46 la tua risposta è ottima, grazie. La mia reputazione è al di sotto della soglia per pubblicare questo come commento. Se possibile, espandi la tua risposta con le seguenti informazioni.
Se è necessario ripristinare una versione precedente di nv-codec-headers
, scaricare e compilare una versione precedente da https://github.com/FFmpeg/nv-codec-headers/releases .
Ciò può essere necessario se si esegue la compilazione ffmpeg
con l'ultima versione nv-codec-headers
, ma il driver grafico è di una versione che non gestisce ancora la versione minima dell'API CUDA richiesta da nv-codec-headers
. Il sintomo sarà che ffmpeg
fallirà la transcodifica dei flussi video. Nel mio caso nv-codec-headers
richiesto CUDA API 9.1, mentre l'ultimo nvidia-driver
per la mia distribuzione (test) era ancora in una versione con 9.0.
Il ripristino di un precedente nv-codec-headers
è probabilmente più sicuro del download dell'ultimo driver direttamente da Nvidia e della sua costruzione al di fuori del meccanismo di aggiornamento della distribuzione.