薬味備忘録

Aonori Tech Diary

enable ffmpeg hw encoding/decoding on Jetson Xavier NX

Jetson Xavier NXを入手したので、HW Encoding/Decodingを試そうとしたらffmpeg導入で躓いた。解決方法のメモ。

step.1 nvccにPathを通す

.bashrcに以下を追記して、nvccにPathを通す.

export CUDA_HOME=/usr/local/cuda'
export LD_LIBRARY_PATH=${CUDA_HOME}/lib64:${LD_LIBRARY_PATH}'
export PATH=${CUDA_HOME}/bin:${PATH}'

参考 【2020年版】NVIDIA Jetson Xavier NXの初期設定、最高速で動かす設定、空きメモリを増やす方法等 (2020年の JetPack 4.4になっても nvccのパスがデフォルトで通って無いとか、初期設定が必要です)

step.2 nvEncodeAPI.hを追加

NVIDIA Video Codec SDKを以下ページからダウンロード。

NVIDIA VIDEO CODEC SDK - Get Started | NVIDIA Developer

ヘッダファイルさえあればいいので、ソースコードをダウンロードする必要はない。画像の左側ボタンからVideo_Codec_SDK_10.0.26.zipダウンロード。

f:id:aonrjp:20201009130336p:plain

解凍後 Video_Codec_SDK_10.0.26/Interface/nvEncoderAPI.h/usr/include に配置。

参考 Trouble installing libav with nVidia Codec SDK support - CUDA Programming and Performance - NVIDIA Developer Forums

step.3 ffmpegソースビルド

今回はFREEWING-JPさんのインストールスクリプトを使って、ffmpegをソースビルドします

【2020年版】NVIDIA Jetson Nano、Jetson Xavier NXの便利スクリプト (Jetsonの面倒な初期設定やミドルウェアのインストールを bashスクリプトの実行だけで簡単にできます)

cd
git clone https://github.com/FREEWING-JP/Jetson_Convenience_Script
bash ./Jetson_Convenience_Script/NV_FFmpeg/inst_NV_FFmpeg.sh