Bii a ṣe le Fi sii FFmpeg ni Awọn Pinpin Lainos


FFmpeg jẹ ọkan ninu awọn ilana multimedia ti o dara julọ ti o ni ọpọlọpọ awọn irinṣẹ fun awọn iṣẹ oriṣiriṣi. Fun apẹẹrẹ, ffplay jẹ ẹrọ orin media to ṣee gbe ti o le lo lati mu awọn faili ohun/fidio ṣiṣẹ, ffmpeg le yipada laarin awọn ọna kika faili oriṣiriṣi, a le lo ffserver lati san awọn igbohunsafefe laaye ati ffprobe ni anfani lati ṣe itupalẹ ṣiṣan multimedia.

Ilana yii jẹ agbara gaan nitori iyatọ ti awọn irinṣẹ ti o wa, ti o pese ojutu imọ-ẹrọ ti o dara julọ fun olumulo. Gẹgẹbi apejuwe FFmpeg lori oju opo wẹẹbu osise, idi fun nini iru ilana multimedia nla bẹ ni apapọ awọn aṣayan sọfitiwia ọfẹ ọfẹ ti o dara julọ ti o wa.

Ilana FFmpeg n pese aabo giga ati idi fun eyi ni iruba ti awọn olupilẹṣẹ nigbati wọn ba ṣe atunyẹwo koodu naa, o ṣe nigbagbogbo pẹlu aabo ni lokan.

Mo ni idaniloju pupọ pe iwọ yoo wa ilana yii wulo pupọ nigbati o ba fẹ ṣe ohun afetigbọ oni-nọmba kan ati ṣiṣan fidio tabi gbigbasilẹ. Ọpọlọpọ awọn ohun elo to wulo miiran ti o le ṣe pẹlu iranlọwọ ti ilana FFmpeg gẹgẹbi yiyipada faili wav rẹ si ọkan mp3 kan, ṣe aiyipada ati iyipada awọn fidio rẹ, tabi paapaa ṣe iwọn wọn.

Gẹgẹbi oju opo wẹẹbu osise, FFmpeg ni anfani lati ṣe atẹle.

  • ṣe iyipada awọn faili multimedia
  • ṣafikun awọn faili multimedia
  • transcode awọn faili multimedia
  • mux awọn faili multimedia
  • demux multimedia awọn faili
  • sanwọle awọn faili multimedia
  • ṣe àlẹmọ awọn faili multimedia
  • mu awọn faili multimedia ṣiṣẹ

Jẹ ki n mu apẹẹrẹ, eyi ti o rọrun pupọ. Atẹle atẹle yoo yi faili mp4 rẹ pada sinu faili avi, rọrun bi iyẹn.

# ffmpeg -i Lone_Ranger.mp4 Lone_Ranger.avi

Aṣẹ ti o wa loke wulo nikan fun alaye, a ko ṣe iṣeduro lati ṣee lo ni iṣe nitori kodẹki, bitrate, ati awọn alaye pataki miiran ko ṣe ikede.

Ni apakan ti n tẹle, a yoo ṣe adaṣe pẹlu diẹ ninu awọn irinṣẹ ilana ilana multimedia FFmpeg, ṣugbọn ṣaaju ṣiṣe eyi a ni lati fi sii wọn ninu apoti Linux wa.

Bii o ṣe le Fi FFmpeg Multimedia Framework sori Linux

Niwọn igba ti a fun awọn idii FFmpeg fun awọn pinpin Lainos ti a lo julọ ati fifi sori ẹrọ yoo jẹ irọrun rọrun. Jẹ ki a bẹrẹ pẹlu fifi sori ẹrọ ti ilana FFmpeg ni awọn pinpin kaakiri Ubuntu.

Emi yoo fi FFmpeg sori ẹrọ lati awọn ibi ipamọ aiyipada. Ṣii ebute tuntun (CTRL + ALT + T) ati lẹhinna ṣiṣe awọn ofin wọnyi.

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

Apo FFmpeg wa ninu awọn ibi ipamọ Debian osise ati pe o le fi sii nipa lilo oluṣakoso package bi o ti han.

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

Lati fi FFmpeg sori ẹrọ lori CentOS ati awọn pinpin RHEL, o nilo lati jẹki ibi ipamọ EPEL ati RPM Fusion sori ẹrọ nipa lilo awọn ofin wọnyi.

Lati fi sori ẹrọ ati mu EPEL ṣiṣẹ, lo pipaṣẹ atẹle.

# yum install epel-release

Lati fi sori ẹrọ ati mu Fusion FPM ṣiṣẹ, lo aṣẹ atẹle lori ẹya pinpin rẹ.

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

Lẹhin ti muu awọn ibi ipamọ ṣiṣẹ, ṣiṣe aṣẹ atẹle lati fi FFmpeg sii:

# yum install ffmpeg ffmpeg-devel
# ffmpeg -version

Lori Fedora, o nilo lati fi sori ẹrọ ati mu Fusion FP ṣiṣẹ lati fi FFmpeg sori ẹrọ bi o ti han.

$ 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

Pipọ sọfitiwia lati orisun kan kii ṣe nkan ti o rọrun julọ ni agbaye, ṣugbọn pẹlu awọn itọnisọna to tọ, a yoo ni anfani lati ṣe. Ni akọkọ, rii daju pe eto rẹ pade gbogbo awọn igbẹkẹle. Fifi sori ẹrọ ti awọn igbẹkẹle wọnyi le ṣee ṣe pẹlu iranlọwọ ti awọn ofin wọnyi.

Ni akọkọ, sọ fun eto naa lati fa awọn idii tuntun silẹ.

$ sudo apt-get update

Fi awọn igbẹkẹle sii pẹlu aṣẹ atẹle.

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

Lẹhinna lo aṣẹ atẹle lati ṣẹda itọsọna tuntun fun awọn orisun FFmpeg. Eyi ni itọsọna nibiti awọn faili orisun yoo gba lati ayelujara.

$ mkdir ~/ffmpeg_sources

Bayi ṣajọ ki o fi sori ẹrọ apejọ yasm ti FFmpeg lo nipasẹ ṣiṣe awọn ofin wọnyi.

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

Lẹhin ti o ti fi sori ẹrọ asasia yasm ni ifijišẹ o to akoko lati fi sori ẹrọ diẹ ninu awọn koodu aiyipada ti yoo ṣee lo pẹlu awọn irinṣẹ FFmpeg kan pato. Lo awọn ofin wọnyi lati fi sori ẹrọ encoder fidio 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

Kooduopo ti o wulo ti o wuyi miiran jẹ koodu ohun afetigbọ ohun afetigbọ libfdk-aac 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

Fi sori ẹrọ ohun afetigbọ ohun afetigbọ libopus ati 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

Bayi, o to akoko lati fi sori ẹrọ ffmpeg lati orisun.

$ 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

Akiyesi: Ti o ko ba ti fi awọn kooduopo kan sori ẹrọ, rii daju lati yọ ‘–enable-encoder_name‘ kuro loke ’.

Ọpọlọpọ awọn kooduopo ti o le fi sii, ṣugbọn irun idi ti nkan yii Emi kii yoo fi gbogbo wọn sii, ṣugbọn o le fi wọn sii nipa lilo awọn itọsọna osise atẹle.

  1. Itọsọna Akopọ FFmpeg fun Ubuntu
  2. Itọsọna Akopọ FFmpeg fun CentOS

Ipari

Ninu apakan akọkọ yii, a ṣe imudojuiwọn awọn onkawe wa pẹlu awọn iroyin tuntun ni ibamu si ilana FFmpeg multimedia ati fihan wọn bi wọn ṣe le fi sori ẹrọ lori awọn ẹrọ Linux wọn. Apa ti n bọ yoo jẹ ni kikun nipa kikọ ẹkọ bi o ṣe le lo awọn irinṣẹ iyalẹnu ninu ilana ilana multimedia akọkọ yii.

Imudojuiwọn: Apakan 2 ti jara FFmpeg yii ni a tẹjade, eyiti o fihan diẹ ninu iwulo laini aṣẹ ffmpeg ti o wulo lati ṣe ọpọlọpọ ohun afetigbọ, fidio, ati awọn ilana iyipada aworan: 15 Awọn iwulo ‘FFmpeg’ Wulo fun Fidio, Ohun ati Iyipada Aworan ni Lainos.