कंटेंट पर जाएँ
charmotion

WhatsApp एनिमेटेड स्टिकर: स्पेसिफ़िकेशन और कन्वर्ज़न

Charmotion टीम द्वारा · अपडेट:

स्टिकर और इमोजी गाइड का कवर इलस्ट्रेशन: WhatsApp एनिमेटेड स्टिकर: स्पेसिफ़िकेशन और कन्वर्ज़न, Charmotion के डेमो कैरेक्टर के साथ

WhatsApp एनिमेटेड स्टिकर ठीक 512×512 पिक्सेल और 500 KB या उससे कम की WebP फ़ाइलें होने चाहिए। हर फ़्रेम कम से कम 8 ms का हो और एनिमेशन ज़्यादा से ज़्यादा 10 सेकंड का। एक पैक में 3 से 30 स्टिकर होते हैं, स्टैटिक और एनिमेटेड कभी मिक्स नहीं होते, और 50 KB या कम का 96×96 स्टैटिक ट्रे आइकन चाहिए।

मुख्य बातें

  • एनिमेटेड स्टिकर: एनिमेटेड WebP, ठीक 512×512 px, 500 KB या कम, हर फ़्रेम कम से कम 8 ms, कुल 10 सेकंड या कम।
  • स्टैटिक स्टिकर की सीमा कम है: 100 KB।
  • एक पैक में 3 से 30 स्टिकर चाहिए और उसमें स्टैटिक और एनिमेटेड स्टिकर मिक्स नहीं हो सकते।
  • ट्रे आइकन 96×96 की स्टैटिक इमेज है, अधिकतम 50 KB।
  • WhatsApp एनिमेशन को पहले फ़्रेम पर खत्म करता है, इसलिए पहला फ़्रेम अपने आप में साफ़ समझ आना चाहिए।

पहले से कोई कैरेक्टर या लोगो है? अपने कैरेक्टर को असली ऐप स्क्रीन में देखें: स्प्लैश, ऑनबोर्डिंग, लोडिंग और एम्प्टी स्टेट स्क्रीन। यह फ़्री है, आपके ब्राउज़र में चलता है और कुछ भी अपलोड नहीं होता।

WhatsApp एनिमेटेड स्टिकर के लिए कौन सा साइज़ और फ़ाइल सीमा ज़रूरी है?

ये ज़रूरतें GitHub पर WhatsApp के आधिकारिक sticker सैंपल ऐप्स की README में दी गई हैं। एनिमेटेड पैक के लिए:

एनिमेटेड कैरेक्टर स्टिकर वाली एक टीम चैट, साथ में आठ ट्रांसपेरेंट कैरेक्टर स्टिकर की एक ट्रे
एक ही कैरेक्टर के लूप और वन-शॉट रिएक्शन, चैट स्टिकर के रूप में।
आइटमज़रूरत
फ़ॉर्मेटAnimated WebP
डाइमेंशनठीक 512×512 px
फ़ाइल साइज़हर एनिमेटेड स्टिकर के लिए 500 KB या कम (हर स्टैटिक स्टिकर के लिए 100 KB या कम)
फ़्रेम अवधिहर फ़्रेम कम से कम 8 ms
कुल अवधि10 सेकंड या कम
Frame rateतय नहीं (सिर्फ़ 8 ms की न्यूनतम फ़्रेम अवधि)
प्रति पैक स्टिकर3 से 30
मिक्सिंगस्टैटिक या एनिमेटेड, दोनों कभी नहीं
ट्रे आइकनस्टैटिक, 96×96 px, अधिकतम 50 KB

README के उद्धरण सीधे हैं: "Stickers must be exactly 512 x 512 pixels" और "Each animated sticker must be less than or equal to 500KB." 8 ms का नियम असल में frame rate को 125 fps तक सीमित करता है, जो किसी भी स्टिकर की ज़रूरत से बहुत ज़्यादा है; कैरेक्टर के लिए 15 fps (लगभग 67 ms प्रति फ़्रेम) काफ़ी है।

README उन डेवलपर्स के लिए लिखी गई है जो WhatsApp के ओपन-सोर्स सैंपल से sticker ऐप बना रहे हैं, जो कस्टम पैक डिस्ट्रिब्यूट करने का आधिकारिक तरीका है, और पैक जोड़ते समय सैंपल इन नियमों की जाँच करता है।

WhatsApp क्यों कहता है कि मेरा स्टिकर बहुत बड़ा है?

या तो फ़ाइल 500 KB से बड़ी है या ठीक 512×512 नहीं है। दोनों सख्त सीमाएँ हैं। साइज़ घटाने के इन स्टेप्स को क्रम से आज़माएँ और हर स्टेप के बाद दोबारा जाँचें:

  1. frame rate घटाएँ। 15 fps से 12 fps पर लाएँ।
  2. क्वालिटी घटाएँ। -quality को 60 से 50, फिर 45 करें।
  3. क्लिप छोटी करें। दस सेकंड अधिकतम सीमा है, लक्ष्य नहीं। रिएक्शन के लिए आमतौर पर दो से चार सेकंड काफ़ी होते हैं।
  4. डिटेल्स को बड़ा करने की बजाय पैडिंग दें। जो कैरेक्टर पूरे 512×512 फ़्रेम को भरता है, उसमें एनकोड करने के लिए ज़्यादा डिटेल वाले पिक्सेल होते हैं; थोड़ी ट्रांसपेरेंट पैडिंग का खर्च लगभग शून्य है।

डाइमेंशन भी जाँचें। असामान्य aspect ratio की वजह से 512×510 बनी फ़ाइल उतनी ही निश्चित रूप से फ़ेल होती है जितनी बहुत बड़ी फ़ाइल, इसीलिए नीचे दिया command ठीक 512×512 तक पैड करता है।

यह भी पक्का करें कि पैक एक जैसा है: एनिमेटेड पैक में एक भी स्टैटिक स्टिकर, या तीन से कम स्टिकर होने पर पैक नहीं जुड़ेगा, भले ही हर फ़ाइल साइज़ सीमा के भीतर हो।

ट्रांसपेरेंट वीडियो को एनिमेटेड WebP में कैसे बदलें?

ffmpeg का libwebp_anim एनकोडर अल्फ़ा के साथ एनिमेटेड WebP बनाता है। यह command ffmpeg 7.1.1 पर 1080×1080 ट्रांसपेरेंट WebM के साथ चलाया गया; आउटपुट अल्फ़ा और अनंत लूप वाला 512×512 एनिमेटेड WebP था, जिसकी पुष्टि webpinfo से हुई:

ffmpeg -c:v libvpx-vp9 -i character.webm -vf "fps=15,scale=512:512:force_original_aspect_ratio=decrease,pad=512:512:-1:-1:color=0x00000000" -c:v libwebp_anim -lossless 0 -quality 60 -loop 0 -an sticker.webp
  • -c:v libvpx-vp9 को -i से पहले रखने पर ffmpeg WebM का अल्फ़ा चैनल पढ़ता है; डिफ़ॉल्ट डिकोडर इसे हटा देता है।
  • pad=512:512:-1:-1:color=0x00000000 फ़्रेम को पूरी तरह ट्रांसपेरेंट 512×512 कैनवस के बीच में रखता है।
  • -lossless 0 -quality 60 lossy मोड इस्तेमाल करता है। FFmpeg के डॉक्यूमेंटेशन में लिखा है "Alpha is supported for either mode"; quality की रेंज 0 से 100 है (डिफ़ॉल्ट 75)।
  • -loop 0 हमेशा लूप करता है। libwebp_anim का डिफ़ॉल्ट 1 है, इसलिए इसे छोड़ देने पर स्टिकर सिर्फ़ एक बार चलेगा।

अगर आप libwebp के अपने टूल्स पसंद करते हैं, तो img2webp PNG सीक्वेंस से एनिमेटेड WebP बनाता है। इसका डिफ़ॉल्ट अनंत लूप और lossless मोड है; -lossy -q 60 जोड़ें और -d से हर फ़्रेम की अवधि मिलीसेकंड में सेट करें।

GIF से बदलते समय शुरुआत का -c:v libvpx-vp9 हटा दें। नतीजे में GIF के सख्त, one-bit किनारे बने रहेंगे।

मेरा स्टिकर पहले फ़्रेम पर क्यों रुक जाता है?

WhatsApp एनिमेटेड स्टिकर इसी तरह चलाता है। README कहती है: "the first frame should say it all - WhatsApp ends the animation on the first frame after looping." प्लेबैक रुकने पर लोगों को पहला फ़्रेम दिखता है।

इसलिए पहला फ़्रेम एक पूरा और साफ़ समझ आने वाला पोज़ होना चाहिए। आम गलतियाँ:

  • ऐसा लूप जो पलक झपकने के बीच से शुरू होता है, जिससे रुके हुए स्टिकर की आँखें बंद दिखती हैं।
  • ऐसा एंट्रेंस एनिमेशन जो खाली या अधूरे बने फ़्रेम से शुरू होता है।
  • ऐसा रिएक्शन जो की पोज़ की बजाय anticipation (नीचे दबे पोज़) से शुरू होता है।

इसे ठीक करने के लिए क्लिप को न्यूट्रल पोज़ से, या रिएक्शन के सबसे भावपूर्ण फ़्रेम से शुरू करें। ffmpeg में इनपुट से पहले -ss शुरुआती समय चुनता है। सीमलेस लूप के लिए आखिरी फ़्रेम वापस उसी पहले पोज़ में मिल जाना चाहिए।

एक कैरेक्टर की दस लूपिंग स्टेट, हर एक 0 से 9 तक के मूड नंबर से चुनी जाती है
एक Charmotion Rive file की दस लूपिंग स्टेट, जिन्हें मूड नंबर इनपुट से चुना जाता है।

एक पैक में कितने स्टिकर चाहिए, और क्या मैं स्टैटिक और एनिमेटेड मिक्स कर सकता हूँ?

एक पैक में कम से कम 3 और ज़्यादा से ज़्यादा 30 स्टिकर चाहिए, और "Sticker packs must contain either static or animated stickers, never a mix of both." अगर आप अपने कैरेक्टर का स्थिर वर्ज़न चाहते हैं, तो 100 KB या कम की 512×512 WebP फ़ाइलों से अलग स्टैटिक पैक बनाएँ।

मैस्कॉट के लिए एक व्यावहारिक एनिमेटेड पैक में 8 से 15 स्टिकर होते हैं, जिनमें हर एक चैट के किसी आम पल का जवाब देता है: हैलो, धन्यवाद, हाँ, नहीं, हँसना, सोचना, जश्न, नींद, सॉरी। हर एक को अलग सिल्हूट दें, ताकि sticker ट्रे में, जहाँ वे छोटे दिखते हैं, उन्हें आसानी से पहचाना जा सके।

पूरे पैक को एक जैसा रखें: 512 px फ़्रेम के भीतर कैरेक्टर का एक ही स्केल, एक ही पैडिंग, एक ही frame rate। picker में स्टिकर साथ-साथ दिखने पर यूज़र्स सबसे पहले बेमेल स्केल पर ध्यान देते हैं।

ट्रे आइकन क्या है और इसका साइज़ क्या है?

ट्रे आइकन वह छोटी इमेज है जो WhatsApp के sticker picker में आपके पैक को दर्शाती है। README कहती है "This image should be static and 96 x 96 pixels," और अधिकतम फ़ाइल साइज़ 50 KB है। सैंपल ऐप्स में यह PNG है।

अपने सबसे अच्छे स्टिकर का एक फ़्रेम लें, आमतौर पर न्यूट्रल पोज़ में कैरेक्टर का चेहरा या पूरा शरीर, और उसे ट्रांसपेरेंसी के साथ 96×96 पर स्केल करें:

ffmpeg -c:v libvpx-vp9 -i character.webm -frames:v 1 -vf "scale=96:96" tray.png

इसे सरल रखें: 96 px पर डिटेल से ज़्यादा साफ़ आउटलाइन मायने रखती है। बाद में ls -l tray.png से फ़ाइल साइज़ जाँचें; एक कैरेक्टर का 96×96 PNG आमतौर पर 50 KB सीमा से बहुत कम होता है, लेकिन noisy या टेक्सचर वाला फ़्रेम आपको चौंका सकता है।

एनिमेटेड पैक में भी आइकन स्टैटिक होना चाहिए। वही फ़्रेम इस्तेमाल करें जो आपने मुख्य स्टिकर के पहले फ़्रेम के रूप में चुना था, ताकि ट्रे आइकन और रुका हुआ स्टिकर मेल खाएँ।

Charmotion कैरेक्टर एनिमेशन से शुरुआत कैसे करें?

Charmotion अपलोड किए गए कैरेक्टर, मैस्कॉट या लोगो से कुछ ही मिनटों में .riv फ़ाइल के रूप में 17 एनिमेशन बनाता है। 1080×1080 पर ट्रांसपेरेंट WebM (VP9 alpha) और MOV (HEVC alpha), MP4 और 480 px GIF ज़रूरत पर एक्सपोर्ट होते हैं, लगभग एक मिनट में। यह WhatsApp पैक नहीं बनाता; हर ट्रांसपेरेंट WebM (पेड प्लान, $20/माह से) को ऊपर के कमांड से कन्वर्ट करें। इसके लूपिंग मूड और वन-शॉट रिएक्शन एक ही सेट से 3 स्टिकर की न्यूनतम सीमा से ज़्यादा देते हैं।

कन्वर्ट करने से पहले हर क्लिप का पहला फ़्रेम जाँचें, क्योंकि WhatsApp स्क्रीन पर वही छोड़ता है। अगर कोई क्लिप मोशन के बीच से शुरू होती है, तो -ss से शुरुआत को न्यूट्रल पोज़ पर ले जाएँ। 1080×1080 सोर्स 512×512 पर साफ़ स्केल होता है, और क्लिप इतनी छोटी हैं कि WhatsApp की 10 सेकंड की सीमा के भीतर आराम से रहती हैं।

ट्रांसपेरेंट वीडियो से WhatsApp एनिमेटेड स्टिकर पैक कैसे बनाएँ

  1. 3 से 30 क्लिप चुनें. अलग-अलग रिएक्शन चुनें; हर एक को कुछ सेकंड का रखें और 10 से ज़्यादा नहीं।
  2. पहला फ़्रेम सेट करें. हर क्लिप को एक पूरे और साफ़ समझ आने वाले पोज़ से शुरू करें, क्योंकि WhatsApp एनिमेशन को पहले फ़्रेम पर ही खत्म करता है।
  3. एनिमेटेड WebP में कन्वर्ट करें. ffmpeg चलाएँ, जिसमें -i से पहले -c:v libvpx-vp9 हो, 512×512 पर scale और pad करें, फिर -c:v libwebp_anim -lossless 0 -quality 60 -loop 0 लगाएँ।
  4. साइज़ जाँचें. पक्का करें कि हर फ़ाइल 500 KB या उससे कम हो; अगर नहीं है, तो fps या क्वालिटी कम करें।
  5. ट्रे आइकन बनाएँ. 50 KB या उससे कम की एक स्टैटिक 96×96 PNG एक्सपोर्ट करें।
  6. पैक तैयार करें. WhatsApp के ऑफ़िशियल सैंपल पर आधारित किसी स्टिकर ऐप में फ़ाइलें जोड़ें और किसी डिवाइस पर पैक जोड़कर टेस्ट करें।

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

क्या मैं WhatsApp एनिमेटेड स्टिकर के लिए GIF इस्तेमाल कर सकता हूँ?

सीधे नहीं। WhatsApp के स्टिकर पैक WebP फ़ाइलें इस्तेमाल करते हैं, इसलिए GIF को ठीक 512×512 और 500 KB या उससे कम के एनिमेटेड WebP में कन्वर्ट करें। किनारे खुरदुरे दिख सकते हैं, क्योंकि GIF में ट्रांसपेरेंसी हर पिक्सेल के लिए या तो पूरी होती है या बिल्कुल नहीं। ट्रांसपेरेंट WebM या अल्फ़ा चैनल वाला कोई दूसरा वीडियो सोर्स ज़्यादा स्मूद आउटलाइन देता है।

WhatsApp स्टिकर का frame rate कितना होना चाहिए?

WhatsApp की README में frame rate की कोई सीमा नहीं है, सिर्फ़ हर फ़्रेम की न्यूनतम अवधि 8 ms तय है। व्यवहार में 12-15 fps पर कैरेक्टर की मूवमेंट स्मूद रहती है और 500 KB की सीमा में जगह भी बची रहती है। ज़्यादा frame rate से ज़्यादातर सिर्फ़ फ़ाइल साइज़ बढ़ता है, छोटा स्टिकर इससे खास बेहतर नहीं दिखता।

मेरा एनिमेटेड स्टिकर लूप क्यों नहीं हो रहा?

शायद WebP को लूप काउंट 1 के साथ लिखा गया है। ffmpeg का libwebp_anim एनकोडर डिफ़ॉल्ट रूप से -loop 1 इस्तेमाल करता है, जिससे एनिमेशन सिर्फ़ एक बार चलता है। अनंत लूप के लिए -loop 0 के साथ दोबारा एनकोड करें। ध्यान रखें कि प्लेबैक रुकने पर WhatsApp फिर भी पहले फ़्रेम पर ही खत्म करता है।

क्या स्टैटिक स्टिकर के लिए भी 500 KB की ही सीमा है?

नहीं। स्टैटिक स्टिकर की सीमा ज़्यादा सख्त है, हर स्टिकर के लिए 100 KB, जबकि एनिमेटेड स्टिकर 500 KB तक हो सकते हैं। दोनों का साइज़ ठीक 512×512 पिक्सेल होना चाहिए, और एक पैक में इन दोनों में से सिर्फ़ एक ही तरह के स्टिकर हो सकते हैं, स्टैटिक और एनिमेटेड स्टिकर कभी एक साथ नहीं।

इस गाइड से झटपट जवाब

स्रोत

संबंधित गाइड