UbuntuでNVENCをインストール/コンパイルする方法は?


回答:


19

FFmpegの継続的な開発と同様に、目標は何度も投稿されますが、これはnvencとFFmpegにも当てはまります。3つのフェーズがありました。

  1. 独自にロールバックする:2016年8月27日より前に、nvencを構築するために独自のヘッダーを追跡する必要がありました。ずんぐりしていて、少しわかりにくい。
  2. ソースに組み込まれている:2016年8月27日には、FFmpegソースの一部として必要なヘッダーが組み込まれました。FFmpegソースをGitからコンパイルするか、現時点でGitからカットされた「リリース」バージョンを使用する必要があります。
  3. nv-codec-headersを使用:2018年2月26日に、NVidiaヘッダーがFFmpegソースから削除されました。これらのヘッダーの継続的な作業を保持するために、別のgitリポジトリが作成されました。現時点では、これらのヘッダーとgitからのFFmpegをインストールして、 nvencや友人にアクセスする必要があります。

次の2つの手順が必要です。

1. nv-codec-headersパッケージをインストールします

次のターミナルコマンドのようなもので十分です。

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

何らかの理由で気が変わって、インストールされているファイルとビルドディレクトリを完全に削除する場合は、次の2つのターミナルコマンドを実行します。

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:~$

上記と同様の画像が表示され、サポートされているグラフィックカードがある場合は、すぐに使用できます:)

ノート:

  • 最新バージョンはVideo Codec SDKバージョン9.1.23に対応しており、バージョン435.21以降のNVidiaドライバーが必要です。
  • 古いバージョン:nv-codec-headersの自動化されたgithubコピーがあります。これは、古いバージョンのヘッダーを使用するのに最適なtarballも作成します。ヘッダーを、更新できない、または更新したくないNVidiaドライバーの古いバージョンと同期する場合に最適です。
  • FFmpegのハードウェアアクセラレーションガイド:FFmpegの一般的なハードウェアアクセラレーションに関するWikiガイド。nvencコンパイルおよび使用するための標準セクション...

この詳細なガイドに感謝します。テストセクションからも同様の出力が得られました。これは素晴らしいことです。nVidiaドライバーとは別に、インストールされたGPUをFFMPEGで使用するためにCuda SDKをインストールする必要がありますか?
キンバリーW

@KimberlyW私のシステムでは必要ありません、今テストしました
...-andrew.46

@ andrew.46私はあなたが言ったことをしたが、vp9のハードウェアアクセラレーションがまだない:/
Freedo

@Freedo残念ながら、nvencはH.264およびHEVCエンコーディング用です
...-andrew.46

@ andrew.46 vp9エンコーディングを取得する方法を知っていますか?このdeveloper.nvidia.com/video-encode-decode-gpu-support-matrix
-Freedo

0

@ andrew.46あなたの反応は素晴らしいです、ありがとう。私の評判は、これをコメントとして投稿するしきい値を下回っています。可能であれば、次の情報で回答を拡大してください。

の以前のバージョンに戻す必要がある場合はnv-codec-headershttps://github.com/FFmpeg/nv-codec-headers/releasesから以前のリリースをダウンロードしてコンパイルします

これは、ffmpeg最新nv-codec-headers版に対してコンパイルする場合に必要になることがありますが、グラフィックスドライバーは、で必要な最小のCUDA APIバージョンをまだ処理していないバージョンですnv-codec-headers。症状は、ffmpegビデオストリームのトランスコードに失敗することです。私の場合nv-codec-headers、CUDA API 9.1が必要nvidia-driverでしたが、私のディストリビューション(テスト)の最新バージョンは9.0を使用したバージョンのままでした。

nv-codec-headersNvidiaから最新のドライバーを直接ダウンロードし、ディストリビューションの更新メカニズムの外でビルドするよりも、以前のバージョンに戻す方がおそらく安全です。


ありがとう!これを「メモ」セクションに追加しました...
andrew.46
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.