5 FORMAS DE VENCER LA APATÍA DEL COMPRADOR CON VÍDEOS DE MARKETING

La apatía es una falta de interés, entusiasmo o preocupación. Es sinónimo de indiferencia. Para las ventas B2B, la apatía es un asesino de acuerdos. Para el marketing B2B, la apatía es un fracaso.

La apatía puede ser una de las mayores amenazas a las que se enfrenta cualquier organización B2B. Los consumidores tienen muchas otras cosas que leer y ver, y una plétora de vendedores entre los que elegir en casi todos los sectores.

Desde mi punto de vista, la apatía da tanto miedo porque amenaza nuestra responsabilidad fundamental como profesionales del marketing de crear compromiso, captar la atención, suscitar interés, fidelizar y, en última instancia, impulsar la acción y el cambio. Nada de eso es posible a menos que un comprador esté dispuesto a inclinarse, comprometerse y consumir nuestro contenido.

En resumen, tenemos que hacer que a los compradores les importe.

¿CÓMO UTILIZAN LOS PROFESIONALES DEL MARKETING EL VÍDEO PARA VENCER LA APATÍA DEL COMPRADOR?

El antídoto contra la apatía es la curiosidad. La curiosidad es lo que hace que los seres humanos presten atención a algo, se interesen por ello y, en última instancia, actúen. La curiosidad es lo que provoca el cambio.

Para los profesionales del marketing, el vídeo se ha convertido en una herramienta estándar para despertar la curiosidad de los compradores. El 87% de las empresas utilizan ahora el vídeo como herramienta de marketing, y más que nunca (83%) afirman que les proporciona un buen rendimiento de su inversión. Sin embargo, el 90% de los profesionales del marketing por vídeo considera que el nivel de competencia y ruido ha aumentado en el último año.

¿Cómo podemos conseguir que nuestros vídeos destaquen? ¿Cómo utilizan las empresas B2B el vídeo marketing para abrirse paso entre compradores indiferentes?

Hace un par de semanas en PLAY 2019 en Boston, presenté algunas maneras de derrotar la apatía del comprador usando videos. A continuación, he incluido cinco de estos consejos y algunos ejemplos relevantes, así como mi opinión sobre por qué son tan eficaces.

1. CONOCE TU NICHO, SÍRVELES BIEN

El 60% de las marcas B2B admiten que no entienden a sus compradores, según SiriusDecisions. Sin embargo, los compradores son un 50 % más propensos a comprar cuando ven un valor personal para ellos o un impacto positivo en su carrera.

Antes de que Eloqua fuera comprada por Oracle por sus capacidades de automatización de marketing, realizó una serie de vídeos sobre Modern Mark. Demostró exactamente lo bien que esta marca entendía a su público y permitió a los compradores potenciales ver el valor personal a través de los ojos de este personaje, que se estaba beneficiando personalmente de las ventajas que ofrecía la tecnología de marketing de Eloqua.

2. HABLAR COMO UN SER HUMANO

Una forma segura de hacer que un comprador deje de escuchar tu vídeo es hablar como lo hacen los boilerplates de nuestra empresa, es decir, de forma pesada y llena de palabras de moda.

Una demostración de producto de Lucidchart nos muestra el poder de hablar simplemente como un ser humano.

Un testimonio de un cliente de Slack consigue el mismo tono sencillo, cercano y atractivo que hace que quieras verlo hasta el final. (¿Cuándo fue la última vez que quisiste ver un vídeo testimonial de un cliente hasta el final?)

3. URGENCIA

Seguro que estamos familiarizados con el FUD: miedo, incertidumbre y duda. Es una herramienta habitual en el sector de la seguridad y el riesgo cuando tratamos de impulsar la urgencia entre los compradores. Pero el alarmismo resulta anticuado cuando todos los proveedores del sector lo utilizan. Además, tiende a ser hiperbólico.

Un vídeo de Cisco tomó el argumento de un ataque de ransomware y le dio la vuelta, explorando el ataque desde la perspectiva del propio hacker. Es un guión que te hace palpitar el corazón mientras esperas su conclusión, y demuestra lo bien que Cisco entiende cada ángulo de esta amenaza.

4. GANARSE LA CONFIANZA

El 42% de los compradores no saben en qué empresas confiar, según Edelman. Esto era especialmente cierto en el mundo de los consultores SEO antes de la llegada de Rand Fishkin. El fundador de Moz se dio a conocer por ser un recurso transparente y educativo entre un mar de agencias que mantenían sus conocimientos de SEO muy bien guardados.

Para ellos, los secretos comerciales eran su salsa secreta. Para Rand, se convirtieron en la base de una plataforma de liderazgo de pensamiento que se ganó la confianza en una industria de tácticas secretas y negocios turbios. Su honestidad le llevó a convertirse en la autoridad de referencia en SEO, y sus vídeos de los viernes de pizarra se convirtieron en un ejemplo semanal de esta transparencia.

En su libro, Perdido y Fundador, Rand describe:

"Nos llamaron locos y tontos por compartir tanto sobre la mecánica del negocio. Pero también ganamos confianza y, sobre todo porque el campo del SEO y el mundo más amplio de las startups tecnológicas suelen ser tan impenetrablemente secretos, mereció la pena."

5. ESTÉ DONDE LOS CLIENTES QUIEREN QUE ESTÉ

Una de las principales causas de la apatía es simplemente la invisibilidad. ¿Por qué iba a ver tu vídeo si, para empezar, me cuesta un esfuerzo considerable encontrarlo?

¿Está bloqueando todos sus contenidos de vídeo? ¿Dependes demasiado del correo electrónico para promocionarlo? ¿Pones todos los huevos en la cesta de YouTube? ¿Lo oculta en alguna página oscura de su sitio web o en alguna entrada de su blog? ¡Libere su contenido de vídeo!

Según el Content Marketing Institute, el 70% de los profesionales del marketing B2B utilizan contenido patrocinado en las redes sociales para promocionar sus contenidos. En su estudio, este fue el método de distribución de contenidos de pago número 1.

Para las empresas B2B, recomiendo encarecidamente invertir en vídeo en LinkedIn. La plataforma cuenta ahora con 500 millones de miembros, 260 millones de los cuales se conectan mensualmente. El cuarenta por ciento de esos usuarios están en la plataforma todos los días. Nota: No se trata solo de personas que buscan empleo; 61 millones son personas influyentes de alto nivel.

Según LinkedIn, estos usuarios pasan casi 3 veces más tiempo viendo anuncios de vídeo que con contenido estático patrocinado. En palabras de Pete Davies, director de gestión de productos de LinkedIn: "El vídeo es el formato de más rápido crecimiento en nuestra plataforma en estos momentos, y el que tiene más probabilidades de dar que hablar".

Aprovecha esta participación para dar un impulso a tus vídeos y considera la posibilidad de probar su nuevo servicio de retransmisión de vídeo en directo, LinkedIn Live. Es una interfaz muy atractiva, tanto para ordenadores como para móviles, y es una forma estupenda de estar exactamente donde está tu audiencia.

Superar la apatía del comprador es uno de los muchos retos a los que se enfrentan los profesionales del marketing B2B en los próximos meses. Pero es la esencia de lo que hace que nuestro trabajo sea tan apasionante. Solo hace falta creatividad y empatía en nuestra estrategia de marketing por vídeo.

ACTUALIZACIONES DE PRODUCTOS BRIGHTCOVE: JUNIO DE 2019

Este año ha sido muy ajetreado en la sede de Brightcove, entre nuestro viaje a Las Vegas para NAB y nuestro noveno Brightcove PLAY aquí en Boston. No sólo hemos asistido y organizado importantes eventos de la industria del vídeo, sino que nuestro equipo de productos ha estado muy ocupado entre bastidores, actualizando y mejorando nuestros productos. Estas nuevas funciones le permiten recopilar información más detallada, ofrecer opciones de suscripción personalizadas y mucho más.

EN DIRECTO A FACEBOOK

Brightcove Live to Social permite ahora retransmitir trabajos de Brightcove Live a Facebook, y pronto a otros destinos sociales. Esta función mejora Brightcove como centro que conecta múltiples fuentes (cámaras, codificadores, etc.) y múltiples destinos desde un único lugar. Descubra cómo empezar a retransmitir en directo a Facebook directamente desde el panel de Brightcove.

SUSCRIPCIONES MULTINIVEL OTT FLOW

Los clientes de OTT Flow pueden ahora ofrecer a sus abonados múltiples opciones de precios y empaquetado de contenidos en el producto, lo que significa que los creadores de contenidos pueden ahora presentar a los compradores potenciales paquetes de contenidos únicos a diferentes precios, o incluso combinar estrategias AVOD/SVOD como medio de aumentar las ventas a los usuarios.

UI PARA SSAI

Los usuarios de Entrega dinámica y SSAI activado ahora pueden crear y gestionar configuraciones de anuncios en el módulo Admin. Los usuarios de Entrega dinámica con SSAI y Live habilitados también disponen de los controles adecuados para Live SSAI. Esta actualización mejora el flujo de trabajo al permitirle ver todas las configuraciones de anuncios en una única vista. Aprenda a implementar anuncios del lado del servidor en Brightcove Live.

AD METADATA

Gracias a la API de programas en directo y metadatos publicitarios, los clientes pueden integrarla en su sistema de emisión o transmitir datos específicos para la segmentación de anuncios. Proporcionar detalles más granulares hace que su inventario de anuncios sea más atractivo para los anunciantes, aumentando la demanda y los CPM.

EL SDK DE IMA INCLUYE AHORA LA MEDICIÓN ABIERTA

El SDK de IMA para Android incluye ahora el SDK de medición abierta, un estándar del sector desarrollado por la IAB y diseñado para permitir la medición de la visibilidad y la verificación por parte de terceros de los anuncios difundidos en entornos móviles y de escritorio. El SDK de medición abierta prevé que los controles de vídeo se consideren obstrucciones amistosas que son esenciales para la experiencia del usuario, excluyéndolos así de la medición de la visibilidad de los anuncios.

3 RAZONES POR LAS QUE LAS MARCAS DEBEN RETRANSMITIR EN DIRECTO EN LAS REDES SOCIALES

En los últimos años, la evolución del vídeo en los canales sociales se ha disparado. Al principio sólo podíamos publicar vídeos en YouTube, pero no podíamos retransmitirlos en directo. Ahora, no sólo podemos publicar vídeos en todas las redes sociales, sino que podemos retransmitir en directo en casi todas ellas. De hecho, según el informe Social Media Trends to Watch and Capitalize on in 2019 de CMSCMedia, el vídeo representa el 85% del tráfico total de Internet en 2019 hasta el momento, y se espera que el mercado de la transmisión en directo se duplique para 2021. La retransmisión en directo en los perfiles sociales de tu marca es increíblemente potente y aquí tienes tres razones por las que deberías empezar ya.

1. LA RETRANSMISIÓN EN DIRECTO EN LAS REDES SOCIALES AMPLÍA EL ALCANCE DE LA AUDIENCIA

Cada canal social tiene una audiencia única. Twitter es el lugar al que se acude para ver contenidos en tiempo real, ya sean noticias de última hora o un gran momento deportivo. La retransmisión en directo en Twitter capta a la audiencia que desea obtener la información más oportuna. Facebook es el lugar al que acuden los espectadores para conectar con marcas, amigos y familiares. Al retransmitir en directo a Facebook, captarás a un público que busca relacionarse contigo y con tu marca directamente. Y, por último, YouTube es el lugar al que acuden muchos espectadores en busca de contenidos largos. YouTube es la plataforma ideal para aprender nuevas técnicas y mejorar productos, y ofrece desde tutoriales hasta historias por capítulos.

2. LA RETRANSMISIÓN EN DIRECTO AUMENTA LA NOTORIEDAD DE LA MARCA

Una ventaja natural de ampliar el alcance de su audiencia a través de las distintas plataformas sociales es que su marca llegará a nuevas personas. Además, la retransmisión en directo en las redes sociales aporta autenticidad a tu marca. Cualquier cosa puede ocurrir cuando estás en directo, lo que da a tu audiencia una razón para sintonizar y la sensación de que están viendo a personas reales.

3. LA RETRANSMISIÓN EN DIRECTO GENERA CONTENIDOS ÚNICOS

La retransmisión en directo a canales sociales le permite crear nuevos activos de vídeo que podrá volver a utilizar una vez finalizado el evento. Para nuestro reciente lanzamiento de Live to Social en NAB, realizamos siete entrevistas en directo en Facebook, incluidas dos entrevistas con socios de Brightcove, cuatro entrevistas con personal de nivel C de Brightcove y directores de producto. Dado que cubrimos la evolución del vídeo y hacia dónde pensamos que se dirigirá en el futuro -un tema oportuno y siempre actual-, podemos utilizar ese contenido en futuras campañas. De hecho, ya puede ver nuestros vídeos Live from NAB Showfloor a la carta, en la lista de reproducción NAB Facebook Live de Brightcove.

La formación de la comunicación a través del vídeo, contada por un famoso representante de marca

Celebramos una mesa redonda con el Sr. Morikuni, Director General del Departamento de Comunicaciones de Marca de Toyo Tire & Rubber Co., Ltd., que también es usuario de Brightcove y utiliza el vídeo en medios propios y sociales, y el Sr. Yamane, Director Senior del Grupo de Comunicaciones Digitales del Departamento de Desarrollo de Marketing de Sapporo Breweries Ltd., en la que se debatió sobre el uso del vídeo en las redes sociales.

Lanzamiento de un servicio de "catch-up" de programas de TV - Nippon Television Pt 1

La historia de la distribución de vídeo en la televisión, la prensa y los medios de comunicación por Internet no ha sido fácil, desde los albores de la industria hasta nuestros días. Hay una historia de aspirantes desconocidos, los "Videoadictos", que han superado diversas pruebas, errores y fracasos. En esta serie de artículos, nuestro entrevistador Tsuchiya repasará la historia de varios aspirantes a lo largo de 12 artículos.

EL MODELO OTT DE VARIOS NIVELES: DAR AL PÚBLICO EL PODER DE ELEGIR

Al lanzar un servicio OTT, una de las primeras decisiones importantes que hay que tomar es determinar cómo se monetizarán los contenidos.

Aunque algunos de los modelos de ingresos más antiguos y consolidados siguen siendo opciones populares para los proveedores de contenidos OTT, algunas opciones nuevas están adquiriendo cada vez más protagonismo.

Al aprovechar un modelo de ingresos OTT de varios niveles, puede dejar esta decisión en manos de su audiencia y darles la flexibilidad de elegir cómo quieren pagar por su contenido.

Siga leyendo para obtener más información sobre los distintos modelos de monetización y las ventajas del enfoque multinivel.

MODELOS COMUNES DE MONETIZACIÓN

El vídeo a la carta con publicidad (AVOD), el vídeo a la carta por suscripción (SVOD) y los híbridos son algunos de los principales modelos de ingresos que utilizan hoy en día los proveedores de contenidos OTT.

He aquí una breve explicación de las diferencias entre estos modelos:

  • AVOD. Los espectadores acceden a contenidos gratuitos a cambio de ver anuncios.

    • Entre los servicios de vídeo con publicidad más conocidos están YouTube, Pluto TV, Crackle y muchos sitios de editores, como Conde Nast y Vice Media.
  • SVOD. En este modelo, los espectadores pagan una cuota de suscripción para ver los contenidos.

    • Los servicios de vídeo para abonados constituyen el segmento más amplio del universo OTT e incluyen algunos muy importantes, como Netflix, Amazon Prime Video, HBO Now y Showtime. Pero SVOD también es el hogar de cientos de otros proveedores, como Hallmark Movies Now y WWE Network, así como una plétora de proveedores muy pequeños y de nicho, como Curiosity Stream y Crunchyroll.   
  • Híbrido. Algunos servicios OTT han empezado a adoptar un enfoque híbrido: ofrecen tanto un servicio gratuito con publicidad como una suscripción premium. Esto crea una transición suave para convertir una audiencia a un modelo de suscripción. Los proveedores pueden llevar esta estrategia un paso más allá ofreciendo modelos de suscripción escalonados y bloqueando determinados contenidos para que sólo puedan acceder a ellos los usuarios que estén dispuestos a pagar una prima.

    • Las ofertas híbridas están recibiendo mucha atención a medida que el coste de los contenidos sigue disparándose, y los servicios más pequeños buscan en la publicidad programática una posible fuente de ingresos adicionales. En APAC, la empresa de telecomunicaciones PCCW ha tenido éxito con su servicio Vie OTT, que ofrece a los consumidores una amplia selección de contenidos de menor valor con publicidad, así como contenidos de mayor calidad mediante suscripción de pago. En Estados Unidos, CBS All-Access y Hulu son buenos ejemplos de un modelo híbrido truncado: ofrecen un servicio basado en una suscripción MÁS publicidad, o un paquete de suscripción de mayor precio sin publicidad. Como su nombre indica, los modelos híbridos pueden ser bastante flexibles.

Tanto el AVOD como el SVOD tienen sus propias ventajas y dificultades. Para los espectadores que no pueden o no quieren pagar por consumir contenidos de vídeo, la opción tradicional AVOD sigue siendo un modelo de monetización popular y exitoso. AVOD permite una segmentación precisa a nivel de usuario basada en una amplia gama de atributos y comportamientos en línea, lo que lo convierte en una opción cada vez más atractiva para los anunciantes. AVOD es también una buena opción para impulsar la captación de audiencia y combatir la fatiga de suscripción. Para los servicios con audiencias más consolidadas, el SVOD ofrece un flujo de ingresos más lineal y predecible. El SVOD es también un modelo de negocio ideal para servicios más pequeños con contenidos muy específicos y voluntad de construir gradualmente su audiencia con el tiempo.

OTROS MODELOS DE MONETIZACIÓN

Hoy en día, los proveedores de servicios OTT buscan flexibilidad en sus enfoques de salida al mercado y quieren experimentar con modelos de ingresos adicionales, entre ellos:

  • VÍDEO TRANSACCIONAL A LA CARTA (TVOD). Este modelo permite a los usuarios registrarse o descargar el servicio sin coste alguno, pero requiere la compra de contenidos por título. TVOD es popular para contenidos cinematográficos de larga duración o contenidos de pago por visión (PPV) en directo, como acontecimientos deportivos y otros eventos en directo, como conciertos. Apple y Amazon, por ejemplo, ofrecen a los clientes la opción de comprar o alquilar títulos, mientras que la WWE, la UFC y el boxeo profesional utilizan ampliamente el PPV.

  • VOD AUTENTICADO (AUTHVOD). Este modelo suele requerir que los usuarios inicien sesión con credenciales de otra plataforma, servicio, suscripción de cable (TVE) o móvil para acceder al contenido. Por esta razón, AuthVOD es valioso cuando se coordina con asociaciones o se gestionan múltiples propiedades o servicios de marca. Sin embargo, AuthVOD también puede referirse a un servicio gratuito con publicidad que requiere que el espectador cree un inicio de sesión para verlo. El beneficio para el espectador final es la posibilidad de hacer cosas como crear "listas de seguimiento" de contenidos y "pausar y reanudar" a través de dispositivos. El beneficio para el proveedor de servicios es la posibilidad de saber más sobre el espectador final con fines de marketing y publicidad.

VENTAJAS DE UN MODELO DE PRECIOS POR NIVELES

Ofrecer un modelo de precios de varios niveles permite a los propietarios de contenidos dar al público la flexibilidad de elegir el paquete que mejor se adapte a sus necesidades de visionado y a sus limitaciones de costes. Al ofrecer a su audiencia la posibilidad de decidir cómo quieren pagar por su contenido (y cuánto), puede hacer que su servicio OTT atraiga a más espectadores y optimizar sus ingresos aprovechando más puntos a lo largo de la curva de demanda.

Esta evolución desde el modelo de canales de alto precio y apilados hacia un visionado más personalizado parece bastante natural, ya que estamos asistiendo a la edad de oro del entretenimiento en vídeo. El espectador de hoy tiene muchas opciones entre las que elegir, es más sensible al precio y está dispuesto a pagar por los contenidos que le apasionan. Muchos de los canales más populares son grandes cadenas; sin embargo, la mayoría de los servicios de pago por los que los consumidores están dispuestos a pagar más son de nicho. Por lo tanto, la fijación de precios en varios niveles dará más libertad y flexibilidad al espectador moderno a la hora de elegir un servicio de vídeo.

FARO BRIGHTCOVE

En Brightcove, vemos el valor de que un propietario de contenidos pueda poner precio y empaquetar sus contenidos en diferentes niveles de SVOD. En colaboración con Accedo y Cleeng, hemos añadido nuestra nueva oferta de paquetes múltiples SVOD a Brightcove Beacon, que permite a nuestros clientes ofrecer distintos niveles de acceso a sus contenidos a través de diferentes suscripciones. Estas capacidades de suscripción multinivel añaden sofisticación a nuestra solución líder en el mercado sin coste adicional para nuestros clientes.

Con esta función, los clientes de Brightcove podrán ofrecer niveles de suscripción verticales u horizontales. Los niveles verticales permiten a los clientes vender suscripciones separadas para distintos tipos de contenidos, que pueden agrupar como deseen. Por ejemplo, pueden ofrecer un paquete para películas y otro para contenidos deportivos. Los niveles horizontales se dividen por volumen de contenidos y suelen denominarse paquetes Oro, Plata o Bronce.

Si los espectadores no tienen acceso a un contenido concreto, recibirán un mensaje indicándoles que no tienen derecho a ese contenido y se les pedirá que hagan clic en la página de compra asociada al contenido en cuestión, lo que generará oportunidades de venta.

En el saturado mercado OTT actual, los proveedores de contenidos deben crear y ampliar sus ofertas teniendo en cuenta los intereses de los espectadores a los que se dirigen. Dado que los espectadores de hoy valoran la capacidad de elección y buscan una propuesta de valor atractiva y relevante, el modelo de ingresos OTT multinivel es una nueva opción interesante que los proveedores de servicios deben tener en cuenta.

CÓMO PONER EN MARCHA Y HACER CRECER SU SERVICIO OTT

Today, more video is being consumed online than ever before. In fact, according to the findings from our 2018 Global Consumer Streaming Habits Survey, 58 percent of global consumers stream content at least once a week via a connected TV—while 51 percent stream at least once a week on a mobile device, and 50 percent do so on a computer or laptop.

Para prosperar en este panorama OTT cada vez más saturado, debe comprender a su audiencia lo suficiente como para ofrecer la experiencia de usuario ideal, con una propuesta de valor atractiva y relevante.

Are you ready to be a leader in the OTT space? Download our first OTT Essentials whitepaper, the ultimate guide to launching and growing an OTT service. Read on for a preview of what the white  paper covers; then download the asset for more insights and inspiration on how to provide the optimal user experience—and keep viewers coming back for more.

LÁNCESE CON CONFIANZA

Al lanzar un servicio OTT, debe establecer su propia estrategia de distribución y contenidos atractivos.

Hágase los siguientes tipos de preguntas para definir su estrategia y determinar cómo la ejecutará para lograr los mejores resultados:

  • ¿Qué género o géneros de contenidos ofrecerá?

  • ¿Quién es su público objetivo?

  • ¿Cuál es su presupuesto?

  • ¿Cómo programará una experiencia de pantalla eficiente y escalable en televisores conectados, teléfonos inteligentes, tabletas y ordenadores de sobremesa?

  • ¿Cómo hará llegar sus contenidos a su público objetivo?

Una vez definida su estrategia general, tendrá que determinar cómo monetizará sus contenidos. Algunos de los modelos de negocio más utilizados por los propietarios de contenidos OTT son el vídeo a la carta con publicidad (AVOD), el vídeo a la carta por suscripción (SVOD) y el enfoque híbrido, que consiste en ofrecer tanto una suscripción premium como un servicio gratuito con publicidad. A la hora de decidir qué modelo funciona mejor para su negocio, debe tener en cuenta factores como su catálogo de contenidos, la ubicación de su audiencia y su presupuesto de marketing.

IMPULSAR EL CRECIMIENTO DE LA AUDIENCIA Y LA RENTABILIDAD

Una vez que haya establecido una red de espectadores, tendrá que trabajar continuamente para aumentar su audiencia. Y, para ello, debe comprender las diferentes métricas de abandono de OTT y cómo reducir su tasa de abandono. Al fin y al cabo, no importa cuántos usuarios nuevos adquiera si abandonan pronto o con frecuencia. Como mejor práctica, debe comparar mensualmente su tasa de rotación con su tasa de conversión. Con estos datos, puede determinar dónde concentrar sus esfuerzos: en adquirir nuevos usuarios o en retener a los actuales.

A medida que el público de todo el mundo se acostumbra cada vez más a una experiencia de visionado premium similar a la de la televisión, también es crucial que incorpore nuevas funciones a su servicio de forma regular. De este modo, podrá mantener el interés de los espectadores y aumentar los ingresos y la rentabilidad. Tanto si decide habilitar la emisión avanzada como incorporar canales en directo a su servicio, asegúrese de realizar pruebas A/B periódicas para desarrollar un conocimiento sólido de lo que funciona y lo que no en lo que respecta a la experiencia del espectador.

CUANDO UN VÍDEO SE CUELGA EL REPRODUCTOR DESPUÉS DE 19 SEGUNDOS

En cualquier software complejo existen fallos, y cuando se trabaja en un proyecto grande uno se los encuentra a menudo. Los más memorables e interesantes son los que tienen una causa sencilla, pero se presentan de formas inusuales y a veces extrañas. Este error empezó con un único vídeo que provocó el bloqueo de un reproductor. En sí mismo no es un informe tan raro, sin embargo, los siguientes detalles destacaron definitivamente:

  • Sólo ocurrió con un vídeo en concreto
  • Sólo ocurría en Android (pero sólo en ciertas versiones de Android)
  • Siempre se bloqueaba el reproductor exactamente a los 19 segundos de reproducción.

El vídeo se servía a dispositivos Android mediante HTTP Live Streaming, el estándar de Apple para la distribución de vídeo fragmentado basado en el formato de lista de reproducción m3u. Para la protección del contenido se utilizó AES-128 con relleno PKCS#7. Esto se conoce generalmente como cifrado HLS (o "HLSe" para abreviar). Otros formatos disponibles para el contenido, como MPEG-DASH, no presentaban el problema, ni tampoco HLS con FairPlay DRM (o incluso sin drm). El problema era aún más específico que "este vídeo", era "este vídeo, con HLSe"

Por suerte para las pruebas, este error era fácil de reproducir en la aplicación de demostración ExoPlayer de Google, y con una respetable selección de dispositivos de prueba a mano, no tardamos mucho en obtener códigos de error y trazas de pila de logcat para varias versiones principales de Android. Los errores específicos variaron dependiendo de la versión de Android en el dispositivo, pero todos compartían un tema común; en particular, que había algún problema descifrando los medios de comunicación en uno de los segmentos de vídeo. La excepción principal, y la más interesante "Causada por" más adelante en el seguimiento de la pila, eran todas variantes de estas dos (difiriendo en la redacción entre las versiones de Android probadas):

java.io.IOException: Error while finalizing cipher
        at javax.crypto.CipherInputStream.fillBuffer(CipherInputStream.java:104)
        at javax.crypto.CipherInputStream.read(CipherInputStream.java:155)
        at com.google.android.exoplayer2.source.hls.Aes128DataSource.read(Aes128DataSource.java:96)

Caused by: javax.crypto.BadPaddingException: error:1e06b065:Cipher functions:EVP_DecryptFinal_ex:BAD_DECRYPT
        at com.android.org.conscrypt.NativeCrypto.EVP_CipherFinal_ex(Native Method)
        at com.android.org.conscrypt.OpenSSLCipher$EVP_CIPHER.doFinalInternal(OpenSSLCipher.java:568)
        at com.android.org.conscrypt.OpenSSLCipher.engineDoFinal(OpenSSLCipher.java:385)
        at javax.crypto.Cipher.doFinal(Cipher.java:1476)

Profundizar en el código es un poco complicado. El núcleo del código criptográfico está escrito en C y es bastante intimidante si no estás acostumbrado. Por suerte, ese "causado por" tiene un buen tipo legible, en particular javax.crypto.BadPaddingExceptionEl problema está en el relleno. Según la especificación de Apple, el algoritmo de relleno que se utiliza en HLSe es PKCS#7, que se describe en RFC-5652 Sección 6.3:

6.3.  Content-encryption Process

   The content-encryption key for the desired content-encryption
   algorithm is randomly generated.  The data to be protected is padded
   as described below, then the padded data is encrypted using the
   content-encryption key.  The encryption operation maps an arbitrary
   string of octets (the data) to another string of octets (the
   ciphertext) under control of a content-encryption key.  The encrypted
   data is included in the EnvelopedData encryptedContentInfo
   encryptedContent OCTET STRING.

   Some content-encryption algorithms assume the input length is a
   multiple of k octets, where k is greater than one.  For such
   algorithms, the input shall be padded at the trailing end with
   k-(lth mod k) octets all having value k-(lth mod k), where lth is
   the length of the input.  In other words, the input is padded at
   the trailing end with one of the following strings:

                     01 -- if lth mod k = k-1
                  02 02 -- if lth mod k = k-2
                      .
                      .
                      .
            k k ... k k -- if lth mod k = 0

   The padding can be removed unambiguously since all input is padded,
   including input values that are already a multiple of the block size,
   and no padding string is a suffix of another.  This padding method is
   well defined if and only if k is less than 256.

Si eres como yo, esa descripción es un poco difícil de imaginar. He aquí algunos ejemplos (todos con un tamaño de bloque de 16 bytes):

  • 88 7c 46 66 9a 2f a2 59 4d 1e se rellenaría con 06 06 06 06 06 06
  • 63 se rellenaría con 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f
  • f5 5c 6b 13 cf 54 f8 45 c1 ca 67 ec 50 20 12 se rellenaría con 01

En pocas palabras, el valor de los bytes rellenados es el número de bytes que se rellenan, hasta el tamaño de bloque utilizado.

Armado con una comprensión de cómo debe funcionar el relleno, y un error que indica un relleno incorrecto, el siguiente paso fue comprobar el código que maneja el relleno para el vídeo. El servicio en cuestión está escrito en Go, que no tiene una implementación de PKCS#7 en su biblioteca estándar, por lo que el servicio tiene su propia implementación. Aquí está:

PKCS7Pad(in []byte) []byte {
    padding := 16 - (len(in) % 16)
    for i := 0; i < padding; i++ {
        in = append(in, byte(padding))
    }
    return in
}

Corto y sencillo... y sin errores obvios. Incluso hay pruebas unitarias que parecen afirmar exactamente el comportamiento que esperamos. Así que quizás necesitemos más pistas. Llegados a este punto, nos desviamos para comparar lo que producía nuestro código con otras implementaciones. Por suerte, el cifrado AES-128 aplicado a los segmentos HLSe se aplica a todo el archivo del segmento, y no sólo a partes del contenido del archivo, como puede ocurrir con otros esquemas de protección de contenidos. La producción de segmentos cifrados alternativos se realizó fácilmente con OpenSSL, y pudimos utilizar nuestro empaquetador dinámico de medios para obtener una copia no protegida de los segmentos a cifrar. Con un segmento descargado tanto en claro, como encriptado AES-128, se generó un segmento encriptado alternativo usando el siguiente comando:

openssl aes-128-cbc -K $KEY -iv $IV -in clear.ts -out alt_protected.ts

Hacer esto reveló una nueva e interesante pieza de información, la salida del cifrado de OpenSSL era exactamente 16 bytes más grande que la salida de nuestra aplicación Go (es decir, un bloque). Quizás el problema no estaba en el relleno, sino en algún extraño caso límite en el que no se añadía un bloque final. Revisando de nuevo el código Go con esta nueva información en mente, la siguiente condicional empezó a parecer sospechosa:

// If this block does not match the AES block size we need to pad it out
if bytesRead != aes.BlockSize {

A primera vista, el algoritmo simplemente lee datos del búfer de entrada en trozos de longitud igual al tamaño del bloque. A continuación, comprueba cuántos bloques se han leído y, si es necesario, los amplía a 16 bytes. Por último, pasa el búfer de 16 bytes al cifrado y transmite la salida a un búfer de salida. Así que, siendo realistas, sólo esperamos que esta condicional se active en el último bloque, porque es el único que necesitará relleno. Después de algunas idas y venidas, algo empezó a hacerse obvio; hay un escenario que no se está manejando explícitamente: .... ¿qué pasa si el bloque final tiene la misma longitud que el tamaño del bloque? El código Go simplemente no hará nada, afirmando que no es necesario el relleno. Para estar seguros, volvamos a consultar la especificación:

the input shall be padded at the trailing end with k-(lth mod k) octets all having value k-(lth mod k), where lth is the length of the input.

Así que si k es el tamaño de bloque, y lth es la longitud de la entrada, entonces un bloque de longitud 16 necesitaría 16-(0 mod 16) bytes de relleno. 16-(0 mod 16) es igual a 16... ¡Así que en realidad se supone que esto tiene un bloque entero de relleno al final, con el valor de cada byte relleno fijado en 16! ¡Por fin, una pista! ¡Nuestro código Go no cumple las especificaciones!

Saltando un poco hacia adelante a través de la prueba de un parche contra el mismo contenido que presentaba el problema, ¡finalmente conseguimos que funcione la reproducción más allá de la marca de 19 segundos en el vídeo! En última instancia, la solución consistió en reescribir el condicional defectuoso para rellenar el último bloque independientemente del número de bytes leídos. Esto resolvió el problema de una vez por todas.

En resumen, todas las características extrañas de este informe de error se derivan de la improbable realidad de que, de todos los contenidos que hemos probado con nuestro sistema, ésta es la primera vez que un vídeo (almacenado como mp4 fragmentado, multiplexado en segmentos de flujo de transporte) ha dado lugar a un segmento que tenía una longitud (en bytes) perfectamente divisible por 16. ¿Por qué 19 segundos en el vídeo? Bueno, los segmentos duran 10 segundos y era el tercer segmento con el relleno incorrecto. ¿Por qué el fallo sólo se produce en algunas versiones de Android, y aparentemente no en otros dispositivos? Bueno, parece que la mayoría de las implementaciones son resistentes a este error. Las versiones más antiguas de Android eran susceptibles, pero las versiones más modernas podían manejarlo.

Una vez respondidas todas las preguntas y corregido el error, no queda nada más que decir, salvo algunas lecciones aprendidas:

  • Utilizar, siempre que sea posible, implementaciones de algoritmos estandarizados ya existentes y de eficacia probada.
  • Si acabas implementando uno tú mismo, debes ser pedante con las especificaciones. Pasar por alto un caso extremo te costará caro.
  • Incluso los bichos realmente divertidos y extraños pueden tener soluciones aburridas.