3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

FFmpegをインストールしてみた with NVIDIA GPU

Last updated at Posted at 2024-01-14

概要

FFmpegは人気のあるエンコード・デコードのSWです。NVIDIA GPUに入っているードウェアアクセラレータ(NVENC/NVDEC)を用いて、このエンコード/デコード処理を高速化することができます。

NVDEC/NVENCは、通常NVIDIA Video Codec SDKのAPIを通じて使用しますが、それを勉強するのは大変です。
FFmpegであれば、NVIDIAのアクセラレータを使用してENC/DECを高速化する仕組みを既に取り入れているので楽に使用することができます。

環境

  • Ubuntu 22.04
  • nvidia gpu driver 535.146.02
  • NVIDIA RTX 4000 Ada

やること

(GPUドライバはインストール済み)

  • CUDA Toolkitのインストール
  • FFmpegのインストール
  • エンコード・デコードテスト

手順

CUDA Toolkitのインストール

過去記事参考

  • nvidia-smiでCUDAの対応Version確認
nvidia-smi
  • runファイルを使って今回はv12.2をインストール
wget https://developer.download.nvidia.com/compute/cuda/12.2.2/local_installers/cuda_12.2.2_535.104.05_linux.run
sudo sh cuda_12.2.2_535.104.05_linux.run

既にドライバはインストールしているので、ドライバのチェックボックスを外してインストールした

  • パスの設定
echo 'export PATH=/usr/local/cuda-12.2/bin${PATH:+:${PATH}}' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-12.2/lib64\
                         ${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}' >> ~/.bashrc
  • 再起動 & パスの確認
nvcc -V

FFmpegのインストール

  • ffnvcodecをインストール
git clone https://git.videolan.org/git/ffmpeg/nv-codec-headers.git
cd nv-codec-headers && sudo make install
  • FFmpegのダウンロード
git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg/
sudo apt-get install build-essential yasm cmake libtool libc6 libc6-dev unzip wget libnuma1 libnuma-dev
cd ffmpeg
./configure --enable-nonfree --enable-cuda-nvcc --enable-libnpp --extra-cflags=-I/usr/local/cuda/include --extra-ldflags=-L/usr/local/cuda/lib64 --disable-static --enable-shared

自分の環境だと./configureが上手くいかなかったので下記パッケージをインストール

sudo apt-get install pkg-config
  • コンパイル & インストール
make -j 8
sudo make install

FFmpegのテスト

Ubuntu 22.04ではMP4の再生が出来なかったので、メディアプレーヤー等足りないソフトウェアをインストール

sudo apt-get update
sudo apt-get install ubuntu-restricted-extras
  • トランスコードのテスト
ffmpeg -y -vsync 0 -hwaccel cuda -hwaccel_output_format cuda -i input.mp4 -c:a copy -c:v h264_nvenc -b:v 5M output.mp4

最低限の動作確認終わり
エンコードデコードは次回

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?