Kif tinstalla FFmpeg fil-Linux


FFmpeg huwa wieħed mill-aqwa oqfsa multimedjali li fih diversi għodod għal ħidmiet differenti. Pereżempju, il-ffplay huwa media player portabbli li jista 'jintuża biex jilgħab fajls awdjo/vidjow, ffmpeg jista' jikkonverti bejn formati ta 'fajls differenti, ffserver jista' jintuża biex tistrimja xandiriet ħajjin u ffprobe huwa kapaċi janalizza fluss multimedjali.

Dan il-qafas huwa verament b'saħħtu minħabba d-diversità ta 'għodod disponibbli, li jipprovdu l-aħjar soluzzjoni teknika għall-utent. Skont id-deskrizzjoni ta 'FFmpeg fuq il-websajt uffiċjali, ir-raġuni biex ikollok qafas multimedjali daqshekk kbir hija l-kombinazzjoni tal-aħjar għażliet ta' softwer b'xejn disponibbli.

Il-qafas FFmpeg joffri sigurtà għolja u r-raġuni għal dan hija s-serjetà tal-iżviluppaturi meta jirrevedu l-kodiċi, dejjem isir b'moħħ is-sigurtà.

Jiena ċert ħafna li se ssib dan il-qafas utli ħafna meta tixtieq tagħmel xi streaming jew reġistrazzjoni ta' awdjo u vidjo diġitali. Hemm ħafna affarijiet prattiċi oħra li tista 'tagħmel bl-għajnuna tal-qafas FFmpeg bħall-konverżjoni tal-fajl wav tiegħek għal wieħed mp3, jikkodifika u jiddekowdja l-vidjos tiegħek, jew saħansitra skala minnhom.

Skont il-websajt uffiċjali, FFmpeg huwa kapaċi jagħmel dan li ġej.

  • dekodifika fajls multimedjali
  • kodifika fajls multimedjali
  • ittraskodifika fajls multimedjali
  • multimedja fajls
  • fajls multimedjali demux
  • nixxi fajls multimedjali
  • iffiltra fajls multimedjali
  • tilgħab fajls multimedjali

Ħa nieħdu eżempju, wieħed sempliċi ħafna. Il-kmand li ġej se jikkonverti l-fajl mp4 tiegħek f'fajl avi, sempliċi daqs dak.

# ffmpeg -i Lone_Ranger.mp4 Lone_Ranger.avi

Il-kmand ta 'hawn fuq huwa utli biss għall-ispjegazzjoni, mhuwiex rakkomandat li jintuża fil-prattika minħabba li l-codec, bitrate, u ispeċifiċitajiet oħra mhumiex iddikjarati.

Fil-parti li jmiss, se nipprattikaw b'xi wħud mill-għodod tal-qafas multimedjali FFmpeg, iżda qabel ma nagħmlu dan irridu ninstallawhom fil-kaxxa tal-Linux tagħna.

Kif Tinstalla FFmpeg Multimedia Framework f'Linux

Peress li l-pakketti FFmpeg huma offruti għall-aktar distribuzzjonijiet Linux użati u l-installazzjoni tkun relattivament faċli. Nibdew bl-installazzjoni tal-qafas FFmpeg fid-distribuzzjonijiet ibbażati fuq Ubuntu.

Se ninstalla FFmpeg mir-repożitorji default. Iftaħ terminal ġdid (CTRL + ALT + T) u mbagħad mexxi l-kmandi li ġejjin.

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

Il-pakkett FFmpeg huwa inkluż fir-repożitorji Debian uffiċjali u jista 'jiġi installat bl-użu tal-maniġer tal-pakketti kif muri.

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

Biex tinstalla FFmpeg fuq distribuzzjonijiet ta 'CentOS u RHEL, għandek bżonn tattiva r-repożitorju ta' EPEL u RPM Fusion fuq is-sistema billi tuża l-kmandi li ġejjin.

Biex tinstalla u tippermetti EPEL, uża l-kmand li ġej.

# yum install epel-release

Biex tinstalla u tippermetti RPM Fusion, uża l-kmand li ġej fuq il-verżjoni tad-distribuzzjoni tiegħek.

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

Wara li ppermettiet ir-repożitorji, mexxi l-kmand li ġej biex tinstalla FFmpeg:

# yum install ffmpeg ffmpeg-devel
# ffmpeg -version

Fuq Fedora, għandek bżonn tinstalla u tippermetti RPM Fusion biex tinstalla FFmpeg kif muri.

$ 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

Il-kumpilazzjoni tas-softwer minn sors mhix l-eħfef ħaġa fid-dinja, iżda bl-istruzzjonijiet it-tajba, inkunu nistgħu nagħmluh. L-ewwel, kun żgur li s-sistema tiegħek tissodisfa d-dipendenzi kollha. L-installazzjoni ta 'dawn id-dipendenzi tista' ssir bl-għajnuna tal-kmandi li ġejjin.

L-ewwel, għid lis-sistema biex tiġbed l-aħħar pakketti.

$ sudo apt-get update

Installa d-dipendenzi bil-kmand li ġej.

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

Imbagħad uża l-kmand li ġej biex toħloq direttorju ġdid għas-sorsi FFmpeg. Dan huwa d-direttorju fejn se jitniżżlu l-fajls tas-sors.

$ mkdir ~/ffmpeg_sources

Issa kkumpila u installa yasm assembler użat minn FFmpeg billi tħaddem il-kmandi li ġejjin.

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

Wara li tkun installat b'suċċess l-yasm assembler wasal iż-żmien li tinstalla xi encoders varji li se jintużaw mal-għodod speċifiċi FFmpeg. Uża l-kmandi li ġejjin biex tinstalla l-encoder tal-vidjo 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

Encoder utli ieħor sabiħ huwa l-encoder tal-awdjo 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

Installa libopus awdjo decoder u 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

Issa, wasal iż-żmien li tinstalla ffmpeg mis-sors.

$ 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: Jekk ma installajtx ċerti encoders, kun żgur li tneħħi '–enable-encoder_name' mill-kmand './configure' ta' hawn fuq sabiex l-installazzjoni ssir mingħajr ebda problema.

Hemm ħafna encoders li tista 'tinstalla, iżda l-għan ta' dan l-artikolu mhux se ninstallahom kollha, iżda tista 'tinstallahom billi tuża l-gwidi uffiċjali li ġejjin.

  1. Gwida għall-Kompilazzjoni FFmpeg għal Ubuntu
  2. Gwida għall-Kompilazzjoni FFmpeg għal CentOS

Konklużjoni

F'din l-ewwel parti, aġġornajna lill-qarrejja tagħna bl-aħħar aħbarijiet skont il-qafas multimedjali FFmpeg u wrejnihom kif jinstallawha fuq il-magni Linux tagħhom. Il-parti li jmiss se tkun totalment dwar it-tagħlim kif tuża l-għodod tal-għaġeb ġewwa dan il-qafas multimedjali ewlieni.

Aġġornament: It-tieni parti ta 'din is-serje FFmpeg hija ppubblikata, li turi xi użu utli tal-linja tal-kmand ta' ffmpeg biex twettaq diversi proċeduri ta 'konverżjoni ta' awdjo, vidjow u immaġni: 15 Kmand Utli 'FFmpeg' għal Konverżjoni tal-Vidjo, Awdjo u Immaġini f'Linux.