Ir al contenido
charmotion

Stickers animados de WhatsApp: especificaciones y conversión

Por el equipo de Charmotion · Actualizado el

Ilustración de portada de la guía de stickers y emoji: Stickers animados de WhatsApp: especificaciones y conversión, con personajes de demostración de Charmotion

Los stickers animados de WhatsApp deben ser archivos WebP de exactamente 512×512 píxeles y 500 KB o menos. Cada fotograma debe durar al menos 8 ms y la animación, 10 segundos como máximo. Un paquete contiene de 3 a 30 stickers, nunca mezcla estáticos y animados, y necesita un ícono de bandeja estático de 96×96 y 50 KB o menos.

Puntos clave

  • Stickers animados: WebP animado, exactamente 512×512 px, 500 KB o menos, fotogramas de al menos 8 ms, 10 segundos o menos.
  • Los stickers estáticos tienen un límite menor, de 100 KB.
  • Un paquete necesita de 3 a 30 stickers y no puede mezclar estáticos y animados.
  • El ícono de bandeja es una imagen estática de 96×96 de 50 KB como máximo.
  • WhatsApp termina la animación en el primer fotograma, así que ese fotograma debe entenderse por sí solo.

¿Ya tienes un personaje o logo? Mira tu personaje en pantallas reales de una app: pantallas de splash, onboarding, carga y estado vacío. Es gratis, funciona en tu navegador y no sube nada.

¿Qué tamaño y límite de archivo exige WhatsApp para los stickers animados?

Los requisitos están en el README de las apps de ejemplo oficiales de stickers de WhatsApp en GitHub. Para paquetes animados:

Un chat de equipo con stickers animados de un personaje, junto a una bandeja de ocho stickers de personaje con fondo transparente
Loops y reacciones puntuales de un mismo personaje, usados como stickers de chat.
ElementoRequisito
FormatoWebP animado
DimensionesExactamente 512×512 px
Peso del archivo500 KB o menos por sticker animado (100 KB o menos por sticker estático)
Duración del fotogramaAl menos 8 ms por fotograma
Duración total10 segundos o menos
Cuadros por segundoNo especificado (solo la duración mínima de 8 ms por fotograma)
Stickers por paqueteDe 3 a 30
MezclaEstáticos o animados, nunca ambos
Ícono de bandejaEstático, 96×96 px, 50 KB como máximo

Las citas del README son directas: "Los stickers deben medir exactamente 512 x 512 píxeles" y "Cada sticker animado debe pesar 500 KB o menos". La regla de 8 ms limita en la práctica la frecuencia a 125 fps, muy por encima de lo que necesita un sticker; 15 fps (unos 67 ms por fotograma) es más que suficiente para un personaje.

El README está escrito para desarrolladores que crean una app de stickers a partir del ejemplo de código abierto de WhatsApp, que es la forma oficial de distribuir un paquete personalizado, y el ejemplo verifica estas reglas al agregar el paquete.

¿Por qué WhatsApp dice que mi sticker es demasiado grande?

O el archivo pesa más de 500 KB o no mide exactamente 512×512. Ambos son límites estrictos. Sigue esta escala de reducción y vuelve a comprobar después de cada paso:

  1. Baja la frecuencia de cuadros. Pasa de 15 fps a 12 fps.
  2. Baja la calidad. Reduce -quality de 60 a 50 y luego a 45.
  3. Acorta el clip. Diez segundos es el máximo, no un objetivo. Para una reacción, lo habitual son de dos a cuatro segundos.
  4. Agrega margen en lugar de ampliar los detalles. Un personaje que ocupa todo el cuadro de 512×512 tiene más píxeles con detalle que codificar; un poco de margen transparente casi no cuesta nada.

Revisa también las dimensiones. Un archivo de 512×510 por una relación de aspecto impar falla igual que uno demasiado pesado; por eso el comando de abajo agrega margen hasta llegar exactamente a 512×512.

Confirma además que el paquete sea coherente: un solo sticker estático en un paquete animado, o menos de tres stickers, impedirá agregarlo aunque todos los archivos cumplan con el peso.

¿Cómo convierto un video con fondo transparente a WebP animado?

El codificador libwebp_anim de ffmpeg genera WebP animado con alfa. Este comando se ejecutó en ffmpeg 7.1.1 sobre un WebM transparente de 1080×1080; el resultado fue un WebP animado de 512×512 con alfa y loop infinito, confirmado con 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 antes de -i hace que ffmpeg lea el canal alfa del WebM; el decodificador predeterminado lo descarta.
  • pad=512:512:-1:-1:color=0x00000000 centra el fotograma en un lienzo de 512×512 totalmente transparente.
  • -lossless 0 -quality 60 usa el modo con pérdida. La documentación de FFmpeg indica que "el alfa es compatible con ambos modos"; la calidad va de 0 a 100 (75 por defecto).
  • -loop 0 repite el loop indefinidamente. El valor predeterminado de libwebp_anim es 1, así que si lo omites, el sticker se reproduce una sola vez.

Si prefieres las herramientas propias de libwebp, img2webp crea un WebP animado a partir de una secuencia PNG. Por defecto usa loop infinito y modo sin pérdida; agrega -lossy -q 60 y define la duración de cada fotograma en milisegundos con -d.

Si partes de un GIF, quita el -c:v libvpx-vp9 inicial. El resultado conservará los bordes duros de un bit del GIF.

¿Por qué mi sticker se detiene en el primer fotograma?

Así es como WhatsApp reproduce los stickers animados. El README dice: "el primer fotograma debería decirlo todo: WhatsApp termina la animación en el primer fotograma después del loop". Cuando la reproducción se detiene, la gente ve el primer fotograma.

Por eso el primer fotograma debe ser una pose completa y fácil de entender. Errores comunes:

  • Un loop que empieza a mitad de un parpadeo, de modo que el sticker en reposo queda con los ojos cerrados.
  • Una animación de entrada que empieza en un fotograma vacío o dibujado a medias.
  • Una reacción que empieza en la anticipación (aplastada hacia abajo) en lugar de en la pose clave.

Para corregirlo, empieza el clip en la pose neutral o en el fotograma más expresivo de la reacción. Con ffmpeg, -ss antes de la entrada define el tiempo de inicio. Para un loop sin cortes, el último fotograma debe enlazar con esa primera pose.

Diez estados en loop de un mismo personaje, cada uno seleccionado con un número de mood del 0 al 9
Los diez estados en loop de un archivo Rive de Charmotion, seleccionados con el input numérico mood.

¿Cuántos stickers necesita un paquete y puedo mezclar estáticos y animados?

Un paquete necesita al menos 3 y como máximo 30 stickers, y "los paquetes de stickers deben contener stickers estáticos o animados, nunca una mezcla de ambos". Si quieres una versión fija de tu personaje, crea un paquete estático aparte con archivos WebP de 512×512 y 100 KB o menos.

Un paquete animado práctico para una mascota de marca usa de 8 a 15 stickers que respondan cada uno a un momento habitual del chat: hola, gracias, sí, no, risa, pensando, celebrando, con sueño, perdón. Dale a cada uno una silueta distinta para que sea fácil diferenciarlos en la bandeja de stickers, donde se ven pequeños.

Mantén todo el paquete coherente: la misma escala del personaje dentro del cuadro de 512 px, el mismo margen y la misma frecuencia de cuadros. La escala dispareja es lo primero que notan los usuarios cuando los stickers aparecen uno junto a otro en el selector.

¿Qué es el ícono de bandeja y qué tamaño tiene?

El ícono de bandeja es la imagen pequeña que representa tu paquete en el selector de stickers de WhatsApp. El README dice "Esta imagen debe ser estática y de 96 x 96 píxeles", con un peso máximo de 50 KB. En las apps de ejemplo es un PNG.

Usa un fotograma de tu mejor sticker, normalmente la cara o el cuerpo completo del personaje en su pose neutral, escalado a 96×96 con transparencia:

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

Mantenlo simple: a 96 px, un contorno claro importa más que el detalle. Comprueba después el peso del archivo con ls -l tray.png; un PNG de 96×96 con un solo personaje suele quedar muy por debajo del límite de 50 KB, pero un fotograma con ruido o textura puede sorprenderte.

El ícono debe ser estático incluso en un paquete animado. Usa el mismo fotograma que elegiste como primer fotograma del sticker principal, para que el ícono de bandeja y el sticker en reposo coincidan.

¿Cómo empiezo a partir de una animación de personaje de Charmotion?

Charmotion genera 17 animaciones a partir de un personaje, mascota o logo que subes, como archivo .riv en pocos minutos. WebM transparente (VP9 con alfa) y MOV (HEVC con alfa) a 1080×1080, MP4 y un GIF de 480 px se exportan bajo demanda, en alrededor de un minuto. No genera packs de WhatsApp; convierte cada WebM transparente (planes de pago, desde $20/mes) con el comando de arriba. Sus estados de ánimo en loop y sus reacciones puntuales te dan más que el mínimo de 3 stickers con un solo set.

Antes de convertir, revisa el primer fotograma de cada clip, ya que es lo que WhatsApp deja en pantalla. Si un clip empieza a mitad de un movimiento, mueve el inicio con -ss hasta la pose neutral. La fuente de 1080×1080 se reduce limpiamente a 512×512, y los clips son lo bastante cortos para quedar muy por debajo del límite de 10 segundos de WhatsApp.

Cómo crear un paquete de stickers animados de WhatsApp a partir de video con fondo transparente

  1. Elige de 3 a 30 clips. Escoge reacciones distintas; que cada una dure unos pocos segundos y no más de 10.
  2. Define el primer fotograma. Empieza cada clip en una pose completa y legible, porque WhatsApp termina en el primer fotograma.
  3. Convierte a WebP animado. Ejecuta ffmpeg con -c:v libvpx-vp9 antes de -i, escala y rellena a 512×512, y luego usa -c:v libwebp_anim -lossless 0 -quality 60 -loop 0.
  4. Comprueba el peso. Asegúrate de que cada archivo pese 500 KB o menos; si no, baja los fps o la calidad.
  5. Crea el ícono de bandeja. Exporta un PNG estático de 96×96 que pese 50 KB o menos.
  6. Empaqueta el paquete. Agrega los archivos a una app de stickers basada en el ejemplo oficial de WhatsApp y prueba agregar el paquete en un dispositivo.

Preguntas frecuentes

¿Puedo usar un GIF como sticker animado de WhatsApp?

No directamente. Los paquetes de stickers de WhatsApp usan archivos WebP, así que convierte el GIF a WebP animado de exactamente 512×512 y 500 KB o menos. Espera bordes dentados, porque la transparencia del GIF es total o nula en cada píxel. Un WebM con fondo transparente u otro video con canal alfa como fuente da contornos más suaves.

¿Qué frecuencia de cuadros debe usar un sticker de WhatsApp?

El README de WhatsApp no fija un límite de cuadros por segundo, solo una duración mínima de 8 ms por fotograma. En la práctica, 12 a 15 fps mantienen fluido el movimiento del personaje y dejan margen por debajo del tope de 500 KB. Más cuadros por segundo sobre todo aumentan el peso del archivo sin que un sticker pequeño se vea notablemente mejor.

¿Por qué mi sticker animado no se reproduce en loop?

Probablemente el WebP se escribió con un conteo de loops de 1. El codificador libwebp_anim de ffmpeg usa -loop 1 por defecto, que reproduce la animación una sola vez. Vuelve a codificar con -loop 0 para obtener un loop infinito. Recuerda que WhatsApp igualmente termina en el primer fotograma cuando se detiene la reproducción.

¿El límite de 500 KB es el mismo para los stickers estáticos?

No. Los stickers estáticos tienen un límite más estricto de 100 KB cada uno, mientras que los animados pueden pesar hasta 500 KB. Ambos deben medir exactamente 512×512 píxeles, y un mismo pack solo puede contener uno de los dos tipos, nunca una mezcla de stickers estáticos y animados.

Respuestas rápidas de esta guía

Fuentes

Guías relacionadas