Linux-da FFmpeg-i nädip gurmaly


FFmpeg dürli meseleler üçin dürli gurallary öz içine alýan iň oňat multimediýa çarçuwalarynyň biridir. Mysal üçin, ffplay ses/wideo faýllaryny oýnamak üçin ulanylýan göçme media pleýer, ffmpeg dürli faýl formatlarynyň arasynda öwrüp bilýär, ffserver göni ýaýlymlary ýaýratmak üçin ulanylýar we ffprobe multimediýa akymyny seljerip bilýär.

Bu gurluş, ulanyjy üçin iň oňat tehniki çözgüdi üpjün edýän elýeterli gurallaryň dürlüligi sebäpli hakykatdanam güýçlidir. Resmi web sahypasyndaky FFmpeg-iň beýanyna görä, şeýle ajaýyp multimediýa çarçuwasynyň bolmagynyň sebäbi, elýeterli iň oňat mugt programma üpjünçiliginiň utgaşmasydyr.

FFmpeg çarçuwasy ýokary howpsuzlygy hödürleýär we munuň sebäbi, döredijileri kody gözden geçirenlerinde yzygiderliligi, hemişe howpsuzlygy göz öňünde tutup ýerine ýetirilýär.

Sanly ses we wideo akymlaryny ýa-da ýazgylaryny etmek isleseňiz, bu çarçuwany gaty peýdaly tapjakdygyňyza ynanýaryn. FFmpeg çarçuwasynyň kömegi bilen waw faýlyňyzy mp3 görnüşine öwürmek, wideolaryňyzy kodlamak we kodlamak ýa-da ulaltmak ýaly başga-da köp amaly zatlar bar.

Resmi web sahypasyna görä, FFmpeg aşakdakylary edip bilýär.

  • multimediýa faýllaryny kodlamak
  • multimediýa faýllaryny kodlamak
  • transkod multimediýa faýllary
  • mux multimedia faýllary
  • demux multimedia faýllary
  • multimediýa faýllaryny akdyryň
  • multimediýa faýllaryny süzüň
  • multimediýa faýllaryny oýnamak

Mysal getireýin, gaty ýönekeý. Aşakdaky buýruk, mp4 faýlyňyzy ýönekeý faýl görnüşine öwürer.

# ffmpeg -i Lone_Ranger.mp4 Lone_Ranger.avi

Aboveokardaky buýruk diňe düşündiriş üçin peýdaly, kodek, bitrate we beýleki aýratynlyklar yglan edilmänsoň, iş ýüzünde ulanmak maslahat berilmeýär.

Indiki bölümde FFmpeg multimediýa çarçuwasynyň käbir gurallary bilen meşgullanarys, ýöne muny etmezden ozal Linux gutymyzda gurmaly bolarys.

Linux-da FFmpeg Multimedia Çarçuwasyny nädip gurmaly

FFmpeg paketleri iň köp ulanylýan Linux paýlamalary üçin hödürlenýändigi sebäpli, gurmak has aňsat bolar. Ubuntu esasly paýlamalarda FFmpeg çarçuwasyny gurmakdan başlalyň.

FFmpeg-i deslapky ammarlardan guraryn. Täze terminaly açyň (CTRL + ALT + T) we soňra aşakdaky buýruklary işlediň.

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

FFmpeg bukjasy resmi Debian ammarlaryna girýär we görkezilişi ýaly paket dolandyryjysynyň kömegi bilen gurnalyp bilner.

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

CentOS we RHEL paýlamalarynda FFmpeg gurmak üçin aşakdaky buýruklary ulanyp ulgamda EPEL we RPM Fusion ammaryny işletmeli.

EPEL-i gurmak we işletmek üçin aşakdaky buýrugy ulanyň.

# yum install epel-release

RPM Fusion-y gurmak we işletmek üçin paýlaýyş wersiýaňyzda aşakdaky buýrugy ulanyň.

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

Ammarlary açanyňyzdan soň, FFmpeg gurmak üçin aşakdaky buýrugy işlediň:

# yum install ffmpeg ffmpeg-devel
# ffmpeg -version

Fedora-da görkezilişi ýaly FFmpeg gurmak üçin RPM Fusion gurmaly we işletmeli.

$ 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

Çeşmeden programma üpjünçiligini düzmek dünýädäki iň aňsat zat däl, ýöne dogry görkezmeler bilen biz muny başararys. Ilki bilen ulgamyňyzyň ähli baglylyklara laýyk gelýändigine göz ýetiriň. Bu baglylyklary gurnamak aşakdaky buýruklaryň kömegi bilen amala aşyrylyp bilner.

Ilki bilen, iň soňky paketleri çekmegi sistema aýdyň.

$ sudo apt-get update

Baglanyşyklary aşakdaky buýruk bilen guruň.

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

Soňra FFmpeg çeşmeleri üçin täze katalog döretmek üçin aşakdaky buýrugy ulanyň. Bu çeşme faýllarynyň göçüriljek katalogy.

$ mkdir ~/ffmpeg_sources

Indi aşakdaky buýruklary işledip FFmpeg tarapyndan ulanylýan yasm gurnaýjysyny düzüň we guruň.

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

Yasm montajçysyny üstünlikli guranyňyzdan soň, belli FFmpeg gurallary bilen ulanyljak dürli kodlaýjylary gurmagyň wagty geldi. H.264 wideo kodlaýjysyny gurmak üçin aşakdaky buýruklary ulanyň.

$ 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

Anotherene bir oňat peýdaly kodlaýjy, libfdk-aac AAC ses kodlaýjysy.

$ 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

Libopus ses dekoderini we kodlaýjyny guruň.

$ 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

Indi çeşmeden ffmpeg gurmagyň wagty geldi.

$ 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

Bellik: Käbir kodlaýjylary gurnamadyk bolsaňyz, “–enable-encoder_name” -ni ýokardaky “./configure” buýrugyndan aýyryň, gurnama hiç hili kynçylyksyz amala aşyrylýar.

Gurnap boljak kodlaýjylar köp, ýöne bu makalanyň maksadyny men olaryň hemmesini gurmakçy däl, ýöne aşakdaky resmi gollanmalary ulanyp gurup bilersiňiz.

  1. Ubuntu üçin FFmpeg düzmek gollanmasy
  2. CentOS üçin FFmpeg düzmek gollanmasy

Netije

Bu birinji bölümde, FFmpeg multimediýa çarçuwasyna laýyklykda okyjylarymyza iň täze habarlar bilen täzeledik we Linux enjamlarynda nädip gurmalydygyny görkezdik. Indiki bölüm, bu öňdebaryjy multimediýa çarçuwasynyň içindäki ajaýyp gurallary nädip ulanmalydygyny öwrenmek barada bolar.

Täzelenme: Dürli ses, wideo we şekil öwürmek proseduralaryny ýerine ýetirmek üçin käbir peýdaly ffmpeg buýruk setiriniň ulanylyşyny görkezýän bu FFmpeg seriýasynyň 2-nji bölümi neşir edildi: Linux-da wideo, ses we şekil öwürmek üçin peýdaly “FFmpeg” buýruklary.