Devuan पर nvcc स्थापित करके NVENC सक्षम करके हार्डवेयर एन्कोडिंग का उपयोग करने में सक्षम बनाना

6 min

language: ja bn en es hi pt ru zh-cn zh-tw

नमस्ते, मैं अक्षम हूँ।

https://memories.gallery

Nextcloud ऐप के रूप में उपरोक्त का उपयोग करना इतना सुविधाजनक था कि, और हार्डवेयर एन्कोडिंग को भी सक्षम किया जा सकता है, इसलिए मैंने इस अवसर पर इसे स्थापित किया।

https://developers.play.jp/entry/2022/11/18/181357#NVIDIA-のドライバーをインストール

इस साइट का संदर्भ लेते हुए, मैं यथासंभव नवीनतम संस्करण स्थापित करूँगा।

आवश्यक पैकेज स्थापित करें

sudo apt install autoconf automake bzip2 libbz2-dev cmake libfreetype6-dev gcc g++ git libtool make pkg-config zlib1g-dev nasm

डायरेक्टरी बनाएँ

mkdir bin ffmpeg_build ffmpeg_sources

एक परीक्षण के रूप में इसे स्थापित करने के लिए, ताकि मैं किसी भी समय वापस जा सकूँ, मैंने इसे एक सामान्य उपयोगकर्ता की होम डायरेक्टरी में रखने का फैसला किया।

डायरेक्टरी में जाएँ, और nv-codec-headers के नवीनतम संस्करण को wget के साथ सहेजें, निकालें और बनाएँ।
और फिर ffmpeg का स्रोत कोड सहेजें।

cd ~/ffmpeg_sources/
wget https://github.com/FFmpeg/nv-codec-headers/releases/download/n12.2.72.0/nv-codec-headers-12.2.72.0.tar.gz
ls -la
tar xf nv-codec-headers-12.2.72.0.tar.gz
ls -la
cd nv-codec-headers-12.2.72.0
make PREFIX=$HOME/ffmpeg_build
make install PREFIX=$HOME/ffmpeg_build
cd ..
wget https://ffmpeg.org/releases/ffmpeg-7.0.1.tar.gz
ls -la
tar xf ffmpeg-7.0.1.tar.gz
ls -la

और फिर, nvidia-cuda-toolkit स्थापित करें। एहतियात के तौर पर, मैंने बीच में पहले से स्थापित चीज़ों को हटा दिया।

wget https://developer.download.nvidia.com/compute/cuda/12.5.0/local_installers/cuda_12.5.0_555.42.02_linux.run
ls -la
sudo apt remove nvidia-cuda-toolkit
ls -la
chmod +x cuda_12.5.0_555.42.02_linux.run
sudo ./cuda_12.5.0_555.42.02_linux.run --silent --override --toolkit --no-opengl-libs
nvcc -V

इस बिंदु पर, मैंने जाँच की कि क्या पथ सेट है, और चूंकि यह नहीं था, मैंने इसे /etc/profile में जोड़ा।

which nvcc
export PATH="/usr/local/cuda/bin:${PATH}"
which nvcc
sudo ldconfig
sudo vim /etc/profile

मैंने इसे इस प्रकार जोड़ा:
छवि में, अंतिम निष्पादन योग्य फ़ाइल का स्थान भी पहले ही जोड़ा जा चुका है...
मैंने इसे $HOME के साथ क्यों निर्दिष्ट नहीं किया, इसका कारण यह है कि यह सभी पर लागू होता है, और यदि यह रूट होता, तो यह /home/root/bin को देखता, इसलिए मैंने इसे वर्तमान निष्पादन उपयोगकर्ता के साथ जोड़ा।

# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).

if [ "$(id -u)" -eq 0 ]; then
  PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
else
  PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games"
fi
export PATH
export PATH="/usr/local/cuda/bin:${PATH}"
export PATH="/home/haturatu/bin:${PATH}"
~~~~

उसके बाद, मैं बिल्ड प्रक्रिया करूँगा।
बीच में लाइब्रेरी की सामग्री की जाँच करें।

cd nv-codec-headers-12.2.72.0
make PREFIX=$HOME/ffmpeg_build
make install PREFIX=$HOME/ffmpeg_build
cd ~/ffmpeg_sources
ls -la
cd ffmpeg-7.0.1
ls -la /usr/local/cuda/include
ls -la /usr/local/cuda/lib64
CFLAGS="-O3 -I/usr/local/cuda/include" LDFLAGS="-L/usr/local/cuda/lib64" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure --prefix="$HOME/ffmpeg_build" --pkg-config-flags="--static" --bindir="$HOME/bin" --enable-nonfree --enable-gpl --enable-cuda-nvcc --enable-libnpp --disable-debug --disable-doc --enable-static
make -j 8
make install

यह हो गया है, लेकिन पथ अभी भी नई निष्पादन योग्य फ़ाइल के स्थान को नहीं देख रहा है।

ffmpeg
ls ../bin
cd ~
ls bin
./bin/ffmpeg
which ffmpeg
ls bin

पथ निर्दिष्ट करें।

export PATH="/home/haturatu/bin:${PATH}"
which ffmpeg
sudo vim /etc/profile
#↑ここで前述の部分のPATHを追加した。

यह हो गया है।

चूंकि ffmpeg के साथ हार्डवेयर एन्कोडिंग सफलतापूर्वक सक्षम हो गई है, मैंने इसे Nextcloud की तरफ से भी जाँच लिया है, और यह स्पष्ट रूप से इतना आरामदायक हो गया है कि अंतर महसूस किया जा सकता है... ऐसा लगता है...!?

चूंकि मेरे पास प्रत्येक निष्पादन योग्य फ़ाइल है, अगर मेरे पास खाली समय होगा तो मैं एन्कोडिंग बेंचमार्क लेने की कोशिश करूँगा। फिर मिलेंगे।

Related Posts