FFmpeg Live Streaming sur la plateforme Dacast pour Linux

 

Êtes-vous intéressé par la diffusion en continu sur Dacast sous Linux avec ffmpeg ? Ce guide fournit une explication étape par étape pour vous aider à démarrer !
Pour diffuser sur Dacast sous Mac avec ffmpeg, cliquez ici.

Note : ce guide couvre les distributions Linux suivantes :

  • Ubuntu 18.xx
  • Arch Linux

Exigences :

Vous devrez compiler ffmpeg vous-même afin de pouvoir accéder au support RTMP via la bibliothèque librtmp.

Outils de développement :

Avant de commencer, assurez-vous d’installer les outils nécessaires pour compiler ffmpeg, librtmp et leurs dépendances.

  • Ubuntu 18.xx
    $ sudo apt-get update
    $ sudo apt-get install build-essential git libssl-dev
  • Arch Linux
    # pacman -Sy base-devel git

Installation :

1. librtmp

  1. Tout d’abord, récupérez le code source de librtmp sur le dépôt git officiel.
    $ git clone git://git.ffmpeg.org/rtmpdump
  2. Ensuite, naviguez jusqu’au dossier du dépôt local, puis exécutez le processus de compilation.
    $ cd rtmpdump
    $ cd librtmp
    $ make
  3. Enfin, installez la bibliothèque dans le répertoire racine de votre système.
    # DESTDIR=/usr make install

2. ffmpeg

Dépendances

Il se peut que vous deviez récupérer des bibliothèques supplémentaires, telles que les codecs audio et vidéo nécessaires à la diffusion de votre contenu multimédia.

Ubuntu 18.xx

Veuillez noter que vous devrez compiler manuellement 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

Certaines dépendances sont situées dans le dépôt utilisateur d’ArchLinux. Par conséquent, vous devez d’abord récupérer leur code source et ensuite compiler ces dépendances manuellement.

Vous avez également la possibilité d’automatiser ce processus en installant un outil utile appelé yaourt.
Vous pouvez accéder à un guide d’installation à l’adresse suivante : http://archlinux.fr/yaourt-en.

Vous pouvez récupérer les dépendances requises à l’aide des commandes suivantes :

# pacman -Sy yasm freetype2 lame opencore-amr openjpeg opus 
schroedinger speex libtheora libvorbis libvpx x264 xvidcore 
faac libfdk-aac
$ yaourt libaacplus
$ yaourt vo-aacenc

Compilation

  1. Récupérer le code source de ffmpeg sur leur dépôt git officiel :
    $ git clone https://github.com/FFmpeg/FFmpeg.git
  2. Naviguez jusqu’au dossier du référentiel local, puis exécutez le processus de compilation :
    $ 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. Installez ffmpeg dans le répertoire racine de votre système :
    # make install

Utilisation

Ouvrez votre compte Dacast et créez une nouvelle chaîne à partir de la page Live Stream.

Une fois créé, sélectionnez Encoder Setup (Configuration de l’encodeur) dans l’onglet General (Général) :

Assurez-vous que Generic RTMP Encoder est sélectionné. Vous aurez besoin des informations d’identification suivantes :

Exécutez ensuite la commande suivante :

$ 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"

Notes importantes (à lire attentivement)

Note 1 : si vos identifiants sont rejetés
Vous devez avoir suivi toutes les étapes ci-dessus et la compilation manuelle de librtmp, sinon cela ne fonctionnera pas : vos identifiants seront rejetés par le serveur.

Note 2 : erreur commune
Une erreur récurrente dans l’utilisation de fdk aac est que, pendant le processus d’installation, vous devez entrer “–enable-fdk-aac” mais quand vous l’utilisez dans la commande, c’est : “-c:a libfdk_aac

Note 3 : insérez votre chemin d’accès à la source
Vous souhaitez remplacer

-f lavfi -i testsrc

avec

-i /your_source_path

Sinon, vous n’aurez que l’écran de test (comme indiqué ci-dessous), et non votre flux en direct. Si vous n’avez pas remplacé “-f lavfi -i testsrc” par “-i /votre chemin source”, vous verrez l’écran de test suivant :

ffmpeg

Note 4 : augmenter la mémoire tampon pour une lecture plus fluide
Si la lecture n’est pas assez fluide, vous pouvez augmenter la taille de votre mémoire tampon en la remplaçant :

-b 900k

avec

-bufsize 3000k

Votre commande ressemblera à ceci :

$ ffmpeg -re -i /votre_chemin_source -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″

Note 5 : meilleure qualité pour les systèmes puissants
Si vous souhaitez une meilleure qualité et que votre système est suffisamment puissant, vous pouvez remplacer les éléments suivants

-présélectionné ultra-rapide

avec

-présélection rapide

Votre commande ressemblera à ceci :

$ ffmpeg -re -i /votre_chemin_source -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″

Note 6 : latence la plus faible pour un système très puissant
Si votre objectif est d’obtenir la latence la plus faible et que vous disposez d’un système très puissant, vous pouvez ajouter ce qui suit à la commande initiale :

-tune zerolatency

Votre commande ressemblera à ceci :

$ ffmpeg -re -i /votre_chemin_source -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″

N’hésitez pas à prendre contact directement avec Dacast si vous avez besoin d’une aide supplémentaire dans le cadre de ce processus.

 

Commencez gratuitement

Dacast Team