Wéi installéiere ech FFmpeg op Linux


FFmpeg ass ee vun de beschten Multimedia Kaderen déi verschidden Tools fir verschidden Aufgaben enthalen. Zum Beispill ass de ffplay e portable Media Player dee benotzt ka ginn fir Audio/Video Dateien ze spillen, ffmpeg kann tëscht verschiddene Dateiformate konvertéieren, ffserver ka benotzt ginn fir Live Sendungen ze streamen an ffprobe ass fäeg Multimedia Stream ze analyséieren.

Dëse Kader ass wierklech mächteg wéinst der Diversitéit vun verfügbaren Tools, déi déi bescht technesch Léisung fir de Benotzer ubidden. No der Beschreiwung vu FFmpeg op der offizieller Websäit, ass de Grond fir sou e super Multimedia Kader ze hunn d'Kombinatioun vun de beschten gratis Softwareoptiounen verfügbar.

De FFmpeg Kader bitt héich Sécherheet an de Grond dofir ass d'Seriositéit vun den Entwéckler wann se de Code iwwerpréiwen, et gëtt ëmmer mat Sécherheet am Kapp gemaach.

Ech si ganz sécher datt Dir dëse Kader ganz nëtzlech fannt wann Dir e puer digital Audio- a Videostreaming oder Opnam wëllt maachen. Et gi vill aner praktesch Saachen, déi Dir mat der Hëllef vum FFmpeg Kader maache kënnt, sou wéi Är Wav-Datei an eng mp3 konvertéieren, Är Videoen encodéieren an decodéieren, oder se souguer skaléieren.

No der offizieller Websäit ass FFmpeg fäeg déi folgend ze maachen.

  • Multimediadateien dekodéieren
  • Multimediadateien codéieren
  • Multimediadateien transkodéieren
  • Mux Multimedia Dateien
  • demux Multimedia Dateien
  • Multimediadateien streamen
  • Multimediadateien filteren
  • Multimediadateien spillen

Loosst mech e Beispill huelen, e ganz einfacht. De folgende Kommando konvertéiert Är mp4 Datei an eng Avi Datei, sou einfach wéi dat.

# ffmpeg -i Lone_Ranger.mp4 Lone_Ranger.avi

Deen uewe genannte Kommando ass nëmme nëtzlech fir Erklärung, et ass net recommandéiert fir an der Praxis ze benotzen well de Codec, Bitrate an aner Spezifizitéiten net deklaréiert ginn.

Am nächsten Deel wäerte mir mat e puer vun de FFmpeg Multimedia Framework Tools üben, awer ier Dir dat maacht, musse mir se an eiser Linux Box installéieren.

Wéi installéiere ech FFmpeg Multimedia Framework op Linux

Zënter datt d'FFmpeg Packagen fir déi meescht benotzt Linux Verdeelungen ugebuede ginn an d'Installatioun relativ einfach ass. Loosst eis mat der Installatioun vum FFmpeg Kader an Ubuntu-baséiert Verdeelungen ufänken.

Ech wäert FFmpeg aus de Standard Repositories installéieren. Öffnen en neien Terminal (CTRL + ALT + T) a lafen dann déi folgend Kommandoen.

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

De FFmpeg Package ass an den offiziellen Debian Repositories abegraff a ka mat dem Package Manager installéiert ginn wéi gewisen.

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

Fir FFmpeg op CentOS a RHEL Verdeelungen z'installéieren, musst Dir EPEL an RPM Fusion Repository op de System mat de folgende Kommandoen aktivéieren.

Fir EPEL z'installéieren an z'aktivéieren, benotzt de folgende Kommando.

# yum install epel-release

Fir RPM Fusion z'installéieren an z'aktivéieren, benotzt de folgende Kommando op Ärer Verdeelungsversioun.

-------------- 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

Nodeems Dir Repositories aktivéiert hutt, fuert de folgende Kommando fir FFmpeg z'installéieren:

# yum install ffmpeg ffmpeg-devel
# ffmpeg -version

Op Fedora musst Dir RPM Fusion installéieren an aktivéieren fir FFmpeg z'installéieren wéi gewisen.

$ 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

Software aus enger Quell ze kompiléieren ass net déi einfachst Saach op der Welt, awer mat de richtege Instruktioune kënne mir et maachen. Als éischt, gitt sécher datt Äre System all Ofhängegkeeten entsprécht. D'Installatioun vun dësen Ofhängegkeeten kann mat der Hëllef vun de folgende Kommandoen gemaach ginn.

Als éischt, sot de System fir déi lescht Packagen erofzezéien.

$ sudo apt-get update

Installéiert d'Ofhängegkeete mam folgendem Kommando.

-------------- 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

Benotzt dann de folgende Kommando fir en neie Verzeechnes fir d'FFmpeg Quellen ze kreéieren. Dëst ass de Verzeechnes wou d'Quelldateien erofgeluede ginn.

$ mkdir ~/ffmpeg_sources

Elo kompiléieren an installéieren Yasm Assembler benotzt vun FFmpeg andeems Dir déi folgend Kommandoen ausféiert.

$ 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"

Nodeems Dir den Yasm Assembler erfollegräich installéiert hutt, ass et Zäit e puer verschidde Encoderen z'installéieren déi mat de spezifesche FFmpeg Tools benotzt ginn. Benotzt déi folgend Kommandoen fir den H.264 Video Encoder z'installéieren.

$ 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

En anere flotten nëtzlechen Encoder ass de libfdk-aac AAC Audio Encoder.

$ 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

Installéiert Libopus Audio Decoder an Encoder.

$ 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

Elo ass et Zäit fir ffmpeg vun der Quell z'installéieren.

$ 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

Bemierkung: Wann Dir bestëmmte Encoder net installéiert hutt, vergewëssert Iech '–enable-encoder_name' aus dem uewe genannten './configure' Kommando ze läschen, sou datt d'Installatioun ouni Problem gemaach gëtt.

Et gi vill Encoderen déi Dir installéiere kënnt, awer fir den Zweck vun dësem Artikel wäert ech se net all installéieren, awer Dir kënnt se mat den folgenden offiziellen Guiden installéieren.

  1. FFmpeg Compilation Guide fir Ubuntu
  2. FFmpeg Compilation Guide fir CentOS

Conclusioun

An dësem éischten Deel hu mir eis Lieser mat der leschter Neiegkeet no dem FFmpeg Multimedia Kader aktualiséiert a gewisen wéi se se op hire Linux Maschinnen installéieren. Den nächsten Deel wäert ganz iwwer léieren wéi Dir déi erstaunlech Tools an dësem féierende Multimedia Kader benotzt.

Update: Deel 2 vun dëser FFmpeg Serie gëtt publizéiert, déi e puer nëtzlech ffmpeg Kommandozeilverbrauch weist fir verschidden Audio-, Video- a Bildkonvertéierungsprozeduren auszeféieren: 15 Nëtzlech 'FFmpeg' Kommandoen fir Video, Audio a Bildkonversioun am Linux.