¿Estás interesado en hacer streaming en Dacast bajo Linux con ffmpeg? En esta guía encontrará una explicación paso a paso para empezar.
Para transmitir en Dacast en Mac con ffmpeg, haga clic aquí.
Nota: esta guía cubre las siguientes distribuciones de Linux:
- Ubuntu 18.xx
- Arch Linux
Requisitos:
Tendrás que compilar ffmpeg tú mismo para poder acceder al soporte RTMP a través de la librería librtmp.
Herramientas de desarrollo:
Antes de empezar, asegúrate de instalar las herramientas necesarias para compilar ffmpeg, librtmp y sus dependencias.
- Ubuntu 18.xx
$ sudo apt-get update $ sudo apt-get install build-essential git libssl-dev
- Arch Linux
# pacman -Sy base-devel git
Instalación:
1. librtmp
- En primer lugar, recupera el código fuente de librtmp en el repositorio oficial de git.
$ git clone git://git.ffmpeg.org/rtmpdump
- A continuación, vaya a la carpeta del repositorio local y ejecute el proceso de compilación.
$ cd rtmpdump $ cd librtmp $ make
- Por último, instale la biblioteca en el directorio raíz de su sistema.
# DESTDIR=/usr make install
2. ffmpeg
Dependencias
Es posible que necesites recuperar algunas bibliotecas adicionales, como los códecs de audio y vídeo necesarios para difundir tus contenidos multimedia.
Ubuntu 18.xx
Tenga en cuenta que tendrá que compilar manualmente libaacplus.
$ sudo apt-get install libfftw3-dev pkg-config autoconf automake libtool libtool-bin unzip $ wget http://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 --enable-shared --enable-static $ make $ 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
Arch Linux
Algunas dependencias se encuentran en el repositorio de usuarios de ArchLinux. Por lo tanto, primero debe recuperar su código fuente y luego compilar estas dependencias manualmente.
También tienes la opción de automatizar este proceso instalando una útil herramienta llamada yaourt.
Puede acceder a una guía de instalación en esta dirección: http://archlinux.fr/yaourt-en.
Puede recuperar las dependencias necesarias con los siguientes comandos:
# pacman -Sy yasm freetype2 lame opencore-amr openjpeg opus schroedinger speex libtheora libvorbis libvpx x264 xvidcore faac libfdk-aac $ yaourt libaacplus $ yaourt vo-aacenc
Compilación
- Recupera el código fuente de ffmpeg en su repositorio oficial git :
$ git clone https://github.com/FFmpeg/FFmpeg.git
- Vaya a la carpeta del repositorio local y ejecute 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
- Instale ffmpeg en el directorio raíz de su sistema:
# make install
Utilización
Abra su cuenta Dacast y cree un nuevo canal desde la página de retransmisión en directo.
Una vez creado, seleccione Encoder Setup en la pestaña General:
Asegúrese de que Generic RTMP Encoder está seleccionado. Necesitarás las siguientes credenciales:
A continuación, ejecute el siguiente comando:
$ ffmpeg -re -f lavfi -i testsrc -c:v libx264 -b:v 1600k -preset ultrafast -b 900k -c:a libfdk_aac -b:a 128k -s 1920x1080 -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"
Notas importantes (léalas atentamente)
Nota 1: si tus credenciales son rechazadas
Debes haber seguido todos los pasos anteriores y la compilación del manual de librtmp o esto no funcionará: tus credenciales serán rechazadas por el servidor.
Nota 2: error común
Un error tipográfico recurrente en el uso de fdk aac es que, durante el proceso de instalación, es necesario introducir “–enable-fdk-aac” pero cuando se utiliza en el comando es: “-c:a libfdk_aac“
Nota 3: introduzca su ruta de origen
Desea sustituir
-f lavfi -i testsrc
con
-i /your_source_path
De lo contrario, sólo tendrás la pantalla de prueba (como se muestra a continuación), no tu transmisión en directo. Si no ha sustituido “-f lavfi -i testsrc” por “-i /su ruta de origen”, verá la siguiente pantalla de prueba:
Nota 4: aumentar el búfer para una reproducción más fluida
Si la reproducción no es lo suficientemente fluida, puedes aumentar el tamaño del búfer sustituyéndolo:
-b 900k
con
-bufsize 3000k
Tu comando tendrá este aspecto:
$ ffmpeg -re -i /su_ruta_de_fuente -c:v libx264 -b:v 1600k -preset ultrafast -bufsize 3000k
-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″
Nota 5: mejor calidad para sistemas potentes
Si desea una mejor calidad y su sistema es lo suficientemente potente, puede sustituir
-preselección ultrarrápida
con
-preajuste rápido
Tu comando tendrá este aspecto:
$ ffmpeg -re -i /su_ruta_de_fuente -c:v libx264 -b:v 1600k -preset fast
-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″
Nota 6: latencia más baja para un sistema muy potente
Si tu objetivo es conseguir la latencia más baja y tienes un sistema muy potente, puedes añadir lo siguiente al comando inicial:
-ajustar zerolatencia
Tu comando tendrá este aspecto:
$ ffmpeg -re -i /your_source_path -c:v libx264 -b:v 1600k -preset ultrafast
-tune zerolatency -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″
No dude en ponerse en contacto directamente con Dacast si necesita más ayuda con este proceso.