Kako namestiti FFmpeg v Linux


FFmpeg je eden najboljših multimedijskih okvirov, ki vsebuje različna orodja za različne naloge. Na primer, ffplay je prenosni medijski predvajalnik, ki se lahko uporablja za predvajanje zvočnih/video datotek, ffmpeg lahko pretvarja med različnimi oblikami datotek, ffserver se lahko uporablja za pretakanje oddaj v živo, ffprobe pa lahko analizira večpredstavnostni tok.

Ta okvir je res močan zaradi raznolikosti razpoložljivih orodij, ki uporabniku ponujajo najboljšo tehnično rešitev. Po opisu FFmpega na uradni spletni strani je razlog za tako odličen multimedijski okvir kombinacija najboljših razpoložljivih možnosti brezplačne programske opreme.

Okvir FFmpeg ponuja visoko varnost, razlog za to pa je resnost razvijalcev, ko pregledajo kodo, vedno pa se upošteva varnost.

Prepričan sem, da se vam bo ta okvir zdel zelo uporaben, če želite narediti nekaj digitalnega pretakanja ali snemanja zvoka in videa. S pomočjo okvira FFmpeg lahko storite še veliko drugih praktičnih stvari, na primer pretvorite datoteko wav v datoteko mp3, kodirate in dekodirate svoje videoposnetke ali jih celo povečate.

Po uradni spletni strani lahko FFmpeg naredi naslednje.

  • dekodiranje večpredstavnostnih datotek
  • kodirajte večpredstavnostne datoteke
  • prekodirajte večpredstavnostne datoteke
  • večpredstavnostne datoteke mux
  • demux večpredstavnostne datoteke
  • pretočno predvajajte večpredstavnostne datoteke
  • filtrirajte večpredstavnostne datoteke
  • predvajanje večpredstavnostnih datotek

Naj vzamem primer, zelo preprost. Naslednji ukaz bo vašo datoteko mp4 pretvoril v datoteko avi, preprosto.

# ffmpeg -i Lone_Ranger.mp4 Lone_Ranger.avi

Zgornji ukaz je uporaben samo za razlago, ni ga priporočljivo uporabljati v praksi, ker kodek, bitna hitrost in druge posebnosti niso deklarirane.

V naslednjem delu bomo vadili z nekaterimi orodji za večpredstavnostni okvir FFmpeg, vendar jih moramo pred tem namestiti v naš okvir Linux.

Kako namestiti FFmpeg Multimedia Framework v Linux

Ker so paketi FFmpeg na voljo za najpogosteje uporabljene distribucije Linuxa, bo namestitev razmeroma enostavna. Začnimo z namestitvijo ogrodja FFmpeg v distribucije, ki temeljijo na Ubuntu.

FFmpeg bom namestil iz privzetih skladišč. Odprite nov terminal (CTRL+ALT+T) in nato zaženite naslednje ukaze.

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

Paket FFmpeg je vključen v uradna skladišča Debian in ga je mogoče namestiti z upraviteljem paketov, kot je prikazano.

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

Če želite namestiti FFmpeg na distribucije CentOS in RHEL, morate v sistemu omogočiti skladišče EPEL in RPM Fusion z naslednjimi ukazi.

Če želite namestiti in omogočiti EPEL, uporabite naslednji ukaz.

# yum install epel-release

Če želite namestiti in omogočiti RPM Fusion, uporabite naslednji ukaz v različici distribucije.

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

Ko omogočite skladišča, zaženite naslednji ukaz za namestitev FFmpeg:

# yum install ffmpeg ffmpeg-devel
# ffmpeg -version

V Fedori morate namestiti in omogočiti RPM Fusion, da namestite FFmpeg, kot je prikazano.

$ 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

Sestavljanje programske opreme iz vira ni najlažja stvar na svetu, a s pravimi navodili nam bo to uspelo. Najprej se prepričajte, da vaš sistem ustreza vsem odvisnostim. Namestitev teh odvisnosti lahko izvedete s pomočjo naslednjih ukazov.

Najprej povejte sistemu, naj odstrani najnovejše pakete.

$ sudo apt-get update

Namestite odvisnosti z naslednjim ukazom.

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

Nato uporabite naslednji ukaz, da ustvarite nov imenik za vire FFmpeg. To je imenik, kamor bodo naložene izvorne datoteke.

$ mkdir ~/ffmpeg_sources

Zdaj sestavite in namestite asembler yasm, ki ga uporablja FFmpeg, tako da zaženete naslednje ukaze.

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

Ko ste uspešno namestili sestavljalec yasm, je čas, da namestite nekaj različnih kodirnikov, ki bodo uporabljeni s posebnimi orodji FFmpeg. Za namestitev video kodirnika H.264 uporabite naslednje ukaze.

$ 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

Še en koristen kodirnik je zvočni kodirnik 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

Namestite libopus zvočni dekoder in dajalnik.

$ 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

Zdaj je čas, da namestite ffmpeg iz vira.

$ 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

Opomba: Če niste namestili določenih kodirnikov, odstranite „–enable-encoder_name“ iz zgornjega ukaza „./configure“, da bo namestitev izvedena brez težav.

Obstaja veliko kodirnikov, ki jih lahko namestite, vendar za namen tega članka ne bom namestil vseh, lahko pa jih namestite z naslednjimi uradnimi vodniki.

  1. Priročnik za sestavljanje FFmpeg za Ubuntu
  2. Priročnik za sestavljanje FFmpeg za CentOS

Zaključek

V tem prvem delu smo bralce posodobili z najnovejšimi novicami v skladu z večpredstavnostnim okvirom FFmpeg in jim pokazali, kako jih namestiti na svoje računalnike Linux. Naslednji del bo v celoti o učenju uporabe neverjetnih orodij v tem vodilnem večpredstavnostnem okviru.

Posodobitev: Objavljen je 2. del te serije FFmpeg, ki prikazuje nekaj uporabnih načinov ukazne vrstice ffmpeg za izvajanje različnih postopkov pretvorbe zvoka, videa in slik: 15 uporabnih ukazov "FFmpeg" za pretvorbo videa, zvoka in slike v Linuxu.