FFmpeg Live Streaming – Lo que los locutores profesionales necesitan saber [2024 Update]
Muchas emisoras profesionales utilizan software de transmisión de vídeo en directo además de sus plataformas de vídeo en línea. El software de transmisión de vídeo suele proporcionar herramientas para codificar, transcodificar, añadir efectos en pantalla y mucho más.
Si buscas una herramienta ligera y sin florituras para la producción de retransmisiones en directo y otras tareas de vídeo, FFmpeg puede ser lo mejor para ti. Puedes utilizar FFmpeg para crear flujos rtmp.
Esta herramienta rica en funciones está diseñada principalmente para locutores avanzados.
Para ayudar a reducir la curva de aprendizaje, hemos elaborado esta guía para desglosar algunos de los códigos y funciones disponibles en FFmpeg.
Este tutorial de FFmpeg te ayudará a entender cómo funciona.
En este post, veremos cómo configurar FFmpeg en Linux, Mac y Windows, y cómo utilizar los protocolos disponibles de FFmpeg para retransmitir en directo. También proporcionaremos un breve tutorial sobre cómo utilizar el software con nuestra propia plataforma de streaming en directoEstetutorial de FFmpeg cubrirá todo lo que necesitas saber para utilizar FFmpeg para streaming.
Entremos de lleno en los fundamentos de la retransmisión en directo con FFmpeg y sus útiles herramientas.
Índice de contenidos:
- ¿Qué es FFmpeg?
- ¿Qué puedes hacer con FFmpeg?
- Cómo funcionan las herramientas de retransmisión en directo de FFmpeg
- Cómo descargar y configurar FFmpeg
- Cómo usar FFmpeg para retransmitir en directo
- Cómo transmitir en directo con FFmpeg y Dacast
- Preguntas frecuentes
- Conclusión
¿Qué es FFmpeg?
¿Qué es FFmpeg? FFmpeg es un software de streaming diseñado para convertir, grabar, empalmar, editar, reproducir, codificar, muxing/demuxing y transmitir archivos multimedia. Funciona con archivos de audio, imágenes y vídeo en básicamente cualquier códec o formato utilizado en los últimos 20 años.
FFmpeg es gratuito y de código abierto, lo que significa que cualquiera puede descargar el programa sin coste alguno. Los desarrolladores también pueden integrar el comando FFmpeg en otros proyectos. Este programa es una utilidad de línea de comandos, lo que significa que FFmpeg no está construido en torno a una Interfaz Gráfica de Usuario (GUI)
.
Instead, it’s an application that accepts commands via “command-line interfaces” (CLI) lo que significa que se requiere un poco de conocimiento técnico.
Si alguna vez has utilizado un ordenador basado en Unix, como Linux o macOS, es posible que hayas utilizado la aplicación “terminal”.
En Windows, MS-DOS y el más moderno “Powershell” proporcionan una interfaz de línea de comandos.
Los usuarios avanzados, los administradores de sistemas, los desarrolladores y otras personas que trabajan con código complejo suelen preferir una CLI.
A menudo, las herramientas de administración del sistema sólo están disponibles a través de la CLI.
Las secuencias de comandos, la automatización y otras tareas avanzadas suelen ser más fáciles a través de la CLI.
Así pues, FFmpeg sirve a este público proporcionando herramientas multimedia desde la línea de comandos.
Los programas FFmpeg requieren unos pocos conocimientos de programación.
¿Qué puedes hacer con FFmpeg?
FFmpeg tiene una amplia gama de capacidades para la transmisión de vídeo en directo. Algunas de las capacidades de transmisión de vídeo de FFmpeg son:
- Agnóstico en cuanto a formato y códec: FFmpeg transcodifica entre distintos formatos y códecs de vídeo y audio.
Esto garantiza la compatibilidad con diversas plataformas de streaming y dispositivos de reproducción. - Optimización del flujo: FFmpeg proporciona un control granular sobre la tasa de bits de los flujos de audio y vídeo.
Esto te permite optimizar el flujo para limitaciones específicas de ancho de banda o dispositivos del público objetivo. - Manipulación de audio: FFmpeg ofrece un sólido conjunto de herramientas de edición de audio dentro del flujo de trabajo de la transmisión en directo.
Puedes ajustar los niveles de volumen, eliminar pistas de audio no deseadas o integrar una fuente de audio externa con tu señal de vídeo en directo. - Tratamiento de vídeo: FFmpeg va más allá del simple streaming.
Puedes aprovechar sus capacidades de procesamiento de vídeo para recortar, escalar o rotar tu señal de vídeo en directo en tiempo real. - Versatilidad de la fuente de entrada: FFmpeg puede ingerir secuencias de vídeo en directo de una amplia gama de fuentes, como cámaras web, tarjetas de captura e incluso secuencias de red. Convierte entre distintos formatos de archivo y códecs (es decir, codifica)
Por lo tanto, con FFmpeg, los usuarios pueden hacer lo siguiente:
- Ajusta el bitrate (tanto de audio como de vídeo)
- Ajustar el volumen, eliminar el audio y/o fusionar un archivo de audio con un archivo de vídeo
- Reasignar una fuente de audio mono a canales estéreo
- Recortar, escalar o girar un archivo de vídeo
- Grabación de la entrada de una webcam u otra fuente de vídeo
- Transmitir en directo una señal de vídeo
Cuando se trata de multimedia, no hay mucho que el servidor de streaming FFmpeg no pueda hacer. La transmisión en directo y la creación de vídeo con el comando FFmpeg es muy variada, y te permite hacer casi todo lo que quieras a un vídeo.
Si has utilizado programas de edición de imágenes, edición de vídeo o edición de audio, probablemente hayas utilizado FFmpeg alguna vez. Dada su naturaleza gratuita y de código abierto, muchas otras aplicaciones con una interfaz gráfica de usuario utilizan FFmpeg para proporcionar procesamiento backend. Podrías haber trabajado fácilmente con el servidor de streaming FFmpeg online sin saberlo. Es importante destacar que FFmpeg NO es un codificador para principiantes que quieran emitir streams en directo. Los nuevos difusores estarían mejor empezando con codificadores gratuitos disponibles, como OBS Studio. También podrían plantearse invertir en opciones de software de codificación de pago, como Wirecast, vMix y VidBlasterX FFmpeg es para personas con conocimientos más avanzados de codificación y emisión.
Cómo funcionan las herramientas de retransmisión en directo de FFmpeg
En cuanto a transmisión de vídeo en directo FFmpeg ofrece una variedad relativamente amplia de herramientas.
FFmpeg admite muchas entradas de vídeo y audio accesibles a tu ordenador.
Entre ellas están las cámaras web, los micrófonos USB y las cámaras que se conectan mediante tarjetas de captura.
Además, puedes especificar un archivo de salida como un flujo RTMP de FFmpeg dirigido a tu plataforma de streaming. FFmpeg aceptará tu información de acceso para permitirte transmitir a este destino. Esto proporciona una sencilla funcionalidad de streaming en directo con interfaz de línea de comandos. En este caso, FFmpeg actúa como el software de codificación en directo. Puedes utilizar FFmpeg para retransmitir en directo.
Una aplicación importante de FFmpeg La retransmisión en tiempo real tiene que ver con la mezcla de una producción en directo compleja. Para esta función, puede que quieras tener un ordenador potente dedicado a capturar las señales de varias cámaras. Necesitas mucha potencia de procesamiento para mezclar producciones en directo complejas. Un ingeniero situado en esta cámara mezcla entonces el contenido de vídeo en tiempo real. A continuación, el ingeniero puede enviar una señal a otro ordenador que ejecute FFmpeg. Este ordenador, a su vez, puede emitir secuencias en directo como resultado final , haciendo posible la codificación y el streaming en tiempo real con FFmpeg.
Esta configuración divide eficazmente la carga de procesamiento entre varias máquinas.
Cómo descargar y configurar FFmpeg
Para utilizar FFmpeg para retransmitir en directo, primero debes descargar el software.
La forma más fácil de descargar FFmpeg es desde directamente en el sitio web.
La instalación tendrá un aspecto diferente según el sistema operativo que utilices.
Aquí tienes un breve tutorial para configurar FFmpeg en Linux, macOS y Windows.
1. Instalación de Linux
La página Sitio web de FFmpeg tiene paquetes Linux para Debian, Ubuntu, Fedora y Red Hat Enterprise Linux.
Muchos otros distros deberían poder instalar FFmpeg fácilmente utilizando su variante de ubicación del comando instalar.
Por ejemplo
sudo apt-get install ffmpeg
Sin embargo, recomendamos compilar FFmpeg tú mismo porque este enfoque te permite transmitir vídeos RTMP a través de la biblioteca librtmp. Para ello, utilizaremos Ubuntu como distro de ejemplo.
Para empezar, ejecuta los siguientes comandos:
$ sudo apt-get update
$ sudo apt-get install build-essential git libssl-dev
A continuación, recupera el código fuente de librtmp en el repositorio git oficial.
$ git clone git://git.ffmpeg.org/rtmpdump
A continuación, navega por la carpeta del repositorio local.
Una vez allí, ejecuta el proceso de compilación.
$ cd rtmpdump
$ cd librtmp
$ make
A continuación, instala la biblioteca en el directorio raíz de tu sistema.
# DESTDIR=/usr make install
Después, tienes que instalar y compilar manualmente libaacplus.
También necesitas instalar otras dependencias.
En este punto, ejecutarás los siguientes comandos:
$ sudo apt-get install libfftw3-dev pkg-config autoconf automake libtool unzip
$ wget https://tipok.org.ua/downloads/media/aacplus/libaacplus/libaacplus-2.0.2.tar.gz
$ tar -xzf libaacplus-2.0.2.tar.gz
$ cd libaacplus-2.0.2
$ ./autogen.sh –habilitar-compartido –habilitar-estático
$ hacer
$ sudo make install
$ sudo ldconfig
# apt-get install yasm libfaac-dev libfdk-aac-dev libfreetype6-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libopenjpeg-dev libopus-dev libschroedinger-dev libspeex-dev libtheora-dev libvo-aacenc-dev libvorbis-dev libvpx-dev libx264-dev libxvidcore-dev
Ahora, recuperarás el código fuente de ffmpeg del repositorio git oficial:
$ git clone https://github.com/FFmpeg/FFmpeg.git
Busca la carpeta del repositorio local y ejecuta el proceso de compilación:
$ cd FFmpeg
$ ./configure –enable-gpl –enable-version3 –enable-nonfree –enable-postproc –enable-libaacplus –enable-libfaac –enable-libfdk-aac –enable-libfreetype –enable-libmp3lame –enable-libopencore-amrnb –enable-libopencore-amrwb –enable-libopenjpeg –enable-openssl –enable-libopus –enable-libschroedinger –enable-libspeex –enable-libtheora –enable-libvo-aacenc –enable-libvorbis –enable-libvpx –enable-libx264 –enable-libxvid –prefix=/usr/local –enable-librtmp
$ make
Por último, utiliza este código para instalar ffmpeg en el directorio raíz de tu sistema:
# make install
2. Instalación en macOS
Al igual que con Linux, recomendamos macOS compilar una versión personalizada de FFmpeg.
Puedes hacerlo con la ayuda del gestor de paquetes Brew.
También necesitarás instalar herramientas de línea de comandos.
Para configurar estas dependencias, utiliza los siguientes comandos en la aplicación “Terminal”, y luego sigue las indicaciones que puedan aparecer:
xcode-select –instalar
/usr/bin/ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)”
Una vez que hayas configurado las herramientas de la línea de comandos y Brew, estarás listo para instalar FFmpeg.
Utiliza los siguientes comandos en tu terminal:
Primero, instala librtmp con brew:
brew install librtmp
Luego, instala libx264 con brew:
brew install libx264
A continuación, instala libfdk-aac con brew:
brew install fdk-aac
Por último, instala FFmpeg con todas las librerías específicas:
brew install ffmpeg –enable-libfdk-aac –with-x264 –with-rtmpdump
3. Instalación en Windows:
Los usuarios de Windows pueden instalar FFmpeg utilizando paquetes preconstruidos en la página “Builds” del sitio web de sitio web de FFmpeg.
Cómo usar FFmpeg para retransmitir en directo
Para empezar a retransmitir en directo con FFmpeg, tienes que descargar e instalar el software en tu ordenador.
Puedes elegir el método de instalación adecuado para tu sistema operativo entre las tres opciones anteriores de este tutorial de FFmpeg.
En este punto, también puedes crear un canal de streaming en tu plataforma de alojamiento de vídeos.
Una vez instalado FFmpeg en tu ordenador, es hora de conectarlo a tu solución de alojamiento de vídeo. Puedes conectar FFmpeg como codificador. Tu gestor de alojamiento de vídeo te proporcionará las credenciales para introducirlas en FFmpeg.
Estas credenciales se encuentran normalmente en la sección de configuración del codificador de tu canal de streaming en tu plataforma de alojamiento de vídeo, e incluyen el nombre de usuario, la contraseña, el nombre del stream y la URL del stream.
A partir de ahí, tendrás que introducir las credenciales en FFmpeg.
Tendrás que pegar el siguiente fragmento de código en el editor de texto o CLI:
$ ffmpeg -re -f lavfi -i testsrc -c:v libx264 -b:v 1600k -preset ultrafast -b 900k -c:a libfdk_aac -b:a 128k -s 1920×1080 -x264opts keyint=50 -g 25 -pix_fmt yuv420p -f flv “rtmp://p.ep246802.i.akamaientrypoint.net/EntryPoint flashver=FMLE/3.020(compatible;20FMSc/1.0) live=true pubUser=123456 pubPasswd=789123 playpath=dclive_1_1@246802”
Tendrás que sustituir el texto “rtmp://…” por el enlace URL de tu secuencia, poner “pubUser” a tu nombre de usuario, “pubPasswd” a tu contraseña y “playpath” a tu nombre de secuencia.
Cuando ejecutes este comando, comenzarás una transmisión en directo x264 con una resolución de 480p (reducida de 1080p HD) a una tasa de bits de 1600 kbps, con un búfer de 900kb.
Notas importantes sobre FFmpeg Live Streaming
Aquí tienes otras cosas que debes tener en cuenta al retransmitir en directo con FFmpeg:
- También debes sustituir “-f lavfi -i testsrc” por “-i” y luego la fuente de alimentación de tu propia cámara u otro programa (-i /tu_ruta_de_fuente).
De lo contrario, no tendrás tu transmisión en directo, sino sólo la pantalla de prueba. - Un error tipográfico recurrente en el uso de fdk aac durante el proceso de instalación, tienes que introducir “-enable-fdk-aac” pero cuando lo usas en el comando es “-c:a libfdk_aac”
- Para mejorar la calidad, puedes cambiar la bandera “preestablecida” a “rápido” en lugar de “ultrarrápido”.
- Si quieres una latencia baja, puedes añadir la bandera “-ajustar zerolatencia” directamente después de la bandera de preajuste.
Ambos comandos requieren una potencia de procesamiento adicional. - Para aumentar el tamaño del búfer y conseguir una reproducción más suave, sustituye “-b 900k” por “-buffsize 3000k”.
- Asegúrate de que utilizas los mejores ajustes para ti.
Esto incluye ajustar las velocidades de bits de vídeo y audio según tu conexión a Internet, resoluciones coherentes con esas velocidades de bits, e intervalos de fotogramas clave a 2s.
Consulta nuestras guías dedicadas para utilizar FFMPEG con Dacast en Linux y Mac.
Cómo transmitir en directo con FFmpeg y Dacast
Una vez que hayas descargado y configurado FFmpeg, estarás listo para emitir una secuencia en directo a través de Dacast.
Te ofrecemos carga segura de vídeos y muchas otras funciones para que la retransmisión en directo sea accesible a todo tipo de retransmisores. Veamos los tres pasos para configurar
FFmpeg para retransmitir en directo a través de Dacast.
Este es un sencillo tutorial de FFmpeg para trabajar con Dacast.
1. Abre la Configuración del codificador de Dacast
En primer lugar, tienes que reunir la información de configuración del codificador de tu cuenta Dacast.
En un navegador web, visita el sitio web de Dacast e inicia sesión en tu cuenta.
Haz clic en (o crea) el canal en directo en el que deseas hacer streaming y, a continuación, haz clic en “Configuración del codificador”.
Selecciona “Otro codificador RTMP” en la parte izquierda de la pantalla.
2. Encuentra tus credenciales
En la parte derecha de la pantalla, copia estos datos: Nombre de usuario, Contraseña, URL del flujo y Nombre del flujo.
3. Ejecuta el siguiente comando
A continuación, copia el comando en un editor de texto o directamente en tu CLI como describimos en el tutorial general de FFmpeg más arriba.
Asegúrate de introducir correctamente la URL de tu secuencia, el nombre de usuario, la contraseña y el nombre de la secuencia.
De nuevo, el comando debe tener este aspecto
$ ffmpeg -re -f lavfi -i testsrc -c:v libx264 -b:v 1600k -preset ultrafast -b 900k -c:a libfdk_aac -b:a 128k -s 1920×1080 -x264opts keyint=50 -g 25 -pix_fmt yuv420p -f flv “rtmp://[STREAM URL] flashver=FMLE/3.020(compatible;20FMSc/1.0) live=true pubUser=[LOGIN]contraseña=[PASSWORD]playpath=[STREAM NAME]
Una vez insertado ese comando, deberías estar listo para transmitir.
Consulta nuestra guía de configuración del codificador para obtener un tutorial más detallado sobre la configuración de FFmpeg y otros programas similares con Dacast.
Preguntas frecuentes
1. ¿Puedes hacer streaming de vídeo con FFmpeg?
Sí.
FFmpeg se puede utilizar para transmitir vídeo.
Admite varios formatos de entrada y puede emitir el flujo de vídeo en varios formatos como RTMP, HLS, MPEG-TS, etc. para transmitir a plataformas como YouTube, Facebook, Twitch, etc.
2. ¿Puede FFmpeg transcodificar la transmisión en directo?
Sí, FFmpeg puede utilizarse para transcodificar el flujo en directo.
Esto es especialmente útil cuando el flujo de vídeo o audio de entrada no se ajusta a las especificaciones requeridas por la plataforma de streaming.
FFmpeg puede tomar la entrada en directo, descodificarla y, a continuación, recodificarla con el códec de vídeo adecuado, la tasa de bits y otros parámetros necesarios para el servicio de streaming de destino.
Este proceso ocurre en tiempo real, lo que permite a FFmpeg codificar en tiempo real el flujo transcodificado al servidor de flujo de FFmpeg para su emisión.
3. ¿Qué tasa de bits transmite FFmpeg?
La tasa de bits utilizada para la transmisión de ffmpeg puede configurarse en función de los requisitos específicos de la plataforma de transmisión y del ancho de banda de red disponible.
FFmpeg proporciona opciones para configurar la tasa de bits de vídeo y la tasa de bits de audio para conseguir la calidad de salida deseada.
Los rangos típicos de bitrate para el flujo de vídeo ffmpeg pueden ser:
- Vídeo: 1500-6000 kbps para 720p, 3000-8000 kbps para 1080p
- Audio: 128-256 kbps
Basándote en la guía de streaming de FFmpeg, puedes experimentar con diferentes ajustes de bitrate para encontrar el equilibrio adecuado entre calidad y uso de ancho de banda para tu caso de uso específico.
4. ¿Es compatible el servidor de streaming FFmpeg con RTMP?
Sí, FFmpeg es compatible con el protocolo RTMP, muy utilizado en las aplicaciones ffmpeg rtmp stream y ffmpeg broadcast.
FFmpeg puede tanto consumir flujos RTMP como entrada como emitir flujos RTMP para su entrega a plataformas de streaming.
Esto convierte a FFmpeg en una versátil solución de servidor de streaming ffmpeg, que permite a los usuarios ingerir contenidos de diversas fuentes, transcodificarlos si es necesario y, a continuación, enviar el flujo final al servicio de streaming basado en RTMP de destino.
5. ¿Qué formatos de salida de FFmpeg hay disponibles?
FFmpeg admite varios formatos de salida para secuencias de vídeo y audio.
Los formatos contenedores de vídeo más populares son MP4 (H.264), MOV (H.264), FLV (utilizado habitualmente para streaming RTMP) y MKV.
Los formatos de audio incluyen AAC, MP3 y FLAC.
Conclusión
FFmpeg es un poco complejo, ya que utiliza una interfaz de línea de comandos, pero no se puede negar que este potente software es muy útil en la situación adecuada y con los conocimientos adecuados. Esperamos que este artículo tutorial sobre FFmpeg te haya proporcionado las herramientas y la confianza necesarias para utilizar FFMPEG para retransmitir en directo streams. Para recibir regularmente consejos sobre retransmisiones en directo y ofertas exclusivas, te invitamos a unirte a nuestro grupo de LinkedIn. ¿Estás buscando una plataforma de streaming en directo y alojamiento de vídeo para respaldar tus proyectos de retransmisión en directo? Si es así, ¿por qué no pruebas Dacast? Ofrecemos una prueba gratuita de 14 días (sin necesidad de tarjeta de crédito), ¡y nos encantaría configurarte para que pruebes todas nuestras funciones hoy mismo!
Gracias por leer y ¡suerte con tus retransmisiones en directo!