Ê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
- 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
- Ensuite, naviguez jusqu’au dossier du dépôt local, puis exécutez le processus de compilation.
$ cd rtmpdump $ cd librtmp $ make
- 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
- Récupérer le code source de ffmpeg sur leur dépôt git officiel :
$ git clone https://github.com/FFmpeg/FFmpeg.git
- 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
- 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 :
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.