Está interessado em fazer streaming no Dacast em Linux com o ffmpeg? Este guia fornece uma explicação passo a passo para o ajudar a começar!
Para transmitir no Dacast em Mac com ffmpeg, clique aqui.
Nota: este guia abrange as seguintes distribuições Linux:
- Ubuntu 18.xx
- Arch Linux
Requisitos:
Terá de compilar o ffmpeg para poder aceder ao suporte RTMP através da biblioteca librtmp.
Ferramentas de desenvolvimento:
Antes de começar, certifique-se de que instala as ferramentas necessárias para compilar ffmpeg, librtmp e as suas dependências.
- Ubuntu 18.xx
$ sudo apt-get update $ sudo apt-get install build-essential git libssl-dev
- Arch Linux
# pacman -Sy base-devel git
Instalação:
1. librtmp
- Primeiro, recupere o código-fonte do librtmp no repositório oficial do git.
$ git clone git://git.ffmpeg.org/rtmpdump
- Em seguida, navegue até à pasta do repositório local e execute o processo de compilação.
$ cd rtmpdump $ cd librtmp $ make
- Finalmente, instale a biblioteca no diretório raiz do seu sistema.
# DESTDIR=/usr make install
2. ffmpeg
Dependências
Poderá ser necessário obter algumas bibliotecas adicionais, tais como os codecs de áudio e vídeo necessários para transmitir o seu conteúdo multimédia.
Ubuntu 18.xx
Tenha em atenção que terá de compilar manualmente a 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
Algumas dependências estão localizadas no Repositório de Usuários do ArchLinux. Portanto, você deve primeiro obter seu código-fonte e então compilar essas dependências manualmente.
Também tem a opção de automatizar este processo, instalando uma ferramenta útil chamada yaourt.
Pode aceder a um guia de instalação no seguinte endereço: http://archlinux.fr/yaourt-en.
Pode obter as dependências necessárias com os seguintes 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
Compilação
- Obter o código fonte do ffmpeg no seu repositório oficial git :
$ git clone https://github.com/FFmpeg/FFmpeg.git
- Navegue até à pasta do repositório local e, em seguida, execute o processo de compilação:
$ 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
- Instale o ffmpeg no diretório raiz do seu sistema:
# make install
Utilização
Abra a sua conta Dacast e crie um novo canal a partir da página de transmissão em direto.
Uma vez criado, seleccione Configuração do codificador no separador Geral:
Certifique-se de que o codificador RTMP genérico está selecionado. Necessitará das seguintes credenciais:
Em seguida, execute o seguinte 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 (ler atentamente)
Nota 1: se as suas credenciais forem rejeitadas
Deve ter seguido todos os passos acima e a compilação manual do librtmp ou isto não vai funcionar: as suas credenciais serão rejeitadas pelo servidor.
Nota 2: erro comum
Um erro de digitação recorrente na utilização do fdk aac é que, durante o processo de instalação, é necessário introduzir “–enable-fdk-aac“, mas quando o utiliza no comando é: “-c:a libfdk_aac“
Nota 3: insira o seu caminho de origem
Pretende-se substituir
-f lavfi -i testsrc
com
-i /your_source_path
Caso contrário, terá apenas o ecrã de teste (como mostrado abaixo) e não a transmissão em direto. Se não tiver substituído “-f lavfi -i testsrc” por “-i /seu caminho de origem”, verá o seguinte ecrã de teste:
Nota 4: aumentar a memória intermédia para uma reprodução mais suave
Se a reprodução não for suficientemente suave, pode aumentar o tamanho da memória intermédia substituindo-a:
-b 900k
com
-tamanho do buffer 3000k
O seu comando terá o seguinte aspeto:
$ ffmpeg -re -i /seu_caminho_de_origem -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: melhor qualidade para um sistema potente
Se pretender uma melhor qualidade e o seu sistema for suficientemente potente, pode substituir
-preset ultrarrápido
com
-pré-definição rápida
O seu comando terá o seguinte aspeto:
$ ffmpeg -re -i /seu_caminho_de_origem -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(compatível;20FMSc/1.0) live=true pubUser=123456 pubPasswd=789123
playpath=dclive_1_1@246802″
Nota 6: latência mais baixa para um sistema muito potente
Se o seu objetivo é obter a latência mais baixa e tem um sistema muito potente, pode acrescentar o seguinte ao comando inicial:
-tune zerolatency
O seu comando terá o seguinte aspeto:
$ ffmpeg -re -i /seu_caminho_de_origem -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(compatível;20FMSc/1.0) live=true pubUser=123456 pubPasswd=789123
playpath=dclive_1_1@246802″
Não hesite em contactar diretamente a Dacast se necessitar de mais apoio neste processo.