Este post está patrocinado por Miguel Villamarín Álvarez, del Banco Mediolanum, un banco de personas para personas. Miguel ha donado 100€ para el banco de alimentos en mi iniciativa "¿Te he ayudado? Ayúdame a ayudar a otros". ¡Muchas gracias Miguel!
¿Y tú, a qué esperas para echar un cable?

Un logo de YouTube liveEn realidad lo que voy a contar hoy sirve para muchas otras plataformas de streaming pero, aunque hay muchas otras plataformas de streaming por ahí, la más utilizada con diferencia sigue siendo YouTube y además es la que yo controlo.

Lo habitual es que si haces un evento en directo, lo emitas en directo. Sin embargo, es posible que por cualquier motivo necesites emitir en un evento en directo, algo grabado previamente. Por ejemplo porque es un "falso directo" o porque lo que emites tiene una labor de edición y montaje importante. Sea como fuere, el caso es que tienes que emitir en directo uno o más vídeos pregrabados y quieres una forma sencilla de hacerlo.

Lo primero que le viene a la mente a cualquiera es utilizar un software como OBS Studio que sirve para casi todo: grabar, emitir, hacer transiciones y montajes, etc... Pero es un poco "matar moscas a cañonazos" para lo que necesitamos. Además tiene una pega importante para este caso: si lo que quieres es emitir varios vídeos, uno detrás de otro, no tienes forma fácil de hacerlo de manera desatendida. Es decir, para emitir un video justo cuando termina otro debes estar siempre vigilando y cambiar de escena justo cuando termina cada vídeo para psar al siguiente. Un rollo y además propenso a errores, sobre todo teniendo en cuenta que YouTube emite con unos 30 segundos de retraso.

FFmpeg al rescate

La solución pasa por utilizar el archiconocido software FFmpeg para ello. Se trata de la navaja suiza de las herramientas de vñideo, utilizada ampliamente por... bueno, todo el mundo.

Pero, un momento, ¿no dices en el título que sin instalar nada?. Sí, lo bueno de FFmpeg es que no lo tienes que instalar. Basta con descargarlo y lo puedes ejecutar sin más ceremonias, por lo que podrás hacerlo en cualquier equipo aunque no tengas permisos de administrador.

Descargar FFmpeg: más lioso de lo que debiera

Lo primero es descargar FFmpeg, que en Windows es un poco complicado porque nos ofrece dos sitios desde done hacerlo, y cada uno de ellos muchas descargas diferentes, por lo que es difícil saber cuál debes descargar:

Página de descarga de FFmpeg con la zona apropiada en un recuadro

La descarga no es el botón verde prominente de arriba, que descarga el código fuente, sino que hay que ir abajo, a la zona que recuadrado en la figura anterior. Yo suelo elegir el primero de ellos, gyan.dev porque a pesar de que deja mucho que desear, es el más claro de los dos. En la página de gyan, salvo que quieras tener lo último compilado desde GitHub directamente (cosa que a veces te puede traer sorpresas) tienes que hacer scroll hacia abajo para llegar a la zona de Release:

La página de descarga secundaria de FFmpeg

En esta zona hay varias descargas disponibles. La primera de ellas "full" es la que te recomiendo porque trae todas las herramientas y la documentación, pero si quieres puedes descargar la "essentials", más reducida. Ten en cuenta que están comprimidas con 7-ZIP, no con el más habitual ZIP, lo cual me parece fenomenal porque es una herramienta muy superior y, en Windows al menos, debería venir de serie y ser de uso obligatorio 😁

Vale, pues nada: descargas, descomprimes a donde quieras y ¡a jugar!

Nota: mi recomendación es que agregues en la variable de entorno Path la carpeta bin de donde hayas descomprimido FFmpeg definitivamente. De este modo podrás tener acceso siempre a esta herramienta de linea de comandos, estés donde estés.

Averiguar la clave de streaming de tu canal de YouTube

Supongo que si tienes interés en este tema tendrás ya muy claro cómo conseguirla. Pero por si no es el caso te lo cuento rápidamente...

Vete a YouTube y en la parte superior derecha pulsa el icono de la cámara con un "+", y en el menú qyse despliega pulsa en el segundo icono de emisión en directo:

El menú para emitir en directo

Esto te llevará a la página de emisiones en directo. Puedes emitir en el canal directamente creando la emisión cuando empieces a emitir, o bien crear una emisión programada. En cualquier caso la clave de emisión será la misma. Tienes que recuperar dos parámetros:

  • La dirección del servidor de streaming a través del cual vas a emitir, que es lo que en la interfaz pone Streaming URL.
  • La clave de la emisión, que es la misma para todo el canal.

Ambas puedes copiarlas simplemente dándole a un botón Copiar, como se ve en la figura:

La imagen muestra los parámetros de emisión de YouTube Live en tu canal

¡Listo! Ahora solo falta emitir.

Emitir a YouTube Live con FFmpeg

Esta parte es muy sencilla, pero tendrás que utilizar la línea de comandos (o el terminal si estás en Linux o macOS: la instrucción sería la misma).

Lo que tienes que hacer es escribir lo siguiente:

ffmpeg -i <RUTA_ARCHIVO> -re -acodec copy -vcodec copy -f flv <URL_SERVIDOR_STREAMING>/<CLAVE_STREAMING>

Siendo lo que he puesto entre < y > los parámetros que debes cambiar. Por ejemplo:

ffmpeg -i c:\videos\mievento.mp4 -re -acodec copy -vcodec copy -f flv rtmp://a.rtmp.youtube.com/live2/a123-456b-c78d-e90f-11gh

que como ves lleva al final la dirección del servidor de YouTube y acto seguido la clave de emisión (inventada en este caso).

¡Listo! Con esto empezarás a emitir de inmediato (aunque ten en cuentsa que YouTube va con unos 30 segundos de retraso, asi que tardará un poco en empezar).

IMPORTANTE: ten en cuenta que YouTube no emitirá hasta que reciba datos e inicies explícitamente la emisión. Para ello puedes pulsar el botón de Iniciar emisión o, mejor aún, marcar la opción de que se inicie automaticamente en cuanto reciba datos. Así te puedes desentender de esta parte.

Los parámetros del comando anterior son muy sencillos de entender:

  • -i: el archivo de entrada que se va a emitir.
  • -re: que utilice el bitrate original de este archivo.
  • -acodec, -vcodec: el codec el audio y vídeo que se va a usar, que en este caso es simplemente copiar lo que haya en el vídeo original.
  • -f: el formato de salida, que para YouTube y la mayoría de los servicios de streaming es FLV.
  • Y finalmente la dirección del servidor de streaming que ya conocemos.

Emitir varios archivos secuencialmente

Un último detalle es que, si creamos un archivo .bat (o.sh en Linux/macOS) en el que metemos una línea como la anterior por cada archivo que queramos emitir, podremos emitirlos todos secuencialmente sin tener que preocuparnos: en cuanto se termine la emisión de uno se seguiré emitiendo el siguiente, y así hasta terminar todos.

Supercómodo y fácil de utilizar.

¡Espero que te resulte útil!

¿Este post te ha ayudado?, ¿has aprendido algo nuevo? Entonces, me niego a creer que no puedas donar ni 1€ a los que necesitan algo tan básico como comer. Por cada euro que pongas tú, yo pondré otro.
¡No pases de ellos! También es tu responsabilidad.
Vamos a ayudarlos juntos