Introduksjon til FFmpeg
FFmpeg er en løsning for å ta opp,
konvertere og strømme lyd og video. Det er en veldig rask video og
lyd konverterer og den kan også hentes fra en live lyd-/videokilde.
Designet for å være intuitivt, kommandolinjegrensesnittet
(ffmpeg) prøver å
finne ut av alle parametere, når det er mulig. FFmpeg kan også konvertere fra hvilken som
helst samplingsfrekvens til en hvilken som helst annen, og endre
størrelse på video i farten med et høykvalitets flerfasefilter.
FFmpeg kan bruke en Video4Linux
kompatibel videokilde og en hvilken som helst Open Sound System
lydkilde.
Denne pakken er kjent for å bygge og fungere riktig ved å bruke en
LFS 12.1 plattform.
Pakkeinformasjon
-
Nedlasting (HTTP): https://ffmpeg.org/releases/ffmpeg-6.1.1.tar.xz
-
Nedlasting MD5 sum: 341d719415b7f95bb59f5016f2864ac6
-
Nedlastingsstørrelse: 10 MB
-
Estimert diskplass som kreves: 237 MB (legg til 1,5 GB for
FATE-pakke/testene, legg til 792 MB for dokumentasjon)
-
Estimert byggetid: 1.3 SBU (bruker parallellisme=4; legg til
3.2 SBU (med THREADS=4) for å kjøre FATE-pakken etter at
eksempelfiler er lastet ned; legg til 0,3 SBU for doxygen
dokumenter)
Ytterligere Nedlastinger
FFmpeg Avhengigheter
Anbefalt
libaom-3.8.1, libass-0.17.1, fdk-aac-2.0.3, FreeType-2.13.2, LAME-3.100, libvorbis-1.3.7,
libvpx-1.14.0, Opus-1.4, x264-20240216, x265-20240216, og NASM-2.16.01 eller yasm-1.3.0
Anbefalt for skrivebordsbruk
alsa-lib-1.2.11, libva-2.20.0, libvdpau-1.5 (med den
tilsvarende driverpakken), og SDL2-2.30.0
Valgfri
Doxygen-1.10.0, Fontconfig-2.15.0, FriBidi-1.0.13, frei0r-plugins-1.8.0, libcdio-2.1.0 (å
identifisere og spille av CDer), libdrm-2.4.120 (for
“kmsgrab”
inndata), libwebp-1.3.2, opencv-4.9.0,
OpenJPEG-2.5.0, GnuTLS-3.8.3,
PulseAudio-17.0, Samba-4.19.5,
Speex-1.2.1, texlive-20230313 (eller install-tl-unx) for PDF og PS dokumentasjon,
v4l-utils-1.26.1, Vulkan-Loader-1.3.277, XviD-1.3.7, et grafiske miljø,
dav1d, Flite,
GSM,
libaacplus, libbluray,
libcaca, libcelt, libdc1394,
libdca,
libiec61883,
libilbc, libmodplug,
libnut (Git checkout),
librtmp,
libssh,
libtheora,
OpenAL, OpenCore AMR,
Srt,
Schroedinger,
TwoLAME,
vo-aaenc,
vo-amrwbenc,
og ZVBI
Installasjon av FFmpeg
Først bruker du en oppdatering som legger til et API som er
nødvendig for at noen pakker skal bygge:
patch -Np1 -i ../ffmpeg-6.1.1-chromium_method-1.patch
Installer FFmpeg ved å kjøre
følgende kommandoer:
sed -i 's/-lflite"/-lflite -lasound"/' configure &&
./configure --prefix=/usr \
--enable-gpl \
--enable-version3 \
--enable-nonfree \
--disable-static \
--enable-shared \
--disable-debug \
--enable-libaom \
--enable-libass \
--enable-libfdk-aac \
--enable-libfreetype \
--enable-libmp3lame \
--enable-libopus \
--enable-libtheora \
--enable-libvorbis \
--enable-libvpx \
--enable-libx264 \
--enable-libx265 \
--enable-openssl \
--disable-vulkan \
--ignore-tests=enhanced-flv-av1 \
--docdir=/usr/share/doc/ffmpeg-6.1.1 &&
make &&
gcc tools/qt-faststart.c -o tools/qt-faststart
HTML dokumentasjon ble bygget i forrige trinn. Hvis du har
texlive-20230313 installert og ønsker
å bygge PDF og Postscript versjoner av dokumentasjonen, utsted
følgende kommandoer:
pushd doc &&
for DOCNAME in `basename -s .html *.html`
do
texi2pdf -b $DOCNAME.texi &&
texi2dvi -b $DOCNAME.texi &&
dvips -o $DOCNAME.ps \
$DOCNAME.dvi
done &&
popd &&
unset DOCNAME
Hvis du har Doxygen-1.10.0 installert og du ønsker å bygge
(hvis --disable-doc var brukt) eller gjenoppbygge html
dokumentasjonen, kjør:
doxygen doc/Doxyfile
Fate-suite testene inkluderer sammenligninger med installerte
filer, og bør ikke kjøres før pakken er installert. Derfor, hvis du
ønsker å kjøre dem, instruksjoner er gitt nedenfor.
Nå, som root
bruker:
make install &&
install -v -m755 tools/qt-faststart /usr/bin &&
install -v -m755 -d /usr/share/doc/ffmpeg-6.1.1 &&
install -v -m644 doc/*.txt /usr/share/doc/ffmpeg-6.1.1
Hvis PDF og Postscript dokumentasjonen ble bygget, utsted følgende
kommandoer, som root
bruker, for å
installere dem:
install -v -m644 doc/*.pdf /usr/share/doc/ffmpeg-6.1.1 &&
install -v -m644 doc/*.ps /usr/share/doc/ffmpeg-6.1.1
Hvis du brukte doxygen for å manuelt opprette
API dokumentasjonen, installer den ved å utstede følgende
kommandoer som root
bruker:
install -v -m755 -d /usr/share/doc/ffmpeg-6.1.1/api &&
cp -vr doc/doxy/html/* /usr/share/doc/ffmpeg-6.1.1/api &&
find /usr/share/doc/ffmpeg-6.1.1/api -type f -exec chmod -c 0644 \{} \; &&
find /usr/share/doc/ffmpeg-6.1.1/api -type d -exec chmod -c 0755 \{} \;
For å teste installasjonen riktig må du ha rsync-3.2.7
installert og følg instruksjonene for FFmpeg Automated Testing
Environment (FATE). Først ca 1 GB med eksempelfiler brukt for å
kjøre FATE lastes ned med kommandoen:
make fate-rsync SAMPLES=fate-suite/
fate-suite
mappen er opprettet og
filene lastes ned der. Den kommandoen kjører faktisk en rsync
kommando for å hente eksempelfilene. Det kan være lurt å komprimere
og beholde denne mappen for testing på nytt, for testing i et annet
system, eller for når en ny versjon av ffmpeg er utgitt. Pakk
deretter ut prøvefiler i kildemappen, og kjør make fate-rsync ... kommandoen
ovenfor for å synkronisere med oppstrømsdepotet.
Nedlastingsstørrelse og tid reduseres drastisk ved å gjøre dette.
Antatte verdier i "Pakkeinformasjon" inkluderer ikke nedlastings
SBU. Noen tester kan ha blitt fjernet i nyere versjoner, så for å
være sikker lokale og server fate prøver er identiske når du bruker
tidligere lagrede eksempler, kjør følgende kommando:
rsync -vrltLW --delete --timeout=60 --contimeout=60 \
rsync://fate-suite.ffmpeg.org/fate-suite/ fate-suite/
Deretter utfører du FATE med følgende kommandoer (det er mer enn
3800 tester i pakken):
make fate THREADS=N
SAMPLES=fate-suite/ | tee ../fate.log &&
grep ^TEST ../fate.log | wc -l
hvor N
er et heltall,
N
≤ antall kjerner i
systemet.
En vellykket kjøring skal ikke returnere noen feil eller advarsler,
bare en liste over tester og totalt antall på slutten.
Parameterforklaringer
find ... ;: Retter
tillatelser for dokumentasjonsfiler og mapper.
--enable-libfreetype
:
Aktiverer Freetype støtte.
--enable-gpl
: Aktiverer
bruk av GPL kode og tillater støtte for etterbehandling, swscale og
mange andre funksjoner.
--enable-version3
:
Aktiverer bruken av (L)GPL versjon 3 kode.
--enable-nonfree
: Aktiverer
bruk av ikke-gratis kode. Vær oppmerksom på at de resulterende
bibliotekene og binærfilene ikke kan distribueres.
--disable-static
: Denne
bryteren forhindrer installasjon av statiske versjoner av
bibliotekene.
--enable-shared
: Aktiverer
bygging av delte biblioteker, ellers bygges og installeres kun
statiske biblioteker.
--disable-debug
:
Deaktiverer bygging av feilsøkingssymboler inn i programmene og
bibliotekene.
--enable-libaom
: Aktiverer
AV1 audio og video dekoding via libaom
.
--enable-libass
: Aktiverer
ASS/SSA undertekstformat gjengivelse via libass
.
--enable-libdrm
: Bruk denne bryteren
hvis libdrm-2.4.120 er installert for å bygge
“kmsgrab”
inndatamodul som er nyttig for skjermopptak eller strømming.
--enable-libfdk-aac
:
Aktiverer AAC lydkoding via libfdk-aac
.
--enable-libmp3lame
:
Aktiverer MP3 lydkoding via libmp3lame
.
--enable-libvorbis
--enable-libvpx
: Aktiverer
WebM koding via libvorbis
og
libvpx
.
--enable-libx264
: Aktiverer
høykvalitets H.264/MPEG-4 AVC koding via libx264
.
--enable-libx265
: Aktiverer
høykvalitets H.265/HEVC koding via libx265
.
--enable-openssl
: Aktiverer
HTTPS protokollen for nettverksstrømmer.
--disable-vulkan
:
Deaktiverer Vulkan for gjeldende versjon av Vulkan-Loader-1.3.277 på grunn av en
API konflikt.
--ignore-tests=...
:
Deaktiverer tester som mislykkes å kjøre på BLFS uten valgfrie
pakker. For øyeblikket er AV1 testen deaktivert ettersom den
trenger dav1d for å gjøre AV1 dekoding på CPUen. Testen kan fungere
hvis du har en GPU som kan dekode AV1, men denne ble ikke testet.
--enable-gnutls
: Bruk dette
alternativet i stedet for --enable-openssl
, hvis du vil bruke
GnuTLS i stedet for OpenSSL for HTTPS protokollen.
--disable-doc
: Deaktiverer bygging av
HTML dokumentasjonen. Dette er kun nødvendig hvis Doxygen-1.10.0 er installert og du ikke ønsker
å bygge html dokumentasjonen.
--enable-libpulse
: Aktiverer støtte for
Pulseaudio for lydutdata.
gcc tools/qt-faststart.c -o
tools/qt-faststart: Dette bygger qt-faststart programmet som kan
endre QuickTime formaterte filmer (.mov
eller .mp4
)
slik at deklarasjon informasjonen er plassert i begynnelsen av
filen i stedet for slutten. Dette gjør at filmfilen kan begynne å
spille før hele filen har blitt lastet ned.
Note
Støtte for de fleste av avhengighetspakkene krever bruk av
alternativer gitt til configure skriptet. Se utdataen
fra ./configure
--help for fullstendig informasjon om å aktivere
avhengighetspakker.
Innhold
Installerte Programmer:
ffmpeg, ffplay, ffprobe, og
qt-faststart
Installerte Biblioteker:
libavcodec.so, libavdevice.so,
libavfilter.so, libavformat.so, libavutil.so, libpostproc.so,
libswresample.so, og libswscale.so
Installerte Mapper:
/usr/include/libav{codec,device,filter,format,util},
/usr/include/libpostproc, /usr/include/libsw{resample,scale},
/usr/share/doc/ffmpeg-6.1.1, og /usr/share/ffmpeg
Korte Beskrivelser
ffmpeg
|
er et kommandolinjeverktøy for å konvertere videofiler,
nettverksstrømmer og inndata fra et TV-kort til flere
videoformater
|
ffplay
|
er en veldig enkel og flyttbar mediespiller som bruker
ffmpeg biblioteker og SDL
biblioteket
|
ffprobe
|
samler informasjon fra multimediestrømmer og skriver den
ut i et menneske og maskinlesbar måte
|
qt-faststart
|
flytter indeksfilen til forsiden av quicktime (mov/mp4)
videoer
|
libavcodec.so
|
er et bibliotek som inneholder FFmpeg kodeker (både koding og
dekoding)
|
libavdevice.so
|
er FFmpeg
enhetshåndterings biblioteket
|
libavfilter.so
|
er et bibliotek med filtre som kan endre video eller lyd
mellom dekoder og koder (eller utdata)
|
libavformat.so
|
er et bibliotek som inneholder filformatene som håndterer
(mux og demux kode for flere formater) brukt av
ffplay som
også tillater generering av lyd eller video strømmer
|
libavresample.so
|
er et bibliotek som inneholder funksjoner for omsampling
av lyd og video.
|
libavutil.so
|
er FFmpeg
verktøybibliotek
|
libpostproc.so
|
er FFmpeg
etterbehandlingsbibliotek
|
libswresample.so
|
er FFmpeg
lydskaleringsbibliotek, den inneholder funksjoner for
konvertering av lydeksempelformater
|
libswscale.so
|
er FFmpeg
bildeskaleringsbibliotek
|