Ubuntu में NVENC कैसे स्थापित / संकलित करें?


14

मैं इस दस्तावेज़ में एनवीडिया एनवीएनसी के लिए समर्थन देख रहा हूं, लेकिन यह भ्रामक लगता है, कुछ कदम से कदम? या ubuntu के लिए ffmpeg-nvenc के साथ पीपीए?

http://developer.download.nvidia.com/compute/redist/ffmpeg/1511-patch/FFMPEG-with-NVIDIA-Acceleration-on-Ubuntu_UG_v01.pdf

जवाबों:


19

हमेशा की तरह FFmpeg के साथ निरंतर विकास कई बार लक्ष्य पोस्ट को बदलता है और यह निश्चित रूप से nvenc और FFmpeg का सच है। 3 चरण हुए हैं:

  1. अपना खुद का रोल करें : 27 अगस्त 2016 से पहले nvenc बनाने के लिए अपने खुद के हेडर को ट्रैक करना आवश्यक था। कठिन और थोड़ा भ्रामक है।
  2. स्रोत में निर्मित : 27 अगस्त 2016 ने FFmpeg स्रोत के हिस्से के रूप में शामिल किए गए आवश्यक हेडर को देखा , कुछ भी आवश्यक नहीं है, लेकिन गिट से FFmpeg स्रोत को संकलित करने की क्षमता है, या इस समय गिट से 'रिलीज' संस्करण का उपयोग करें।
  3. एनवी-कोडेक-हेडर का उपयोग करें : 26 फरवरी 2018 को एनवीआईडीआईए हेडर को एफएफएमईजी स्रोत से हटा दिया गया था । इन हेडरों के साथ निरंतर काम करने के लिए एक अलग गिट रिपॉजिटरी बनाई गई थी। फिलहाल इन हेडर को nvenc और दोस्तों तक पहुँच पाने के लिए git से FFmpeg के रूप में स्थापित किया जाना चाहिए ।

दो चरणों की आवश्यकता है:

1. एनवी-कोडेक-हेडर पैकेज स्थापित करें :

निम्नलिखित टर्मिनल कमांड जैसा कुछ होना चाहिए:

sudo apt-get install make git
mkdir $HOME/nv-codec-headers_build && cd $HOME/nv-codec-headers_build
git clone https://git.videolan.org/git/ffmpeg/nv-codec-headers.git
cd nv-codec-headers
make && sudo make install

यदि किसी कारण से आप अपना मन बदल लेते हैं और स्थापित फ़ाइलों के साथ-साथ बिल्ड डायरेक्टरी को पूरी तरह से हटाना चाहते हैं, तो बस निम्नलिखित दो टर्मिनल कमांड चलाएं:

sudo rm -v /usr/local/{lib/pkgconfig/ffnvcodec.pc,include/ffnvcodec/*.h}
rm -rfv $HOME/nv-codec-headers_build

और आपके सिस्टम को साफ कर दिया गया है। यदि फिर भी आप निम्नलिखित चरण का उपयोग जारी रखना चाहते हैं:

2. संकलन FFmpeg :

यह बहुत अच्छी तरह से परीक्षण गाइड का उपयोग करें:

nv-codec-headersहो जाएगा स्वतः मान्यता प्राप्त (बिना किसी अतिरिक्त ./configureविकल्प की जरूरत है) और nvenc सफलतापूर्वक निर्माण किया जाएगा।

परिक्षण:

मैंने बायोनिक बीवर एलटीएस पर इसका परीक्षण किया है और परिणाम हैं:

andrew@ilium:~$ ffmpeg -encoders 2>/dev/null | grep nvenc
 V..... h264_nvenc           NVIDIA NVENC H.264 encoder (codec h264)
 V..... nvenc                NVIDIA NVENC H.264 encoder (codec h264)
 V..... nvenc_h264           NVIDIA NVENC H.264 encoder (codec h264)
 V..... nvenc_hevc           NVIDIA NVENC hevc encoder (codec hevc)
 V..... hevc_nvenc           NVIDIA NVENC hevc encoder (codec hevc)
andrew@ilium:~$

और अगर आपको ऊपर जैसा चित्र दिखता है, और आपके पास एक समर्थित ग्राफिक्स कार्ड है , तो आप जाने के लिए सही हैं :)

टिप्पणियाँ:

  • नवीनतम संस्करण वीडियो कोडेक एसडीके संस्करण 9.1.23 से मेल खाता है और इसके लिए NVidia ड्राइवरों को 435.21 या नए संस्करण की आवश्यकता है।
  • पुराने संस्करण : अब nv-codec-हेडर की एक स्वचालित गितुब कॉपी है जो हेडर के पुराने संस्करण का उपयोग करने के लिए तारबोल को भी सही बनाता है । यदि आप चाहते हैं कि एनवीडिया ड्राइवरों के पुराने संस्करण के साथ सिंक करने के लिए हेडर चाहते हैं, जिसे आप अपडेट करने में असमर्थ या अनिच्छुक हैं।
  • FFmpeg के लिए हार्डवेयर एक्सेलेरेशन गाइड : FFmpeg के साथ सामान्य रूप से हार्डवेयर त्वरण के लिए FFmpeg Wiki गाइड, एनवीकेएन का संकलन और उपयोग करने के लिए एक कैनोनिकल सेक्शन ...

इस विस्तृत गाइड के लिए बहुत बहुत धन्यवाद। मुझे आपके परीक्षण अनुभाग से समान आउटपुट मिला, जो बहुत अच्छा है। NVidia ड्राइवरों के अलावा, क्या हमें भी स्थापित GPU का उपयोग करने के लिए FFMPEG प्राप्त करने के लिए Cuda SDK को स्थापित करने की आवश्यकता है?
अज्ञात देव

@KimberlyW मेरे सिस्टम पर आवश्यक नहीं है, मैंने अभी परीक्षण किया है ...
andrew.46

@ andrew.46 मैंने वही किया जो आपने कहा था लेकिन मेरे पास अभी भी vp9 के लिए हार्डवेयर त्वरण नहीं है: /
फ्रीडो

@Freedo दुर्भाग्य से nvenc H.264 और HEVC एन्कोडिंग के लिए है ...
and.4.4

1
@ डीपीएस आउच !! लेकिन नहीं nv-codec- हेडर की सरल स्थापना जो मैंने इस उत्तर में दी है?
and.4.4

0

@ andrew.46 आपकी प्रतिक्रिया बहुत अच्छी है, धन्यवाद। यह टिप्पणी के रूप में पोस्ट करने के लिए मेरी प्रतिष्ठा सीमा से नीचे है। यदि संभव हो, तो कृपया निम्नलिखित जानकारी के साथ अपनी प्रतिक्रिया का विस्तार करें।

यदि आपको किसी पुराने संस्करण को वापस करने की आवश्यकता है nv-codec-headers, तो https://github.com/FFmpeg/nv-codec-headers/releases से पुराने रिलीज़ को डाउनलोड करें और संकलित करें

यदि आप ffmpegनवीनतम के खिलाफ संकलन करते हैं nv-codec-headers, तो यह आवश्यक हो सकता है , लेकिन आपका ग्राफिक्स ड्राइवर एक ऐसे संस्करण का है जो अभी तक न्यूनतम CUDA एपीआई संस्करण को संभालता नहीं है nv-codec-headers। लक्षण यह होगा कि ffmpegवीडियो स्ट्रीम ट्रांसकोडिंग विफल हो जाएगी। मेरे मामले में nv-codec-headersCUDA API 9.1 की आवश्यकता थी, जबकि nvidia-driverमेरे वितरण (परीक्षण) के लिए नवीनतम अभी भी 9.0 का उपयोग कर एक संस्करण में था।

पहले के लिए रेवरेट करना nv-codec-headersसंभवत: एनवीडिया से सीधे नवीनतम ड्राइवर को डाउनलोड करने और इसे आपके वितरण के अपडेट तंत्र के बाहर बनाने से अधिक सुरक्षित है।


धन्यवाद! मैंने इसे 'नोट्स' अनुभाग में जोड़ा है ...
andrew.46
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.