Я бачу підтримку nvidia NVENC в цьому документі, але це здається заплутаним, якийсь крок за кроком? або PPA з ffmpeg-nvenc для ubuntu?
Я бачу підтримку nvidia NVENC в цьому документі, але це здається заплутаним, якийсь крок за кроком? або PPA з ffmpeg-nvenc для ubuntu?
Відповіді:
Як завжди з FFmpeg, продовження розвитку змінює цілі пости багато разів, і це, безумовно, стосується nvenc та FFmpeg. Проведено 3 фази:
Необхідні два етапи:
1. Встановіть пакет nv-кодек-заголовки :
Приблизно таких команд терміналів має бути достатньо:
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
Якщо ви чомусь передумаєте і хочете повністю видалити встановлені файли, а також каталог збірок, просто запустіть наступні дві команди терміналів:
sudo rm -v /usr/local/{lib/pkgconfig/ffnvcodec.pc,include/ffnvcodec/*.h}
rm -rfv $HOME/nv-codec-headers_build
І ваша система була очищена. Якщо ви хочете продовжити, скористайтеся наступним кроком:
2. Складіть FFmpeg :
Скористайтеся цим дуже добре перевіреним посібником:
nv-codec-headers
Буде автоматично визнаний (без додаткових ./configure
опцій не потрібно) і nvenc буде успішно побудований.
Тестування:
Я перевірив це на Bionic Beaver LTS, і результати:
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:~$
І якщо ви бачите подібну картинку, як вище, і у вас є підтримувана відеокарта , ви правильно підете :)
Примітки:
@ andrew.46 Ваша відповідь чудова, дякую. Моя репутація нижче порогу, щоб розмістити це як коментар. Якщо можливо, будь-ласка, розкладіть свою відповідь наступною інформацією.
Якщо вам потрібно повернутися до більш ранньої версії nv-codec-headers
, завантажте та компілюйте більш ранню версію з https://github.com/FFmpeg/nv-codec-headers/releases .
Це може знадобитися, якщо ви компілюєте ffmpeg
найновіші версії nv-codec-headers
, але ваш графічний драйвер має версію, яка ще не обробляє мінімальну версію API CUDA, яку вимагає nv-codec-headers
. Симптомом буде те, що ffmpeg
не вдасться перекодувати відеопотоки. У моєму випадку nv-codec-headers
потрібен API CUDA 9.1, тоді як останній nvidia-driver
для мого розповсюдження (тестування) все ще був у версії з використанням 9.0.
Повернення до більш раннього nv-codec-headers
- це, мабуть, безпечніше, ніж завантажувати останній драйвер безпосередньо з Nvidia та створювати його поза механізмом оновлення вашого дистрибутива.