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
- Per prima cosa, recuperate il codice sorgente di librtmp sul repository git ufficiale.
$ git clone git://git.ffmpeg.org/rtmpdump
- Quindi, sfogliare la cartella del repository locale ed eseguire il processo di compilazione.
$ cd rtmpdump $ cd librtmp $ make
- 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
- Recuperare il codice sorgente di ffmpeg sul suo repository git ufficiale:
$ git clone https://github.com/FFmpeg/FFmpeg.git
- 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
- 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:
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.