Suscríbete para recibir notificaciones de nuevas publicaciones:

Extrae el audio de tus videos con Cloudflare Stream

2025-11-06

5 min de lectura
Esta publicación también está disponible en English, 한국어, Tiếng Việt y 日本語.

A Cloudflare Stream le encanta los videos. Pero sabemos que no todos los flujos de trabajo necesitan la imagen completa, y la popularidad de los podcasts pone de manifiesto lo atractivo que puede ser el audio independiente. Para los desarrolladores, procesar un video solo para acceder al audio es lento, costoso y complejo. 

¿Qué hace que el video sea tan caro? Un archivo de video es una pila densa de imágenes de alta resolución, unidas a lo largo del tiempo. Como tal, no es solo "un archivo": es un contenedor de datos de alta dimensión, como fotogramas por segundo, resolución, códecs. Analizar un video implica recorrer la resolución temporal y la velocidad de fotogramas.

Por qué extraer audio

En comparación, un archivo de audio es mucho más simple. Si un archivo de audio consta de un solo canal, se define como una sola forma de onda. Las características técnicas de esta forma de onda están definidas por la frecuencia de muestreo (el número de muestras de audio tomadas por segundo) y la profundidad de bits (la precisión de cada muestra).

Con el auge de los canales de inferencia de IA con uso intensivo de recursos informáticos, muchos de nuestros clientes desean realizar flujos de trabajo posteriores que solo requieren analizar el audio. Por ejemplo:

  • Potenciar la IA y el aprendizaje automático: además de la traducción y la transcripción, puedes introducir el audio en modelos de voz a texto para el reconocimiento o análisis de voz, o resúmenes basados en la IA.

  • Mejorar la moderación del contenido: analiza el audio de tus videos para garantizar que el contenido sea seguro y cumpla con las normas.

El uso de los datos de video en estos casos es costoso e innecesario. 

Por eso, presentamos la extracción de audio. A través de esta función, con solo una llamada API o un clic en el panel de control, ahora puedes extraer una pista de audio M4A ligera de cualquier video.

Presentamos dos métodos flexibles para extraer el audio de tus videos. 

1. Extracción de audio mediante Media Transformations

Media Transformations es perfecto para procesar y transformar videos cortos, como clips de redes sociales, que almacenas en cualquier lugar que desees. Funciona al obtener tus medios directamente desde su origen, optimizarlos en nuestro perímetro y entregarlos de manera eficiente.

Ampliamos este flujo de trabajo para incluir audio. Con solo agregar mode=audio a la URL de transformación, ahora puedes extraer audio sobre la marcha de un archivo de video almacenado en cualquier lugar.

Una vez que Media Transformations está habilitado para tu dominio, puedes extraer el audio de cualquier fuente de video. Incluso puedes recortar secciones específicas especificando el tiempo y la duración.

Por ejemplo:

https://example.com/cdn-cgi/media/mode=audio,time=5s,duration=10s/<SOURCE-VIDEO>

La solicitud anterior genera un clip de audio M4A de 10 segundos a partir del video de origen, comenzando en la marca de 5 segundos. Puedes obtener más información sobre la configuración y otras opciones en la documentación de Media Transformations

2. Descargas de audio

Ahora puedes descargar la pista de audio directamente para cualquier contenido que gestiones en Stream. Además de la capacidad de generar un MP4 descargable para verlo sin conexión, ahora también puedes crear y almacenar un archivo de audio M4A continuo.

Demostración de Workers AI

Aquí puedes ver un fragmento de código de muestra para saber cómo usar Media Transformations con uno de los productos de Cloudflare: Workers AI. El siguiente código crea un proceso de dos pasos: primero transcribir el audio del video al inglés y luego traducirlo al español.

export default {
 async fetch(request, env, ctx) {


   // 1. Use Media Transformations to fetch only the audio track
   const res = await fetch( "https://blog.cloudflare.com/cdn-cgi/media/mode=audio/https://pub-d9fcbc1abcd244c1821f38b99017347f.r2.dev/announcing-audio-mode.mp4" );
   const blob = await res.arrayBuffer();


   // 2. Transcribe the audio to text using Whisper
   const transcript_response = await env.AI.run(
     "@cf/openai/whisper-large-v3-turbo",
     {
       audio: base64Encode(blob), // A base64 encoded string is required by @cf/openai/whisper-large-v3-turbo
     }
   );


   // Check if transcription was successful and text exists
   if (!transcript_response.text) {
       return Response.json({ error: "Failed to transcribe audio." }, { status: 500 });
   }


   // 3. Translate the transcribed text using the M2M100 model
   const translation_response = await env.AI.run(
     '@cf/meta/m2m100-1.2b',
     {
       text: transcript_response.text,
       source_lang: 'en', // The source language (English)
       target_lang: 'es'  // The target language (Spanish)
     }
   );


   // 4. Return both the original transcription and the translation
    return Response.json({
        transcription: transcript_response.text,
        translation: translation_response.translated_text
    });


 }
};


export function base64Encode(buf) {
 let string = '';
 (new Uint8Array(buf)).forEach(
   (byte) => { string += String.fromCharCode(byte) }
 )
 return btoa(string)
}

Después de ejecutarse, el programa devuelve una respuesta JSON limpia. A continuación, se muestra un fragmento de la transcripción y traducción de la respuesta que devolvió el programa.

Transcripción:

{
  "transcription": "I'm excited to announce that Media Transformations from Cloudflare has added audio-only mode. Now you can quickly extract and deliver just the audio from your short form video. And from there, you can transcribe it or summarize it on Worker's AI or run moderation or inference tasks easily.",
  "translation": "Estoy encantado de anunciar que Media Transformations de Cloudflare ha añadido el modo solo de audio. Ahora puede extraer y entregar rápidamente sólo el audio de su vídeo de forma corta. Y desde allí, puede transcribirlo o resumirlo en la IA de Worker o ejecutar tareas de moderación o inferencia fácilmente."
}

Detalles técnicos

Como becaria de verano en el equipo de Stream, trabajé en el lanzamiento de esta función muy solicitada. Mi primer paso fue comprender la compleja arquitectura de los canales de medios de Stream.

Cuando Stream procesa un video, puede seguir una de dos rutas. La primera es nuestro canal de video a pedido (VOD), que maneja los videos cargados directamente en Stream. Genera y almacena un conjunto de segmentos de video codificados para la transmisión de velocidad de bits adaptable que se puede transmitir a través de HLS/DASH. La otra ruta es nuestro canal de codificación sobre la marcha (OTFE), que impulsa el servicio Stream Live y Media Transformations. En lugar de preprocesar y almacenar archivos, OTFE obtiene los medios del propio sitio web del cliente y realiza transformaciones en el perímetro.

Mi proyecto implicó la ampliación de ambos conductos para la compatibilidad con la extracción de audio.

Canalización de OTFE

La canalización de OTFE está diseñada para operaciones en tiempo real. El flujo existente se diseñó para tareas visuales. Cuando un cliente con Media Transformations habilitada realiza una solicitud en su propio sitio web, se enruta a nuestros servidores perimetrales, que actúan como punto de entrada. Luego, la solicitud se valida y, según la solicitud del usuario, OTFE obtiene el video y genera una versión redimensionada o una miniatura de fotograma fijo.

Para admitir la extracción de solo audio, me basé en nuestro flujo de trabajo existente para agregar un nuevo modo. Esto implicó:

  1. Extender la lógica de la validación: específicamente para el audio, un paso de validación crucial fue verificar que el video de origen contenía una pista de audio antes de intentar la extracción. Esto se añadió a los pasos de validación preexistentes que garantizan que la URL solicitada tenga el formato correcto. 

  2. Crear un nuevo controlador de transformación: este fue el núcleo de mi proyecto. Creé un nuevo controlador dentro de la plataforma OTFE que descartaba específicamente las pistas visuales para entregar un archivo M4A de alta calidad.

Canalización de VOD

Al igual que mi trabajo en OTFE, este proyecto implicó ampliar nuestro flujo de trabajo actual de descargas MP4 a descargas M4A de solo audio. Esto presentó una serie de decisiones técnicas interesantes. 

El flujo típico para crear una descarga de video comienza con una solicitud POST a nuestra capa API principal, que maneja la autenticación y la validación, y crea un registro de base de datos correspondiente. Lo que luego pone en cola un trabajo en nuestra fila asíncrona donde los trabajadores realizan el procesamiento. Para habilitar las descargas de audio para VOD, introduje nuevos puntos finales de API específicos del tipo (POST /downloads/{type}) y conservé la ruta heredada POST /downloads como un alias para crear descargas del tipo de descarga predeterminada o de video. Esto aseguró la compatibilidad total con las versiones anteriores.

El trabajo principal, el de crear una descarga, lo realiza nuestra fila asíncrona. Lo que incluía:

  • Agregar lógica al consumidor para detectar el nuevo tipo de descarga de audio.

  • Extraer la plantilla ffmpeg que definimos en nuestra capa API para codificar de forma correcta la transmisión de audio en un contenedor M4A de alta calidad

Al ampliar cada componente de esta canalización, desde las rutas de la API hasta los comandos de procesamiento de medios, pude ofrecer una nueva función muy solicitada que desbloquea flujos de trabajo centrados en el audio para nuestros clientes.

Capturas de pantalla del tablero

Nos complace anunciar que esta función también está disponible en el panel de control de Stream. Simplemente navega a cualquiera de tus videos y encontrarás la opción de descargar el video o solo el audio.

Una vez que la descarga esté lista, verás la URL del archivo, junto con la opción para desactivarlo.

Eso es todo

Este proyecto abordó una necesidad de los clientes desde hace mucho tiempo, y brindó una forma más sencilla de trabajar con audios desde los videos. Estoy realmente agradecido por todo este recorrido, desde la comprensión del problema hasta la entrega de la solución, y especialmente por la tutoría y la orientación que recibí de mi equipo a lo largo del camino. Estamos entusiasmados de ver cómo los desarrolladores utilizan esta nueva función para crear aplicaciones más eficientes y emocionantes en Cloudflare Stream.

Puedes probar la función de extracción de audio mediante la carga de un video a Stream o ¡el uso de la API! Si te interesa abordar este tipo de desafíos técnicos por tu cuenta, explora nuestros programas de pasantías y jóvenes talentos para comenzar tu propio recorrido.

La conectividad cloud de Cloudflare protege redes corporativas completas, ayuda a los clientes a desarrollar de forma eficiente aplicaciones a escala de Internet, acelera cualquier sitio web o aplicación de Internet, previene contra los ataques DDoS, mantiene a raya a los hackers, y te puede ayudar en tu recorrido hacia la seguridad Zero Trust.

Visita 1.1.1.1 desde cualquier dispositivo para empezar a utilizar nuestra aplicación gratuita y beneficiarte de una navegación más rápida y segura.

Para saber más sobre nuestra misión para ayudar a mejorar Internet, empieza aquí. Si estás buscando un nuevo rumbo profesional, consulta nuestras ofertas de empleo.
Internship ExperienceNoticias de productosCloudflare Stream

Síguenos en X

Cloudflare|@cloudflare

Publicaciones relacionadas

27 de febrero de 2026, 6:00

The most-seen UI on the Internet? Redesigning Turnstile and Challenge Pages

We serve 7.6 billion challenges daily. Here’s how we used research, AAA accessibility standards, and a unified architecture to redesign the Internet’s most-seen user interface....

04 de noviembre de 2025, 14:00

Building a better testing experience for Workflows, our durable execution engine for multi-step applications

End-to-end testing for Cloudflare Workflows was challenging. We're introducing first-class support for Workflows in cloudflare:test, enabling full introspection, mocking, and isolated, reliable tests for your most complex applications....