H.264 की तुलना में VP8 / 9 को इतना धीमा क्यों रखा गया है?


11

हाल ही में मैं Webm कोडेक VP8 और VP9 को आज़माना चाहता था, लेकिन जब मैं ffmpegएक H.264 MP4 फ़ाइल को अन्य दो कोडेक्स में से एक में एनकोड करने के लिए दौड़ा , तो मुझे महसूस हुआ कि एन्कोडिंग (परिमाण के लगभग एक क्रम से) धीमी है।

3 MBit / s पर H.264 से VP9 तक का 1080p30 वीडियो लगभग 6-7 एफपीएस पर एन्कोड किया जा रहा है, जबकि वही वीडियो लगभग 40 एफपीएस से एच .264 तक एनकोड करता है। मैंने VP9 प्रारूप के लिए libvpx-vp9कोडेक का उपयोग किया ffmpeg। मुझे VP8 और Theora के लिए भी वही परिणाम मिल रहे हैं।

क्या कोई मुझे समझा सकता है कि वीपी 9 इतना धीमा क्यों है? मैंने एक अलग मशीन की कोशिश की, जिसने मुझे हैंडब्रेक का उपयोग करके समान रीसूल दिया।


जवाबों:


11

libvpx-vp9की तुलना में बहुत धीमी एनकोडर है, libx264लेकिन ffmpeg (0 = ऑटो) में थ्रेड्स की डिफ़ॉल्ट सेटिंग्स libvpx के लिए प्रभावी नहीं है। मैन्युअल रूप से इसे सेट करने से स्पीड बंप मिलता है। जैसे

ffmpeg -i in.mp4 -c:v libvpx-vp9 -threads 4 out.mp4

4-कोर मशीन पर, जब 1080-30p H.264 स्ट्रीम को एन्कोडिंग किया जाता है, तो मुझे एक टक्कर मिलती 3.8 fpsहै 10 fps


किसी को यह भी उल्लेख करना चाहिए कि अलग-अलग गति के प्रीसेट हैं, अर्थात, के -presetलिए libx264और इसके -speedलिए libvpx-vp9। देख लो ffmpeg -h full। ये काफी अंतर ला सकते हैं, लेकिन वे गुणवत्ता या संपीड़न दक्षता को भी प्रभावित करते हैं।
17'17

1
मैंने इसके बजाय पुरानी मशीनों पर कोशिश की, लेकिन मैंने 4 धागे का उपयोग किया क्योंकि दोनों मशीनें क्वाड-कोर हैं। इस -speedविकल्प ने मेरे लिए बहुत बड़ा अंतर नहीं
डाला

@comfreak यह भी देखें: developers.google.com/media/vp9/the-basics
slhck

3

VP9 बेहतर संपीड़न प्रदान करने वाला एक अधिक जटिल कोडेक है। वीडियो संपीड़न / प्रदर्शन अनुपात तेजी से बढ़ता है। आपको VP9 प्रतिस्थापन (AV1) की अपेक्षा धीमी होनी चाहिए।


1
तो दूसरे शब्दों में, भले ही कोडेक "केवल" अपेक्षाकृत छोटे आकार के सुधार का उत्पादन करता है, यह बहुत धीमा हो सकता है? क्या मुझे प्रतिनिधि मिले परिणाम?
comfreak

1
VP9 की गुणवत्ता के मामले में 50% तक अधिक कुशल हो सकता है, @comfreak। मैं उस छोटे फोन नहीं होगा। आप केवल परिणामी फ़ाइल आकार की तुलना नहीं कर सकते।
17'17

@ एसएलएचएचके: तो आप कह रहे हैं कि 3 एमबीट / एस एच 264 की तुलना में अधिक मूल जानकारी को एन्कोड कर सकता है और इसलिए एच .264 में स्रोत सामग्री की तुलना में कम बिट दर चीजों को गति देने का एक विकल्प हो सकता है?
कॉमफ्रेक

1
@comfreak कम बिटरेट का उपयोग करने से स्वचालित रूप से एन्कोडिंग प्रक्रिया की गति में वृद्धि नहीं होगी। मैं सिर्फ यह कह रहा हूं कि संपीड़न दक्षता और गति के बीच एक व्यापार है, और उदाहरण के लिए कई स्ट्रीमिंग प्रदाता जगह और बैंडविड्थ के संरक्षण के लिए कम समग्र बिटरेट पर उच्च गुणवत्ता वाले स्ट्रीम बनाने के लिए सीपीयू समय का निवेश करेंगे। अधिक कुशल कोडेक का उपयोग करना (जैसे VP9 या H.264 से अधिक HEVC) भी उस संबंध में मदद करता है।
17'17

लेकिन अनिवार्य रूप से, यदि गति आपके लिए सबसे महत्वपूर्ण कारक है, तो आपको पुराने कोडेक्स (जैसे, एच ​​.264), कम संपीड़न-कुशल प्रीसेट के साथ रहना चाहिए, और शायद एनवीईएनसी के साथ जीपीयू-असिस्टेड एन्कोडिंग भी देखना चाहिए।
'13:56
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.