Kaip įdiegti „FFmpeg“ sistemoje „Linux“.


FFmpeg yra viena geriausių daugialypės terpės sistemų, kurioje yra įvairių įrankių įvairioms užduotims atlikti. Pavyzdžiui, ffplay yra nešiojamas daugialypės terpės grotuvas, kurį galima naudoti garso/vaizdo failams leisti, ffmpeg gali konvertuoti į skirtingus failų formatus, ffserver > gali būti naudojamas tiesioginėms transliacijoms transliuoti, o ffprobe gali analizuoti daugialypės terpės srautą.

Ši sistema yra tikrai galinga dėl turimų įrankių įvairovės, suteikiančių vartotojui geriausią techninį sprendimą. Remiantis FFmpeg aprašymu oficialioje svetainėje, tokios puikios daugialypės terpės sistemos priežastis yra geriausių galimų nemokamos programinės įrangos parinkčių derinys.

FFmpeg sistema užtikrina aukštą saugumą, o to priežastis yra kūrėjų rimtumas peržiūrint kodą, tai visada daroma atsižvelgiant į saugumą.

Esu tikras, kad ši sistema jums bus labai naudinga, kai norėsite transliuoti arba įrašyti skaitmeninį garso ir vaizdo įrašą. Yra daug kitų praktinių dalykų, kuriuos galite atlikti naudodami FFmpeg sistemą, pvz., konvertuoti wav failą į mp3, užkoduoti ir iššifruoti vaizdo įrašus ar net pakeisti jų mastelį.

Remiantis oficialia svetaine, FFmpeg gali atlikti šiuos veiksmus.

  • iššifruoti daugialypės terpės failus
  • koduoti daugialypės terpės failus
  • perkoduoti daugialypės terpės failus
  • mux daugialypės terpės failus
  • demux daugialypės terpės failus
  • transliuoti daugialypės terpės failus
  • filtruoti daugialypės terpės failus
  • leisti daugialypės terpės failus

Leiskite paimti pavyzdį, labai paprastą. Ši komanda konvertuos mp4 failą į avi failą, kaip tai paprasta.

ffmpeg -i Lone_Ranger.mp4 Lone_Ranger.avi

Aukščiau pateikta komanda naudinga tik paaiškinimui, jos nerekomenduojama naudoti praktiškai, nes nėra deklaruojamas kodekas, bitų sparta ir kita specifika.

Kitoje dalyje mes pasipraktikuosime su kai kuriais FFmpeg daugialypės terpės sistemos įrankiais, tačiau prieš tai darydami turime juos įdiegti savo Linux dėžutėje.

Kaip įdiegti „FFmpeg Multimedia Framework“ sistemoje „Linux“.

Kadangi FFmpeg paketai siūlomi dažniausiai naudojamiems „Linux“ platinimams, todėl diegimas bus gana paprastas. Pradėkime nuo FFmpeg sistemos diegimo Ubuntu pagrindu sukurtuose platinimuose.

Įdiekite FFmpeg Ubuntu ir Linux Mint

Įdiegsiu FFmpeg iš numatytųjų saugyklų. Atidarykite naują terminalą (CTRL + ALT + T) ir paleiskite šias komandas.

sudo apt update
sudo apt install ffmpeg
ffmpeg -version

Įdiekite FFmpeg „Debian“.

Paketas FFmpeg yra įtrauktas į oficialias Debiano saugyklas ir gali būti įdiegtas naudojant paketų tvarkyklę, kaip parodyta.

sudo apt update
sudo apt install ffmpeg
ffmpeg -version

Įdiekite FFmpeg CentOS ir RHEL

Norėdami įdiegti FFmpeg CentOS ir RHEL paskirstymuose, turite įgalinti EPEL ir RPM Fusion saugyklą sistemoje naudodami šias komandas.

Norėdami įdiegti ir įgalinti EPEL, naudokite šią komandą.

yum install epel-release

Norėdami įdiegti ir įgalinti RPM Fusion, platinimo versijoje naudokite šią komandą.

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

Įgalinę saugyklas, paleiskite šią komandą, kad įdiegtumėte FFmpeg:

yum install ffmpeg ffmpeg-devel
ffmpeg -version

Įdiekite „FFmpeg“ „Fedora“.

Jei norite įdiegti FFmpeg, kaip parodyta, Fedora sistemoje turite įdiegti ir įgalinti RPM Fusion.

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

Įdiekite FFmpeg „Arch Linux“.

sudo pacman -S ffmpeg
yay -S ffmpeg-git
yay -S ffmpeg-full-git
ffmpeg -version

Įdiekite FFmpeg į openSUSE

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

FFmpeg kompiliavimas iš šaltinio

Kompiliuoti programinę įrangą iš šaltinio nėra pats lengviausias dalykas pasaulyje, tačiau turėdami tinkamas instrukcijas mes tai padarysime. Pirmiausia įsitikinkite, kad jūsų sistema atitinka visas priklausomybes. Šias priklausomybes galima įdiegti naudojant šias komandas.

Pirmiausia liepkite sistemai ištraukti naujausius paketus.

sudo apt-get update

Įdiekite priklausomybes naudodami šią komandą.

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

Tada naudokite šią komandą, kad sukurtumėte naują FFmpeg šaltinių katalogą. Tai yra katalogas, kuriame bus atsisiunčiami šaltinio failai.

mkdir ~/ffmpeg_sources

Dabar sukompiliuokite ir įdiekite yasm assembler, kurį naudoja FFmpeg, vykdydami šias komandas.

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"

Sėkmingai įdiegus yasm surinkėją, laikas įdiegti įvairius koduotuvus, kurie bus naudojami su konkrečiais FFmpeg įrankiais. Norėdami įdiegti H.264 vaizdo įrašų koduotuvą, naudokite šias komandas.

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

Kitas gražus naudingas koduotuvas yra libfdk-aac AAC garso kodavimo įrenginys.

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

Įdiekite libopus garso dekoderį ir koduotuvą.

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

Dabar laikas įdiegti ffmpeg iš šaltinio.

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

Pastaba: jei nesate įdiegę tam tikrų koduotuvų, būtinai pašalinkite „–enable-encoder_name“ iš anksčiau pateiktos „“. /configure“ komandą, kad diegimas būtų atliktas be jokių problemų.

Yra daug koduotuvų, kuriuos galite įdiegti, tačiau atsižvelgiant į šio straipsnio tikslą, neketinu įdiegti visų, bet galite juos įdiegti naudodami šiuos oficialius vadovus.

  1. FFmpeg kompiliavimo vadovas, skirtas Ubuntu
  2. FFmpeg kompiliavimo vadovas, skirtas CentOS

Išvada

Šioje pirmoje dalyje mes atnaujinome savo skaitytojus naujausiomis naujienomis pagal FFmpeg daugialypės terpės sistemą ir parodėme, kaip ją įdiegti savo Linux įrenginiuose. Kita dalis bus skirta išmokti naudotis nuostabiais įrankiais šioje pirmaujančioje daugialypės terpės sistemoje.

Atnaujinimas: paskelbta 2 dalis šios FFmpeg serijos, kurioje rodomas naudingas ffmpeg komandinės eilutės naudojimas įvairiems garso, vaizdo ir vaizdo konvertavimo procedūros: 15 naudingų „FFmpeg“ komandų vaizdo, garso ir vaizdo konvertavimui sistemoje „Linux“.