अक्सर पूछे जाने वाले सवाल

संग्रह की मदद से व्यवस्थित रहें अपनी प्राथमिकताओं के आधार पर, कॉन्टेंट को सेव करें और कैटगरी में बांटें.

WebP क्या है? मुझे इसका इस्तेमाल क्यों करना चाहिए?

WebP, नुकसान पहुंचाने वाले और हानि कम करने के तरीके का एक तरीका है. इसका इस्तेमाल, वेब पर मौजूद कई तरह के फ़ोटोग्राफ़िक, ग्राफ़िक, और ग्राफ़िक इमेज पर किया जा सकता है. नुकसान पहुंचाने वाले कंप्रेस करने की रफ़्तार को बदला जा सकता है, ताकि उपयोगकर्ता फ़ाइल के साइज़ और इमेज की क्वालिटी के बीच ट्रेड-ऑफ़ चुन सके. इमेज की क्वालिटी खराब किए बिना, WebP आम तौर पर JPEG और JPEG 2000 की तुलना में 30% ज़्यादा कंप्रेस करता है. तुलनात्मक स्टडी देखें.

वेबपी फ़ॉर्मैट का मकसद छोटे और बेहतर तरीके से इमेज बनाना है, जो वेब को ज़्यादा तेज़ बनाने में मदद कर सके.

किन वेब ब्राउज़र पर WebP काम करता है?

साइट की परफ़ॉर्मेंस को बेहतर बनाने में दिलचस्पी रखने वाले वेबमास्टर, अपनी मौजूदा इमेज के लिए आसानी से ऑप्टिमाइज़ किए गए WebP के विकल्प बना सकते हैं. साथ ही, उन्हें WebP के साथ काम करने वाले ब्राउज़र को टारगेट करने के हिसाब से दिखा सकते हैं.

  • WebP में नुकसान पहुंचाने वाली सहायता
    • Google Chrome (डेस्कटॉप) 17+
    • Android 25+ के लिए Google Chrome
    • Microsoft Edge 18+
    • Firefox 65+
    • ओपेरा 11.10+
    • नेटिव वेब ब्राउज़र, Android 4.0+ (ICS)
  • WebP काम नहीं करने वाला, हानि रहित, और ऐल्फ़ा सहायता
    • Google Chrome (डेस्कटॉप) 23+
    • Android 25+ के लिए Google Chrome
    • Microsoft Edge 18+
    • Firefox 65+
    • ओपेरा 12.10+
    • स्थानीय वेब ब्राउज़र, Android 4.2+ (JB-MR1)
    • पेल मून 26+
  • WebP ऐनिमेशन सहायता
    • Google Chrome (डेस्कटॉप और Android) 32+
    • Microsoft Edge 18+
    • Firefox 65+
    • ओपेरा 19+

Wikipedia WebP लेख भी देखें.

मैं WebP के लिए ब्राउज़र के साथ काम करने का पता कैसे लगा सकता/सकती हूं?

आप सिर्फ़ उन क्लाइंट को WebP इमेज दिखाना चाहते हैं जो उन्हें सही तरीके से दिखा सकें और जो क्लाइंट के लिए लेगसी फ़ॉर्मैट में न हों. सबसे अच्छी बात यह है कि क्लाइंट-साइड और सर्वर-साइड, दोनों पर WebP सहायता का पता लगाने की कई तकनीकें हैं. कुछ सीडीएन सेवा देने वाली कंपनियां, अपनी सेवा के तौर पर वेबपी सहायता का पता लगाने की सुविधा देती हैं.

स्वीकार हेडर के ज़रिए सर्वर साइड कॉन्टेंट के लिए नेगोशिएशन

वेब क्लाइंट के लिए आम तौर पर अनुरोध का हेडर (&&t) भेजना और यह बताना आसान होता है कि वे रिस्पॉन्स के तौर पर कौनसे कॉन्टेंट फ़ॉर्मैट स्वीकार करना चाहते हैं. अगर ब्राउज़र पहले से ही यह बता देता है कि वह image/webp फ़ॉर्मैट में स्वीकार और कोट करेगा, तो वेब सर्वर को पता चल जाता है कि वह वेब कॉन्टेंट की इमेज को सुरक्षित तरीके से भेज सकता है. ऐसा, कॉन्टेंट के लिए बातचीत करने का तरीका आसान बनाता है. ज़्यादा जानकारी के लिए नीचे दिए गए लिंक देखें.

मॉडर्नाइज़र

modernizr एक JavaScript लाइब्रेरी है, जो वेब ब्राउज़र में HTML5 और CSS3 की सुविधा के बारे में पता लगाने में मदद करती है. modernizr.webp, Modernizr.webp.lossless, modernizr.webp.alpha, और modernizr.webp.animation प्रॉपर्टी को खोजें.

HTML5 <picture> एलिमेंट

HTML5 में <picture> एलिमेंट की सुविधा है. इसकी मदद से आप प्राथमिकता के क्रम में, एक से ज़्यादा वैकल्पिक इमेज टारगेट की सूची बना सकते हैं. ऐसा करने से, क्लाइंट पहली ऐसी इमेज का अनुरोध करेगा जो उसे सही तरीके से दिख सकती है. HTML5 Rocks पर यह चर्चा देखें. <picture> एलिमेंट हर समय ज़्यादा ब्राउज़र पर काम करता है.

आपकी JavaScript में

पहचान करने का एक और तरीका है, एक छोटी सी WebP इमेज को डिकोड करना, जो किसी खास सुविधा का इस्तेमाल करती है और सफलता की जांच करना. उदाहरण:

// check_webp_feature:
//   'feature' can be one of 'lossy', 'lossless', 'alpha' or 'animation'.
//   'callback(feature, result)' will be passed back the detection result (in an asynchronous way!)
function check_webp_feature(feature, callback) {
    var kTestImages = {
        lossy: "UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",
        lossless: "UklGRhoAAABXRUJQVlA4TA0AAAAvAAAAEAcQERGIiP4HAA==",
        alpha: "UklGRkoAAABXRUJQVlA4WAoAAAAQAAAAAAAAAAAAQUxQSAwAAAARBxAR/Q9ERP8DAABWUDggGAAAABQBAJ0BKgEAAQAAAP4AAA3AAP7mtQAAAA==",
        animation: "UklGRlIAAABXRUJQVlA4WAoAAAASAAAAAAAAAAAAQU5JTQYAAAD/////AABBTk1GJgAAAAAAAAAAAAAAAAAAAGQAAABWUDhMDQAAAC8AAAAQBxAREYiI/gcA"
    };
    var img = new Image();
    img.onload = function () {
        var result = (img.width > 0) && (img.height > 0);
        callback(feature, result);
    };
    img.onerror = function () {
        callback(feature, false);
    };
    img.src = "data:image/webp;base64," + kTestImages[feature];
}

ध्यान दें कि इमेज लोड होने की सुविधा ब्लॉक नहीं की जा रही है और एसिंक्रोनस नहीं है. इसका मतलब है कि WebP सपोर्ट पर निर्भर किसी भी कोड को कॉलबैक फ़ंक्शन में रखा जाना चाहिए.

Google ने WebP को ओपन सोर्स के तौर पर क्यों रिलीज़ किया?

हम ओपन सोर्स मॉडल की अहमियत पर पूरा भरोसा करते हैं. ओपन सोर्स में WebP का इस्तेमाल करने पर, कोई भी व्यक्ति इस फ़ॉर्मैट के साथ काम कर सकता है और चीज़ों को बेहतर बनाने के सुझाव दे सकता है. आपके इनपुट और सुझावों के साथ, हमें लगता है कि समय के साथ WebP और ज़्यादा काम का ग्राफ़िक फ़ॉर्मैट बन जाएगा.

मैं अपनी निजी इमेज फ़ाइलों को WebP में कैसे बदलूं?

अपनी निजी इमेज फ़ाइलों को WebP फ़ॉर्मैट में बदलने के लिए, WebP कमांड लाइन यूटिलिटी का इस्तेमाल किया जा सकता है. ज़्यादा जानकारी के लिए, WebP का इस्तेमाल करना देखें.

अगर आपके पास रूपांतरित करने के लिए कई इमेज हैं, तो आप अपने काम को आसान बनाने के लिए अपने प्लैटफ़ॉर्म के शेल का इस्तेमाल कर सकते हैं. उदाहरण के लिए, किसी फ़ोल्डर में सभी jpeg फ़ाइलें बदलने के लिए, ये काम करें:

Windows:

> for /R . %I in (*.jpg) do ( cwebp.exe %I -o %~fnI.webp )

Linux / macOS:

$ for F in *.jpg; do cwebp $F -o `basename ${F%.jpg}`.webp; done

मैं अपने लिए WebP इमेज की क्वालिटी का आकलन कैसे करूं?

फ़िलहाल, आप WebP फ़ाइलों को ऐसे सामान्य फ़ॉर्मैट में बदलकर देख सकते हैं जो कम होने वाली कंप्रेस करने की सुविधा का इस्तेमाल करता है, जैसे कि PNG. इसके बाद, आप किसी भी ब्राउज़र या इमेज व्यूअर में PNG फ़ाइलें देख सकते हैं. WebP की क्वालिटी के बारे में तुरंत जानने के लिए, इस साइट पर गैलरी को तुलना के लिए एक साथ देखें.

मुझे सोर्स कोड कैसे मिलेगा?

कन्वर्टर कोड, WebP ओपन सोर्स प्रोजेक्ट पेज के डाउनलोड सेक्शन में उपलब्ध है. हल्के डीकोडर और VP8 की खास बातों का कोड WebM साइट पर है. कंटेनर की जानकारी के लिए, आरआईएफ़एफ़ कंटेनर पेज देखें.

किसी WebP इमेज का साइज़ ज़्यादा से ज़्यादा कितना हो सकता है?

WebP, VP8 के साथ बिट-स्ट्रीम में काम करता है और चौड़ाई और ऊंचाई के लिए 14 बिट का इस्तेमाल करता है. WebP इमेज का ज़्यादा से ज़्यादा पिक्सल डाइमेंशन 16383 x 16383 है.

WebP फ़ॉर्मैट किन कलर स्पेस के साथ काम करता है?

वीपी कृपया ज़्यादा जानकारी के लिए, सेक्शन 2 और "फ़ॉर्मैट की खास जानकारी" आरएफ़सी 6386 के फ़ॉर्मैट, VP8 डेटा फ़ॉर्मैट और डिकोड करने की गाइड देखें.

लॉसलेस वेबपी खास तौर पर आरजीबीए फ़ॉर्मैट के साथ काम करता है. WebP, Lossless Bitstream की खास बातें देखें.

क्या WebP इमेज अपनी सोर्स इमेज से बड़ी हो सकती है?

हां, आम तौर पर नुकसान पहुंचाने वाले फ़ॉर्मैट से, WebP में नुकसान पहुंचाने वाले फ़ॉर्मैट से बदलते समय या इसका उलटा करने पर. इसकी मुख्य वजह, कलरस्पेस में अंतर (YUC420 बनाम ARGB) और इन कन्वर्ज़न की होती है.

आम तौर पर, तीन तरह की स्थितियां होती हैं:

  1. अगर स्रोत इमेज का साइज़ कम एआरजीबी फ़ॉर्मैट में है, तो YUL420 के स्पेशल डाउनसैंपलिंग का इस्तेमाल करके, नए रंग लॉन्च किए जाएंगे. इन रंगों को ओरिजनल रंग से कम करना ज़्यादा मुश्किल होगा. आम तौर पर, ऐसा तब होता है, जब सोर्स PNG फ़ॉर्मैट में होता है और उसका रंग कुछ कम होता है: नुकसान पहुंचाने वाले WebP में बदलने से (या नुकसान होने वाले JPEG फ़ॉर्मैट में) फ़ाइल का साइज़ ज़्यादा हो सकता है.
  2. अगर सोर्स का फ़ॉर्मैट खराब है, तो नुकसान पहुंचाने के लिए WebP कंप्रेस करने का तरीका इस्तेमाल नहीं किया जाएगा. ऐसा करने से, सोर्स की किसी भी तरह की फ़ाइल बड़ी हो जाएगी. यह खास तौर पर WebP के लिए नहीं है. उदाहरण के लिए, ऐसा तब हो सकता है, जब JPEG सोर्स को नुकसान न पहुंचाने वाले WebP या PNG फ़ॉर्मैट में बदला जाए.
  3. अगर सोर्स का फ़ॉर्मैट खराब है और आप इसे अच्छी क्वालिटी वाली सेटिंग के साथ, नुकसान पहुंचाने वाले वेबपी के तौर पर कंप्रेस करने की कोशिश कर रहे हैं. उदाहरण के लिए, 80 क्वालिटी की सेव की गई JPEG फ़ाइल को 95 क्वालिटी वाली WebP फ़ाइल में बदलने की कोशिश करने से, आम तौर पर बड़ी फ़ाइल मिलती है, भले ही दोनों फ़ॉर्मैट खराब हों. सोर्स की क्वालिटी का आकलन करना नामुमकिन-सा होता है. इसलिए, हमारा सुझाव है कि अगर फ़ाइल का साइज़ लगातार बड़ा हो, तो टारगेट की गई WebP क्वालिटी को कम करें. इसके अलावा, क्वालिटी सेटिंग के इस्तेमाल से बचें. इसके बजाय, cwebp टूल या मिलते-जुलते एपीआई में, -size विकल्प का इस्तेमाल करके, फ़ाइल के साइज़ को टारगेट करें. उदाहरण के लिए, ओरिजनल फ़ाइल के साइज़ का 80% टारगेट करना ज़्यादा असरदार साबित हो सकता है.

ध्यान दें कि JPEG स्रोत को नुकसान पहुंचाने वाले WebP या PNG फ़ॉर्मैट में बदलने में कोई समस्या नहीं है WebP में फ़ाइल के साइज़ के ऐसे बदलाव होने का खतरा नहीं होता.

क्या WebP, प्रगतिशील और इंटरलेस डिसप्ले पर काम करता है?

WebP, JPEG या PNG फ़ॉर्मैट में, आगे बढ़ने वाला और इंटरलेस किया गया डिकोड करने की सुविधा नहीं देता. ऐसा करने से, सीपीयू और डिकोड होने वाले क्लाइंट की मेमोरी पर बहुत ज़्यादा दबाव पड़ सकता है. ऐसा इसलिए, क्योंकि हर रीफ़्रेश इवेंट में डिप्रेशन सिस्टम को पूरी तरह से पास किया जाता है.

औसतन, प्रोग्रेसिव JPEG इमेज को डिकोड करना, तीन बार बेसलाइन को डिकोड करने के बराबर होता है.

इसके अलावा, WebP से इंक्रीमेंटल डिकोडिंग की सुविधा मिलती है. इसमें, बिटस्ट्रीम में मिलने वाले सभी बाइट डेटा का इस्तेमाल करके, जल्द से जल्द दिखाने के लिए एक सैंपल लाइन बनाई जाती है. ये दोनों सुविधाएं, मेमोरी और सीपीयू को सेव करती हैं. साथ ही, डाउनलोड की स्थिति के बारे में विज़ुअल संकेत देती हैं. इंक्रीमेंटल डिकोडिंग सुविधा, बेहतर डिकोडिंग एपीआई के ज़रिए उपलब्ध है.

मैं अपने Android प्रोजेक्ट में libwebp Java बाइंडिंग का इस्तेमाल कैसे करूं?

WebP में, swig/ डायरेक्ट्री में सामान्य एन्कोडर और डिकोडर इंटरफ़ेस के लिए, JNI बाइंडिंग का इस्तेमाल किया जा सकता है.

एक्लिप्स में लाइब्रेरी बनाना:

  1. पक्का करें कि आपने ADT प्लग इन को, NDK टूल के साथ इंस्टॉल किया हो. साथ ही, आपका NDK पाथ सही तरीके से सेट किया गया हो (प्राथमिकताएं > Android > NDK).
  2. नया प्रोजेक्ट बनाएं: File > New > Project > Android Application Project.
  3. नए प्रोजेक्ट में, jni नाम वाले फ़ोल्डर को क्लोन करें या libwebp को अनपैक करें.
  4. LOCAL_SRC_FILES सूची में swig/libwebp_java_wrap.c जोड़ें.
  5. नए प्रोजेक्ट पर दायां क्लिक करें और Android टूल &gt चुनें. अपने बिल्ड में लाइब्रेरी शामिल करने के लिए, नेटिव सपोर्ट जोड़ें ....
  6. प्रोजेक्ट प्रॉपर्टी खोलें और C/C++ Build > व्यवहार पर जाएं. शेयर किए गए लाइब्रेरी के तौर पर libwebp बनाने के लिए, Build (Incremental build) सेक्शन में ENABLE_SHARED=1 जोड़ें.

    ध्यान दें आम तौर पर, NDK_TOOLCHAIN_VERSION=4.8 को सेट करने से, 32-बिट की बिल्ड परफ़ॉर्मेंस में सुधार होगा.

  7. libs/ प्रोजेक्ट फ़ोल्डर में swig/libwebp.jar जोड़ें.

  8. अपना प्रोजेक्ट बनाएं. इससे libs/<target-arch>/libwebp.so बन जाएगा.

  9. रनटाइम पर लाइब्रेरी लोड करने के लिए, System.loadLibrary("webp") का इस्तेमाल करें.

ध्यान दें कि ndk-build और Android.mk के साथ लाइब्रेरी को मैन्युअल तरीके से बनाया जा सकता है. ऐसे में, ऊपर दिए गए तरीकों में से किसी का इस्तेमाल किया जा सकता है.

मैं C# के साथ libwebp का इस्तेमाल कैसे करूं?

WebP को DLL के तौर पर बनाया जा सकता है, जो libwebp API को एक्सपोर्ट करता है. इसके बाद, ये फ़ंक्शन C# में इंपोर्ट किए जा सकते हैं.

  1. libwebp.dll बनाएं. इससे, WEBP_EXTERN सही तरीके से एपीआई फ़ंक्शन को एक्सपोर्ट कर पाएगा.

    libwebp> nmake /f Makefile.vc CFG=release-dynamic
    
  2. अपने प्रोजेक्ट में libwebp.dll जोड़ें और मनचाहे फ़ंक्शन इंपोर्ट करें. ध्यान दें कि अगर आप आसान एपीआई का इस्तेमाल करते हैं, तो लौटाए गए बफ़र के लिए WebPFree() को कॉल करें.

    [DllImport("libwebp.dll", CallingConvention = CallingConvention.Cdecl)]
    static extern int WebPEncodeBGRA(IntPtr rgba, int width, int height, int stride,
                                     float quality_factor, out IntPtr output);
    [DllImport("libwebp.dll", CallingConvention = CallingConvention.Cdecl)]
    static extern int WebPFree(IntPtr p);
    
    void Encode() {
      Bitmap source = new Bitmap("input.png");
      BitmapData data = source.LockBits(
          new Rectangle(0, 0, source.Width, source.Height),
          ImageLockMode.ReadOnly,
          PixelFormat.Format32bppArgb);
      IntPtr webp_data;
      const int size = WebPEncodeBGRA(data.Scan0,
                                      source.Width, source.Height, data.Stride,
                                      80, out webp_data);
      // ...
      WebPFree(webp_data);
    }
    

मुझे ऐनिमेशन वाले WebP का इस्तेमाल क्यों करना चाहिए?

ऐनिमेटेड GIF की तुलना में ऐनिमेट किए गए WebP के फ़ायदे

  1. WebP, 8-बिट ऐल्फ़ा चैनल वाले 24-बिट आरजीबी रंग के साथ काम करता है. यह GIF और #8-बिट रंग की तुलना में 1-बिट अल्फ़ा के साथ काम करता है.

  2. WebP, हानि वाले और हानि रहित, दोनों संपीड़नों का समर्थन करता है; वास्तव में, एक ऐनिमेशन में हानि वाले और हानि रहित फ़्रेम मिल सकते हैं. GIF सिर्फ़ लॉसलेस कंप्रेस करने की सुविधा के साथ काम करता है. WebP&#39s की, नुकसान पहुंचाने वाली कंप्रेस करने की तकनीकें, रीयल-टाइम वीडियो से बनाई गई ऐनिमेटेड इमेज के लिए सही होती हैं. ये ऐनिमेटेड इमेज का लगातार लोकप्रिय होता जा रहा है.

  3. WebP को GIF1 से कम बाइट की ज़रूरत होती है. नुकसान पहुंचाने वाले WebP में बदलने वाले ऐनिमेट किए गए GIF 64% छोटे होते हैं, जबकि खराब होने वाले WebP 19% छोटे होते हैं. यह खास तौर पर मोबाइल नेटवर्क के लिए ज़रूरी है.

  4. WebP, मांग के दौरान डिकोड करने में कम समय लेता है. लिंक करने पर, टैब को स्क्रोल करने या बदलने से इमेज छिप सकती हैं और दिखाई दे सकती हैं. इस वजह से ऐनिमेशन रुक सकते हैं और किसी दूसरे पॉइंट पर आगे बढ़ सकते हैं. अगर ऐनिमेशन में बहुत ज़्यादा इस्तेमाल हो रहा है, जिसकी वजह से ऐनिमेशन ऐनिमेशन के फ़्रेम में कमी आती है, तो ऐनिमेशन को डिकोड करने के लिए ऐनिमेशन की ज़रूरत पड़ सकती है. इन स्थितियों में, ऐनिमेट किए गए WebP को GIF के तौर पर 0.57 गुना ज़्यादा समय लगता है2. इससे, स्क्रोल करने के दौरान कम समय लगता है और सीपीयू के इस्तेमाल में तेज़ी से रिकवरी होती है. ऐसा GIF पर WebP के दो फ़ायदों की वजह से होता है:

    • WebP इमेज में मेटाडेटा सेव किया जाता है या नहीं, यह तय करने के लिए हर फ़्रेम में ऐल्फ़ा शामिल होता है. इससे फ़्रेम को डिकोड करने की ज़रूरत नहीं पड़ती. इससे तय होता है कि किसी फ़्रेम का पिछला फ़्रेम किस पर निर्भर करता है. इससे, पिछले फ़्रेम के गैर-ज़रूरी डीकोडिंग को कम करने में मदद मिलती है.

    • किसी आधुनिक वीडियो एन्कोडर की तरह, WebP एन्कोडर अक्सर सामान्य अंतरालों में की-फ़्रेम जोड़ते हैं (ज़्यादातर GIF एन्कोडर ऐसा नहीं करते). इससे बड़े ऐनिमेशन को खोजने के अनुभव को बेहतर बनाया जाता है. इमेज के साइज़ को बहुत ज़्यादा बढ़ा दिए बिना, ऐसे फ़्रेम डालने में मदद करने के लिए, WebP फ़्रेम रेंडर करने के तरीके का इस्तेमाल करता है. साथ ही, हर फ़्रेम के लिए'ब्लेंडिंग का तरीका' फ़्लैग जोड़ता है. इससे कीफ़्रेम इस तरह से काम करता है जैसे कि पूरी इमेज को बैकग्राउंड के रंग में साफ़ कर दिया गया हो. इसके लिए, उससे पिछले फ़्रेम को फ़ुल साइज़ के हिसाब से नहीं बदला जाना चाहिए.

ऐनिमेशन वाले GIF की तुलना में, ऐनिमेशन वाले WebP के नुकसान

  1. इंटरनेट पर डेटा नहीं ढूंढने पर, WebP की सीधी लाइन को डीकोड करने के काम का तरीका, GIF की तुलना में सीपीयू का ज़्यादा इस्तेमाल करता है. लोसी WebP को GIF के मुकाबले 2.2 गुना ज़्यादा डिकोड होता है. वहीं, लॉग को नुकसान पहुंचाने वाले WebP के मुकाबले 1.5 गुना ज़्यादा समय लगता है.

  2. WebP से जुड़ी सहायता उतना ज़्यादा उपलब्ध नहीं है जितनी GIF की सुविधा है. यह आम तौर पर काम करती है.

  3. ब्राउज़र में WebP सहायता जोड़ने से, कोड फ़ुटप्रिंट और हमलावर प्लैटफ़ॉर्म की संख्या बढ़ जाती है. Blink में, कोड की करीब 1,500 अतिरिक्त लाइनें हैं. इनमें WebP Demux लाइब्रेरी और ब्लिंक-साइड WebP इमेज डिकोडर शामिल हैं. ध्यान दें कि अगर WebP और WebM कोड ज़्यादा सामान्य डिकोडिंग कोड के साथ शेयर किए जाते हैं या अगर WebP! की क्षमताएं WebM's में शामिल होती हैं, तो आने वाले समय में यह समस्या कम हो सकती है.

<img> में सिर्फ़ WebM का इस्तेमाल क्यों नहीं किया जा सकता?

लंबे समय तक <img> टैग में वीडियो फ़ॉर्मैट करना सही रहेगा. हालांकि, अब <img> में WebM, WebP की सुझाई गई भूमिका को पूरा करने के इरादे से समस्या पैदा कर सकता है:

  1. पिछले फ़्रेम पर निर्भर फ़्रेम को डिकोड करते समय, WebM की मदद के लिए पिछले फ़्रेम की कम से कम संख्या को बनाए रखने के लिए, ऐनिमेट किए गए WebP के मुकाबले 50% ज़्यादा मेमोरी की ज़रूरत होती है3.

  2. वीडियो कोडेक और कंटेनर सहायता अलग-अलग ब्राउज़र और डिवाइस पर अलग-अलग होती हैं. कॉन्टेंट को अपने-आप ट्रांसकोड (उदाहरण के लिए, बैंडविड्थ बचाने वाले प्रॉक्सी) को आसान बनाने के लिए, ब्राउज़र को 'स्वीकार करें' हेडर जोड़ने होंगे, ताकि यह पता चल सके कि उनके इमेज टैग किन फ़ॉर्मैट पर काम करते हैं. ऐसा करना कम भी हो सकता है, क्योंकि MIME टाइप (जैसे, "video/webm" या quot;video/mpeg" अब भी न करें) को कोडेक से जुड़ी सहायता न दें (उदाहरण के लिए, VP8 बनाम VP9). दूसरी ओर, WebP फ़ॉर्मैट ठीक से काम नहीं करता है और अगर भेजने वाले वेंडर, ऐनिमेशन वाले WebP को शिप करने की सहमति देते हैं, तो सभी UA में WebP का व्यवहार एक जैसा होना चाहिए. जैसे, "image/webp" स्वीकार करने वाले हेडर का इस्तेमाल, पहले से ही WebP सहायता के लिए किया जा रहा है. किसी नए हेडर को स्वीकार करने की ज़रूरत नहीं है.

  3. Chromium के वीडियो स्टैक को आसानी से चलाने के लिए ऑप्टिमाइज़ किया जाता है. यह मानकर चलता है कि एक बार में, एक या दो वीडियो ही चल रहे हैं. इस वजह से, वीडियो चलाने की क्वालिटी बढ़ाने के लिए, सिस्टम के संसाधन (थ्रेड, मेमोरी वगैरह) का बेहतर इस्तेमाल किया जाता है. ऐसा करने से, एक साथ कई वीडियो पर अच्छी तरह से असर नहीं पड़ता है. साथ ही, इमेज को बहुत ज़्यादा लोड करने वाले वेबपेजों के लिए, इसे फिर से डिज़ाइन करना होगा.

  4. फ़िलहाल, WebM फ़ाइल में WebP से कंप्रेस करने की सभी तकनीकें शामिल नहीं हैं. नतीजे के तौर पर, यह इमेज विकल्प के बजाय WebP से बेहतर तरीके से कंप्रेस होती है:


1 ऐनिमेट किए गए GIF और ऐनिमेट किए गए WebP के बीच तुलना करने के लिए, हमने वेब से ली गई 7000 GIF वाली इमेज का इस्तेमाल किया. इन इमेज को डिफ़ॉल्ट सेटिंग का इस्तेमाल करके ऐनिमेशन वाले WebP में बदला गया (&30;gif2webp' टूल डिफ़ॉल्ट सेटिंग का इस्तेमाल करके बनाया गया था (libwebp सोर्स ट्री 10/08/2013 से). इन संख्याओं के बीच तुलनात्मक संख्याएं हैं.

2 डिकोड करने के समय का हिसाब, मानक टूल का इस्तेमाल करके, 01/00/2013 तक के हिसाब से सबसे नए libwebp + ToTBlink का इस्तेमाल करके किया गया था. &कोट और

3 WebM स्टोरेज के साथ चार फ़्रेम वाले यूयूवी रेफ़रंस फ़्रेम बनाए रखता है हर फ़्रेम (चौड़ाई+96)*(ऊंचाई+96) पिक्सल. YUC4:2:0 के लिए, हमें हर 6 पिक्सल पर 4 बाइट (या हर पिक्सल के लिए 3/2 बाइट) की ज़रूरत होती है. इसलिए, ये रेफ़रंस फ़्रेम 4*3/2*(width+96)*(height+96) बाइट मेमोरी इस्तेमाल करते हैं. वहीं दूसरी ओर, WebP को सिर्फ़ पिछले फ़्रेम (आरजीए में) की ज़रूरत होती है, जो मेमोरी का 4*width*height बाइट होता है.

4 ऐनिमेट किए गए WebP रेंडरिंग के लिए, Google Chrome वर्शन 32+ की ज़रूरत होती है