Nvidia Jetson プラットフォームは ffmpeg nvmpi ハードウェア コーデックを使用します

まず、現在 ffmpeg は nvidia Jetson プラットフォームでのハードウェア コーデック アクセラレーションの使用をサポートしていませんが、nvidia は相対的なハードウェア コーデック アクセラレーション API を提供しているため、この API を ffmpeg に統合して実装できます。

幸いなことに、海外には素晴らしい神様がたくさんいて、github 上ですでに誰かがそれを実現しています。

GitHub - jocover/jetson-ffmpeg: Jetson nano での ffmpeg サポート

これは、jetson API の C++ プロジェクトであり、ffmpeg でコンパイルするには so ライブラリをコンパイルする必要があります。

GitHub - LinusCDE/mad-jetson-ffmpeg: Nvidia Jetson 用のすべての HW Accel を含めることを目的とした FFmpeg フォーク

このプロジェクトはパッチが統合された ffmpeg であり、上記の so ライブラリをインストールすると、この ffmpeg を Jetson プラットフォーム用に直接コンパイルできます。

コマンドをコンパイルします。コンパイル プロセス中に一部のサードパーティ ライブラリをインストールする必要がある場合があります。sudo apt-get install を使用するだけです。

./configure --prefix=/usr/local/ffmpeg_4.4 --extra-cflags="-I/usr/local/include" --extra-ldflags="-L/usr/local/lib" --disable -debug --disable-stripping --enable-lto --enable-fontconfig --enable-gpl --enable-libdrm --enable-libfreetype --enable-libx264 --enable-nvmpi --enable-shared --extra -libs="-L/usr/lib/aarch64-linux-gnu/tegra -lnvbuf_utils" --extra-cflags="-I /usr/src/jetson_multimedia_api/include/"

「h264_nvmpi」コーデックをハードウェア アクセラレーションに使用できます。

さらに、jetson プラットフォームによってエンコードおよびデコードされたデータは依然として CPU メモリ内にあることを明確にする必要があり、コーデックを実現するハードウェア モジュールのみが統合されており、GPU は統合されていません。

おすすめ

転載: blog.csdn.net/a454193977/article/details/128713534