FFmpeg Live Streaming en la plataforma Dacast para Linux

 

¿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

  1. En primer lugar, recupera el código fuente de librtmp en el repositorio oficial de git.
    $ git clone git://git.ffmpeg.org/rtmpdump
  2. A continuación, vaya a la carpeta del repositorio local y ejecute el proceso de compilación.
    $ cd rtmpdump
    $ cd librtmp
    $ make
  3. 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

  1. Recupera el código fuente de ffmpeg en su repositorio oficial git :
    $ git clone https://github.com/FFmpeg/FFmpeg.git
  2. 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
  3. 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:

ffmpeg

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.

 

Empiece gratis

Dacast Team