FFmpeg Live Streaming sulla piattaforma Dacast per Linux

 

Siete interessati allo streaming su Dacast sotto Linux con ffmpeg? Questa guida fornisce una spiegazione passo passo per iniziare!
Per trasmettere su Dacast sotto Mac con ffmpeg, fare clic su qui.

Nota: questa guida copre le seguenti distribuzioni Linux:

  • Ubuntu 18.xx
  • Arch Linux

Requisiti:

È necessario compilare ffmpeg in modo da poter accedere al supporto RTMP attraverso la libreria librtmp.

Strumenti di sviluppo:

Prima di iniziare, assicuratevi di aver installato gli strumenti necessari per compilare ffmpeg, librtmp e le loro dipendenze.

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

Installazione:

1. librtmp

  1. Per prima cosa, recuperate il codice sorgente di librtmp sul repository git ufficiale.
    $ git clone git://git.ffmpeg.org/rtmpdump
  2. Quindi, sfogliare la cartella del repository locale ed eseguire il processo di compilazione.
    $ cd rtmpdump
    $ cd librtmp
    $ make
  3. Infine, installare la libreria nella directory principale del sistema.
    # DESTDIR=/usr make install

2. ffmpeg

Dipendenze

Potrebbe essere necessario recuperare alcune librerie aggiuntive, come i codec audio e video necessari per trasmettere i contenuti multimediali.

Ubuntu 18.xx

Si noti che è necessario compilare 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

Alcune dipendenze si trovano nel repository degli utenti di ArchLinux. Pertanto, è necessario prima recuperare il loro codice sorgente e poi compilare queste dipendenze manualmente.

È inoltre possibile automatizzare questo processo installando un utile strumento chiamato yaourt.
La guida all’installazione è disponibile a questo indirizzo: http://archlinux.fr/yaourt-en.

È possibile recuperare le dipendenze necessarie con i seguenti comandi:

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

Compilazione

  1. Recuperare il codice sorgente di ffmpeg sul suo repository git ufficiale:
    $ git clone https://github.com/FFmpeg/FFmpeg.git
  2. Navigare nella cartella del repository locale, quindi eseguire il processo di compilazione:
    $ 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. Installate ffmpeg nella directory principale del vostro sistema:
    # make install

Utilizzo

Aprite il vostro account Dacast e create un nuovo canale dalla pagina Live Stream.

Una volta creato, selezionare Impostazione encoder dalla scheda Generale:

Assicurarsi che sia selezionato Generic RTMP Encoder. Sono necessarie le seguenti credenziali:

Eseguire quindi il seguente 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"

Note importanti (leggere attentamente)

Nota 1: se le credenziali vengono rifiutate
È necessario aver seguito tutti i passaggi precedenti e la compilazione del manuale di librtmp, altrimenti non funzionerà: le credenziali verranno rifiutate dal server.

Nota 2: errore comune
Un errore ricorrente nell’uso di fdk aac è che, durante il processo di installazione, è necessario inserire “–enable-fdk-aac” ma quando lo si usa nel comando è: “-c:a libfdk_aac“.

Nota 3: inserire il percorso della sorgente
Si desidera sostituire

-f lavfi -i testsrc

con

-i /your_source_path

In caso contrario, si avrà solo la schermata di prova (come mostrato di seguito) e non il live stream. Se non si è sostituito “-f lavfi -i testsrc” con “-i /il vostro percorso sorgente”, si vedrà la seguente schermata di test:

ffmpeg

Nota 4: aumentare il buffer per una riproduzione più fluida
Se la riproduzione non è abbastanza fluida, è possibile aumentare le dimensioni del buffer sostituendolo:

-b 900k

con

-bufsize 3000k

Il comando avrà il seguente aspetto:

$ ffmpeg -re -i /vostro_percorso_fonte -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: migliore qualità per sistemi potenti
Se si desidera una qualità migliore e il proprio sistema è sufficientemente potente, è possibile sostituire

-Preset ultraveloce

con

-Preselezione veloce

Il comando avrà il seguente aspetto:

$ ffmpeg -re -i /vostro_percorso_fonte -c:v libx264 -b:v 1600k -preset veloce

-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: latenza minima per un sistema molto potente
Se l’obiettivo è ottenere la latenza più bassa e si dispone di un sistema molto potente, si può aggiungere al comando iniziale quanto segue:

-sintonizzare la zerolatenza

Il comando avrà il seguente aspetto:

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

Non esitate a contattare direttamente Dacast se avete bisogno di ulteriore supporto per questo processo.

 

Iniziare gratuitamente

Dacast Team