tsukumijima/KonomiTV

NVEncCでのエンコードが開始されない

waigo001 opened this issue · 3 comments

概要

NVencCのエンコードが開始されない
/code/server/thirdparty/NVEncC/NVEncC.elf: error while loading shared libraries: libcuda.so.1: cannot open shared object file: No such file or directory

環境

  • OS
    Docker

  • branch
    master(Commit Hash:65eb5e9baea89629cf36270a63c7b6ad871c2cc2)

備考

.github/workflowを確認すると、Linux環境のThirdPartyがUbuntu 20.04のものを使用しているようです。
Dockerfileのbase imageはUbuntu 22.04ですので、ここが原因と思われます。

まず、基本的に master ブランチは開発中のものです。ドキュメントや説明は一切ありませんし、詳しく理解されている方以外には現状おすすめできません。

さて、Docker 環境で NVEncC を使うには、docker-compose.override.example.yaml を docker-compose.override.yaml にコピーする必要があります。
もともと docker-compose.yaml に NVIDIA GPU を使うための設定を書いていたのですが、それだと NVIDIA GPU 非搭載の環境でコメントアウトしないと起動できなくなってしまうため、別の設定ファイルに切り分けたものです。
また、別途 nvidia-docker2 パッケージのインストールも必要になります。

github/workflowを確認すると、Linux環境のThirdPartyがUbuntu 20.04のものを使用しているようです。
Dockerfileのbase imageはUbuntu 22.04ですので、ここが原因と思われます。

それはあり得ません。私の環境では通常通り Docker で使えていますし、Ubuntu 20.04 (glibc 2.31) 向けにビルドされたライブラリは Ubuntu 22.04 (glibc 2.35) でも実行できるためです。
libcuda.so.1 は、コンテナ内で NVIDIA GPU を使う設定にした際に、ホストマシンのドライバのバージョンに合わせてよしなに Docker 側によって配置されるファイルになります。NVIDIA GPU を使う設定を行わなかった場合は、libcuda.so は配置されません。

まず、基本的に master ブランチは開発中のものです。ドキュメントや説明は一切ありませんし、詳しく理解されている方以外には現状おすすめできません。
issueを投げるのも初めてでしたので、現状ドキュメントが揃っていない状態で勝手な憶測で記載をしてしまいました。大変失礼しました。

docker-compose.override.example.yaml を docker-compose.override.yaml にコピーする必要があります。

表記の通り実施し動作することを確認しました。
お手数をおかけし大変申し訳ございませんでした。

いえいえ。動いたようでよかったです。
今後とも KonomiTV をよろしくお願いします。