क्या GPU का उपयोग h264 को एनकोड करने के लिए किया जा सकता है?


13

अगर मैं एक बेहतर ग्राफिक्स कार्ड प्राप्त करूं तो सोच रहा हूं कि क्या यह हैंडब्रेक का उपयोग करके मेरी मशीन पर h264 एन्कोडिंग को गति दे सकता है?

यदि हां, तो मैं कैसे बता सकता हूं कि ग्राफिक्स कार्ड इसका समर्थन करेगा।

मुझे पता है कि GPU h264 के हार्डवेयर डिकोडिंग कर सकता है, लेकिन एन्कोडिंग के बारे में निश्चित नहीं है।


संबंधित: त्वरित वीडियो संपीड़न - किसी भी तरह से, आप इसके लिए एक NVIDIA कार्ड रखना चाहते हैं और पैसे खर्च करने के लिए तैयार रहना चाहते हैं।
21


के लिए 264 एन्कोडिंग, handbrake सॉफ्टवेयर एनकोडर का उपयोग करता x264 (VideoLAN) । नीचे दिए गए कुछ जवाबों में हैंडब्रेक में ffmpeg का उपयोग किया गया है, जो x264 या hw (GPU) कार्यान्वयन का उपयोग कर सकता है। हालांकि यह पुराना (लेकिन अभी भी प्रासंगिक) सवाल शायद "हैंडब्रेक को तेज कैसे करें" नहीं पूछ रहा है, बल्कि "कैसे तेजी से एच 2464 एन्कोडिंग बनाने के लिए" कहा जा रहा है। उत्तर में एक शेल्फ-जीवन होगा (कुछ पहले से ही समाप्त हो चुके हैं); लेकिन अभी के लिए, यदि आप ML और / या बैच प्रोसेसिंग कर रहे हैं, तो आपको अपने हार्डवेयर के कार्यान्वयन पर मिलान करना पड़ सकता है
michael

fwiw, मैंने इस टिप्पणी को ffmeg से दिलचस्प पाया : "हार्डवेयर एनकोडर आमतौर पर x264 जैसे अच्छे सॉफ़्टवेयर एन्कोडर की तुलना में काफी कम गुणवत्ता का उत्पादन करते हैं, लेकिन आम तौर पर तेज़ होते हैं और बहुत अधिक सीपीयू संसाधन का उपयोग नहीं करते हैं। (अर्थात, उन्हें बनाने के लिए उच्च बिटरेट की आवश्यकता होती है। एक ही अवधारणात्मक गुणवत्ता के साथ आउटपुट, या वे एक ही बिटरेट पर कम अवधारणात्मक गुणवत्ता के साथ आउटपुट बनाते हैं।) "
माइकल

जवाबों:


7

हैंडब्रेक के उपयोग से उत्तर नहीं होगा। हैंडब्रेक एक सीपीयू-केवल h.264 एनकोडर है, हालांकि अब यह वीडियो स्केलिंग के लिए OpenCL का उपयोग करने में सक्षम है और वीडियो डिकोडिंग के लिए DXVA के लिए कुछ समर्थन है।

स्लैक द्वारा जुड़े प्रश्न में MediaCoder का उल्लेख किया गया है , लेकिन इसके लिए या तो एनवीडिया ग्राफिक्स कार्ड या द्वितीय पीढ़ी के ग्राफिक्स कोर के साथ इंटेल सीपीयू की आवश्यकता होती है।

पुराने उत्पादों की एक जोड़ी है कि विशेष रूप से Badaboom और अति Avivo सॉफ्टवेयर obsoleted किया गया है।

Badaboom जो एन्कोडिंग प्रक्रिया को तेज करने के लिए एनवीडिया और इंटेल ग्राफिक्स प्रोसेसर का उपयोग कर सकता है लेकिन यह अब जीवन का अंत है और नए ग्राफिक्स कार्ड का समर्थन नहीं करता है।

एटीआई का अपना वीडियो एनकोडर था जिसे एएमडी कोडेक पैकेज में विलय करने से पहले "एविवो" कहा जाता था, जिसमें एएमडी वीडियो कनवर्टर शामिल था, हालांकि यह अब उपलब्ध नहीं है।


तो मैं इस समय एक AMD CPU का उपयोग कर रहा हूं, क्या इसका मतलब यह है कि यह मेरे लिए समय की बर्बादी है? क्या यह कोई NVIDIA कार्ड हो सकता है - ओह, इसलिए इसे CUDA का समर्थन करना है?
पीटर

मुझे यह लिंक मिला, en.wikipedia.org/wiki/CUDA जो बताता है कि काफी सारे NVIDIA कार्ड CUDA का समर्थन करते हैं।
पीटर

मैंने अपने उत्तर को एएमडी सॉफ्टवेयर पैकेज के लिंक के साथ अपडेट किया है जो वीडियो को एनकोड करने के लिए जीपीयू का उपयोग करने में आपकी मदद कर सकता है , लेकिन इसके लिए एचडी 2 सीरीज़ कार्ड या बेहतर की आवश्यकता होती है। यदि आपके पास विशेष रूप से शक्तिशाली सीपीयू लेकिन एक बजट ग्राफिक्स कार्ड है तो हैंडब्रेक अभी भी तेज हो सकता है।
Mokubai

Badaboom को 4/18/2012 तक समाप्त किया जा रहा है।
एचवीएस

2
ऊपर दिया गया उत्तर ठीक नहीं है।
10

4

x264 अब OpenCL एन्कोडिंग त्वरण का समर्थन करता है। आपको कितना त्वरण मिलेगा यह आपके ग्राफिक्स कार्ड के प्रदर्शन पर निर्भर करेगा, मेरे जीटीएस 450 पर मुझे कोई नहीं मिलता है और धीमे कार्ड के साथ यह वास्तव में एन्कोडिंग को धीमा कर देता है। बेहतर कार्ड मदद कर सकते हैं। आपको बस x264 कमांड लाइन में --opencl जोड़ना है। मेरा मानना ​​है कि हैंडब्रेक समान x264 पुस्तकालयों का उपयोग करता है और नए बिल्ड में समान ओपनसीएल त्वरण प्रदान करता है।


मुझे OpenCL एन्कोडिंग त्वरण का उपयोग कैसे करना चाहिए?
डॉ। अंजय

2

https://trac.ffmpeg.org/wiki/HWAccelIntro

FFmpeg हार्डवेयर त्वरण के लिए एक सबसिस्टम प्रदान करता है।

हार्डवेयर त्वरण मल्टीमीडिया प्रसंस्करण करने के लिए विशिष्ट उपकरणों (आमतौर पर ग्राफिकल कार्ड> या अन्य विशिष्ट उपकरणों) का उपयोग करने की अनुमति देता है। यह सीपीयू को इस तरह की संगणनाओं से मुक्त करते हुए मांग कम्प्यूटिंग करने के लिए समर्पित हार्डवेयर का उपयोग करने की अनुमति देता है। आमतौर पर हार्डवेयर त्वरण विशिष्ट हार्डवेयर उपकरणों (आमतौर पर GPU) को डिकोडिंग और एन्कोडिंग वीडियो स्ट्रीम, या फ़िल्टरिंग वीडियो से संबंधित संचालन करने में सक्षम बनाता है।

उपकरण के FFmpeg का उपयोग करते समय, HW-असिस्टेड डिकोडिंग को -hwaccelविकल्प के माध्यम से सक्षम किया जाता है , जो एक विशिष्ट डिकोडर को सक्षम करता है। प्रत्येक डिकोडर की विशिष्ट सीमाएँ हो सकती हैं (उदाहरण के लिए एक H.264 डिकोडर केवल आधारभूत प्रोफ़ाइल का समर्थन कर सकता है)। एचडब्ल्यू-असिस्टेड एन्कोडिंग एक विशिष्ट एनकोडर (उदाहरण के लिए nvenc_h264) के उपयोग के माध्यम से सक्षम है। फ़िल्टरिंग HW-असिस्टेड प्रोसेसिंग केवल कुछ फ़िल्टर में समर्थित है, और उस स्थिति में आप फ़िल्टर विकल्प के माध्यम से OpenCL कोड को सक्षम करते हैं।

कई हार्डवेयर त्वरण मानक API हैं, जिनमें से कुछ FFmpeg द्वारा कुछ हद तक समर्थित हैं।

"-हवासेल ऑटो" विकल्प आपको एन्कोडिंग सत्र के लिए उपयोग करने के लिए हार्डवेयर-आधारित त्वरित डिकोडिंग का चयन करने की अनुमति देता है। आप इस पैरामीटर को इनपुट से पहले "ऑटो" के साथ जोड़ सकते हैं (यदि आपका x264 ओपनसीएल समर्थन के साथ संकलित किया गया है तो आप -x264opts param को जोड़ने का प्रयास कर सकते हैं), उदाहरण के लिए:

ffmpeg -hwaccel auto -i input -vcodec libx264 -x264opts opencl output

क्षमा करें, लेकिन मुझे याद नहीं है कि "-wwcel" के सभी उपलब्ध विकल्पों को कैसे सूचीबद्ध किया जाए।

इसके अलावा आप यह कोशिश कर सकते हैं: https://wiki.archlinux.org/index.php/Hardware_video_acceleration


यह विशेष रूप से प्रश्न का उत्तर देता है, हालांकि यह उपयोगी प्रतीत होता है। कैसे के बारे में आप कुछ विवरण जोड़ते हैं जो दिखाते हैं कि कैसे ffmpeg और यह तर्क ओपी की मदद कर सकता है।
संगीत 2

यह उत्तर h.264 एन्कोडिंग के लिए हैंडब्रेक के बजाय ffmpeg का उपयोग करने का तात्पर्य है , जो कि शायद ठीक है, क्योंकि सवाल शायद सिर्फ सांकेतिक शब्दों में बदलना करने के लिए सबसे तेज़ तरीका पूछ रहा है - और अनुमान लगाता है कि GPU इसे सक्षम करेगा। ध्यान दें कि सभी जीपीयू समान रूप से शक्तिशाली नहीं हैं (जैसे एकीकृत जीपीयू बनाम समर्पित), और सीपीयू में भी अनुकूलन हैं जो लाइब्रेरी का उपयोग करने के लिए संकलित किए जाने पर पुस्तकालयों का उपयोग कर सकते हैं। तो "हार्डवेयर त्वरण" नीचे जाने का सही रास्ता है, चाहे वह सीपीयू या जीपीयू के माध्यम से हो।
माइकल

0

वर्तमान में, हैंडब्रेक H.264 / AVC के लिए निम्नलिखित हार्डवेयर-त्वरित एन्कोडर्स का समर्थन करता है:

  1. इंटेल QuickSync (विंडोज पर और लिनक्स पर)। यह कम से कम इंटेल-आधारित सैंडब्रिज (दूसरी पीढ़ी का कोर) के साथ संगत है - एकीकृत ग्राफिक्स के साथ श्रृंखला प्रोसेसर लाइनें सक्षम और ऑपरेटिंग सिस्टम के संपर्क में। स्वीकार्य एन्कोडिंग गुणवत्ता के लिए अनुशंसित हार्डवेयर: हैसवेल (4 वीं पीढ़ी की कोर-सीरीज़) और उससे आगे, जिसने बेहतर प्रदर्शन के साथ बढ़िया अनाज लक्ष्य स्तरों (टीयू), लुकहेड फ़ंक्शंस (जैसे एलए-बीआरसी और आईसीक्यू एन्कोडिंग मोड ) की अवधारणा को पेश किया । यहां हैंडब्रेक डॉक्यूमेंटेशन से उपयोग गाइड देखें ।

  2. NVIDIA का NVENC : इसके लिए कम से कम NVIDIA के केप्लर (GK +) श्रृंखला के GPU और उच्च प्रदर्शन वाले उपभोक्ता SKU (GTX- श्रृंखला) और पेशेवर लाइनअप (Quadro और Tesla GPU के आधार पर केप्लर और उसके बाद के संस्करण) की आवश्यकता होती है। यह विंडोज और लिनक्स दोनों पर उपलब्ध है।

ध्यान दें कि NVENC के साथ, आप उपभोक्ता SKU पर अधिकतम दो युगपत सांकेतिक सत्रों में कृत्रिम रूप से सीमित रहेंगे, जबकि व्यावसायिक लाइनअप इससे अप्रभावित रहता है। विशिष्ट एनकोडर क्षमताओं पर आपके संदर्भ के लिए, GPU मैट्रिक्स देखें । सर्वश्रेष्ठ एनकोडर प्रदर्शन और गुणवत्ता के लिए, पास्कल और वोल्टा जीपीयू के नवीनतम पुनरावृत्ति से चिपके रहें ।

वैकल्पिक रूप से:

  1. AMD AMF का एन्कोडिंग सपोर्ट विंडोज ओनली के लिए मौजूदा नाइटली बिल्ड में भी उपलब्ध है। एएमडी के एएमएफ के बारे में एक विशेष ध्यान दें (जो सभी जीसीएन + एसकेयू में हार्डवेयर में निर्मित वीसीई एनकोडर में टैप करता है ) यह है कि नए हार्डवेयर पर, जैसे कि पोलारिस (आरएक्स 400+ सीरीज़) और वेगा , एच .264 / एवीसी के लिए कुछ उन्नत एनकोडर चेकिंग एचईवीसी एन्कोडिंग समर्थन शुरू करने के साथ उन्हें पदावनत किया गया। एएमडी गिराया गया था बी-फ्रेम एन्कोडिंग, अनुकूली मात्रा का ठहराव (AQ) के लिए कोई समर्थन नहीं है, एक विशेषता है कि aforementioned हार्डवेयर-आधारित एन्कोडर (QuickSync और NVENC) ने बिना किसी प्रतिगमन के पीढ़ियों के लिए लागू किया है। इसके अलावा, देखना यह क्या उम्मीद करने के बारे में प्रवाह क्षमता मैट्रिक्स के विषय में नोटों पर।

जहां तक ​​Apple के समर्थन का सवाल है, यह सबसे अच्छा, अस्थायी हैVideoToolBox एपीआई, जहां Handbrake के दायरे से बाहर लागू किया, यह भी नियंत्रण की एक बहुत ही सीमित सेट है लगता है। भले ही हैंडब्रेक इसे अपस्ट्रीम में अपनाता है, गुणवत्ता प्रतिधारण और थ्रूपुट के मामले में चमत्कार की उम्मीद नहीं करता है।

ध्यान दें कि आपको अपने प्लेटफ़ॉर्म पर नवीनतम एन्कोडर सुविधाओं का उपयोग करने के लिए नवीनतम रात के निर्माण का उपयोग करना पड़ सकता है, जैसा कि वर्तमान में है। यह निश्चित रूप से भविष्य में बदल जाएगा।

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