Com instal·lar FFmpeg a Linux


FFmpeg és un dels millors marcs multimèdia que conté diverses eines per a diferents tasques. Per exemple, ffplay és un reproductor multimèdia portàtil que es pot utilitzar per reproduir fitxers d'àudio/vídeo, ffmpeg pot convertir entre diferents formats de fitxer, ffserver es pot utilitzar per transmetre emissions en directe i ffprobe és capaç d'analitzar el flux multimèdia.

Aquest marc és realment potent a causa de la diversitat d'eines disponibles, que proporcionen la millor solució tècnica per a l'usuari. Segons la descripció de FFmpeg al lloc web oficial, la raó de tenir un marc multimèdia tan fantàstic és la combinació de les millors opcions de programari lliure disponibles.

El framework FFmpeg ofereix una alta seguretat i la raó d'això és la serietat dels desenvolupadors quan revisen el codi, sempre es fa tenint en compte la seguretat.

Estic molt segur que trobareu aquest marc molt útil quan us agradaria fer streaming o gravació d'àudio i vídeo digital. Hi ha moltes altres coses pràctiques que podeu fer amb l'ajuda del marc FFmpeg, com ara convertir el vostre fitxer wav a un mp3, codificar i descodificar els vostres vídeos o fins i tot escalar-los.

Segons el lloc web oficial, FFmpeg és capaç de fer el següent.

  • descodificar fitxers multimèdia
  • codificar fitxers multimèdia
  • transcodificar fitxers multimèdia
  • mux fitxers multimèdia
  • Descomprimir fitxers multimèdia
  • Transmetre fitxers multimèdia
  • filtreu fitxers multimèdia
  • reprodueix fitxers multimèdia

Permeteu-me posar un exemple, molt senzill. L'ordre següent convertirà el vostre fitxer mp4 en un fitxer avi, tan senzill com això.

# ffmpeg -i Lone_Ranger.mp4 Lone_Ranger.avi

L'ordre anterior només és útil per a l'explicació, no es recomana utilitzar-lo a la pràctica perquè el còdec, la taxa de bits i altres especificacions no es declaren.

A la següent part, practicarem amb algunes de les eines del marc multimèdia FFmpeg, però abans de fer-ho haurem d'instal·lar-les a la nostra caixa de Linux.

Com instal·lar FFmpeg Multimedia Framework a Linux

Com que els paquets FFmpeg s'ofereixen per a les distribucions de Linux més utilitzades i la instal·lació serà relativament fàcil. Comencem amb la instal·lació del marc FFmpeg a les distribucions basades en Ubuntu.

Instal·laré FFmpeg des dels repositoris predeterminats. Obriu un terminal nou (CTRL+ALT+T) i, a continuació, executeu les ordres següents.

$ sudo apt update
$ sudo apt install ffmpeg
$ ffmpeg -version

El paquet FFmpeg s'inclou als dipòsits oficials de Debian i es pot instal·lar mitjançant el gestor de paquets tal com es mostra.

$ sudo apt update
$ sudo apt install ffmpeg
$ ffmpeg -version

Per instal·lar FFmpeg a les distribucions CentOS i RHEL, heu d'habilitar el repositori EPEL i RPM Fusion al sistema mitjançant les ordres següents.

Per instal·lar i habilitar EPEL, utilitzeu l'ordre següent.

# yum install epel-release

Per instal·lar i habilitar RPM Fusion, utilitzeu l'ordre següent a la vostra versió de distribució.

-------------- On CentOS & RHEL 8.x -------------- 
# yum localinstall --nogpgcheck https://download1.rpmfusion.org/free/el/rpmfusion-free-release-8.noarch.rpm https://download1.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-8.noarch.rpm

-------------- On CentOS & RHEL 7.x -------------- 
# yum localinstall --nogpgcheck https://download1.rpmfusion.org/free/el/rpmfusion-free-release-7.noarch.rpm https://download1.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-7.noarch.rpm

-------------- On CentOS & RHEL 6.x --------------
# yum localinstall --nogpgcheck https://download1.rpmfusion.org/free/el/rpmfusion-free-release-6.noarch.rpm https://download1.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-6.noarch.rpm

Després d'habilitar els repositoris, executeu l'ordre següent per instal·lar FFmpeg:

# yum install ffmpeg ffmpeg-devel
# ffmpeg -version

A Fedora, heu d'instal·lar i habilitar RPM Fusion per instal·lar FFmpeg tal com es mostra.

$ sudo dnf install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
$ sudo dnf install ffmpeg ffmpeg-devel
$ ffmpeg -version
$ sudo pacman -S ffmpeg
$ yay -S ffmpeg-git
$ yay -S ffmpeg-full-git
$ ffmpeg -version
-------------- On openSUSE Tumbleweed --------------
$ sudo zypper addrepo -cfp 90 'https://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Tumbleweed/' packman
$ sudo zypper refresh
$ sudo zypper install --from packman ffmpeg
$ ffmpeg -version

-------------- On openSUSE Leap --------------
$ sudo zypper addrepo -cfp 90 'https://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Leap_$releasever/' packman
$ sudo zypper refresh
$ sudo zypper install --from packman ffmpeg
$ ffmpeg -version

Compilar programari des d'una font no és el més fàcil del món, però amb les instruccions adequades, ho podrem fer. En primer lloc, assegureu-vos que el vostre sistema compleix totes les dependències. La instal·lació d'aquestes dependències es pot fer amb l'ajuda de les ordres següents.

Primer, digueu al sistema que retiri els paquets més recents.

$ sudo apt-get update

Instal·leu les dependències amb l'ordre següent.

-------------- On Debian & Ubuntu --------------
$ sudo apt-get -y install autoconf automake build-essential libass-dev libfreetype6-dev libgpac-dev \
libsdl1.2-dev libtheora-dev libtool libva-dev libvdpau-dev libvorbis-dev libx11-dev \
libxext-dev libxfixes-dev pkg-config texi2html zlib1g-dev
-------------- On CentOS and RHEL --------------
# yum install glibc gcc gcc-c++ autoconf automake libtool git make nasm pkgconfig SDL-devel \
a52dec a52dec-devel alsa-lib-devel faac faac-devel faad2 faad2-devel freetype-devel giflib gsm gsm-devel \
imlib2 imlib2-devel lame lame-devel libICE-devel libSM-devel libX11-devel libXau-devel libXdmcp-devel \
libXext-devel libXrandr-devel libXrender-devel libXt-devel libogg libvorbis vorbis-tools mesa-libGL-devel \
mesa-libGLU-devel xorg-x11-proto-devel zlib-devel libtheora theora-tools ncurses-devel libdc1394 libdc1394-devel \
amrnb-devel amrwb-devel opencore-amr-devel

A continuació, utilitzeu l'ordre següent per crear un directori nou per a les fonts FFmpeg. Aquest és el directori on es descarregaran els fitxers font.

$ mkdir ~/ffmpeg_sources

Ara compileu i instal·leu l'assemblador yasm utilitzat per FFmpeg executant les ordres següents.

$ cd ~/ffmpeg_sources
$ wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz
$ tar xzvf yasm-1.3.0.tar.gz
$ cd yasm-1.3.0
$ ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin"
$ make
$ make install
$ make distclean
$ export "PATH=$PATH:$HOME/bin"

Després d'haver instal·lat correctament l'assemblador yasm, és hora d'instal·lar diversos codificadors que s'utilitzaran amb les eines específiques de FFmpeg. Utilitzeu les ordres següents per instal·lar el codificador de vídeo H.264.

$ cd ~/ffmpeg_sources
$ wget http://download.videolan.org/pub/x264/snapshots/last_x264.tar.bz2
$ tar xjvf last_x264.tar.bz2
$ cd x264-snapshot*
$ ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --enable-static
$ make
$ make install
$ make distclean

Un altre codificador útil és el codificador d'àudio AAC libfdk-aac.

$ cd ~/ffmpeg_sources
$ wget -O fdk-aac.zip https://github.com/mstorsjo/fdk-aac/zipball/master
$ unzip fdk-aac.zip
$ cd mstorsjo-fdk-aac*
$ autoreconf -fiv
$./configure --prefix="$HOME/ffmpeg_build" --disable-shared
$ make
$ make install
$ make distclean

Instal·leu el descodificador i el codificador d'àudio Libopus.

$ cd ~/ffmpeg_sources
$ wget http://downloads.xiph.org/releases/opus/opus-1.1.tar.gz
$ tar xzvf opus-1.1.tar.gz
$ cd opus-1.1
$ ./configure --prefix="$HOME/ffmpeg_build" --disable-shared
$ make
$ make install
$ make distclean

Ara, és hora d'instal·lar ffmpeg des de la font.

$ cd ~/ffmpeg_sources
$ wget http://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2
$ tar xjvf ffmpeg-snapshot.tar.bz2
$ cd ffmpeg
$ PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig"
$ export PKG_CONFIG_PATH
$ ./configure --prefix="$HOME/ffmpeg_build" --extra-cflags="-I$HOME/ffmpeg_build/include" \
   --extra-ldflags="-L$HOME/ffmpeg_build/lib" --bindir="$HOME/bin" --extra-libs="-ldl" --enable-gpl \
   --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus \
   --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-nonfree --enable-x11grab
$ make
$ make install
$ make distclean
$ hash -r

Nota: Si no heu instal·lat certs codificadors, assegureu-vos d'eliminar –enable-encoder_name de l'ordre ./configure anterior perquè la instal·lació es faci sense cap problema.

Hi ha molts codificadors que podeu instal·lar, però per l'objectiu d'aquest article no els instal·laré tots, però podeu instal·lar-los mitjançant les guies oficials següents.

  1. Guia de compilació FFmpeg per a Ubuntu
  2. Guia de compilació de FFmpeg per a CentOS

Conclusió

En aquesta primera part, hem actualitzat els nostres lectors amb les últimes notícies segons el framework multimèdia FFmpeg i els hem ensenyat com instal·lar-lo a les seves màquines Linux. La següent part tractarà totalment d'aprendre a utilitzar les increïbles eines dins d'aquest marc multimèdia líder.

Actualització: es publica la part 2 d'aquesta sèrie FFmpeg, que mostra alguns ús útils de la línia d'ordres de ffmpeg per dur a terme diversos procediments de conversió d'àudio, vídeo i imatge: 15 ordres útils FFmpeg per a la conversió de vídeo, àudio i imatge a Linux.