FFmpeg
FFmpeg | |
---|---|
Kehittäjä | FFmpeg team |
Kehityshistoria | |
Vakaa versio | 7.1 ()[1] |
Kehitystilanne | aktiivinen |
Tiedot | |
Ohjelmistotyyppi | Multimediakehys |
Alusta | monialustainen |
Ohjelmointikielet | C ja Assembly[2] |
Lisenssi | LGPL |
Aiheesta muualla | |
ffmpeg.org | |
Versiohallinta |
FFmpeg on kokoelma vapaita ohjelmistoja, jotka voivat tallentaa, muuntaa ja suoralähettää digitaalista ääntä ja videota. FFmpeg:tä kehitetään Linuxissa, mutta se voidaan kääntää monille muille käyttöjärjestelmille, esimerkiksi Windowsille. FFmpeg-projekti sisältää libavcodec-koodekkikirjaston.
Projektin aloitti Fabrice Bellard[3] (nimimerkillä Gérard Lantau). Suurin osa FFmpeg:n kehittäjistä on myös mukana MPlayer-projektissa ja FFmpeg:n kotisivut ovat MPlayerin palvelimella.
Historia
[muokkaa | muokkaa wikitekstiä]Projektin aloitti Fabrice Bellard, joka on tunnettu myös useista muista projekteista kuten QEMU.[4] Bellard perusti projektin nimimerkillä Gerard Lantau vuonna 2000 ja vuodesta 2004 sitä on ylläpitänyt Michael Niedermayer. Niedermayer erosi projektin johdosta vuonna 2015 johtuen erimielisyydestä projektin yhteisön kanssa.[5]
Projektin rakenne
[muokkaa | muokkaa wikitekstiä]FFmpeg koostuu monesta komponentista:
- ffmpeg on komentorivityökalu videotiedoston kääntämiseen muodosta toiseen. Se tukee myös reaaliaikaista videon sieppausta ja enkoodaamista TV-kortista.
- ffserver on HTTP-multimediapalvelin (RTSP:tä kehitetään) suoriin lähetyksiin (streaming). Suoran lähetyksen ajansiirto on myös tuettuna.
- ffplay on yksinkertainen mediasoitin, joka perustuu SDL:ään ja FFmpeg-kirjastoihin.
- libavcodec on kirjasto, joka sisältää kaikki FFmpeg:n audio/video-enkooderit ja -dekooderit. Suurin osa on kehitetty tyhjästä parhaan suorituskyvyn ja koodin uudelleenkäytettävyyden vuoksi.
- libavformat on eri säiliömuodoille demultipleksaajat ja multipleksaajat sisältävä kirjasto.
- libavutil on apukirjasto FFmpeg:n eri osien yhteisiä rutiineja varten.
- libpostproc on videon jälkikäsittelyrutiinit sisältävä kirjasto.
- libswscale on kirjasto, joka sisältää videonskaalausrutiinit.
Tekniikka
[muokkaa | muokkaa wikitekstiä]FFmpeg tukee eri rajapintoja laitteistokäsittelyyn. Henkilökohtaisissa tietokoneissa videokäsittely on tyypillisesti integroituna grafiikkaprosessoriin ja mobiililaitteiden järjestelmäpiirit käyttävät eri valmistajien ytimiä. Tuettuja rajapintoja ovat muun muassa VAAPI ja VDPAU alustasta riippuen.[6] Toukokuussa 2023 kerrottiin, että projekti on lisännyt Vulkan-tuen dekoodaukseen. Tuki julkaistiin FFmpeg versiossa 6.1.[7][8] Tuki laitteistopakkaukseen Vulkan-rajapinnan kautta julkaistiin versiossa 7.1.[9]
Julkaisut
[muokkaa | muokkaa wikitekstiä]FFmpeg:tä julkaistaan LGPL:än tai GNU GPL:än alla, riippuen siitä mitä alikirjastoja sisällytetään. Muodollisia julkaisuja ei ole. Sen sijaan, FFmpeg:n kehittäjät suosittelevat käyttämään viimeisimpiä Subversion-tilannevedoksia (snapshot), sillä projekti ylläpitää jatkuvasti vakaata kehitysrunkoa.
Laillinen status
[muokkaa | muokkaa wikitekstiä]Tähän artikkeliin tai osioon ei ole merkitty lähteitä, joten tiedot kannattaa tarkistaa muista tietolähteistä. Voit auttaa Wikipediaa lisäämällä artikkeliin tarkistettavissa olevia lähteitä ja merkitsemällä ne ohjeen mukaan. |
FFmpeg:n kehittäjät ovat takaisinmallintaneetlähde? ja uudelleentoteuttaneet mm. seuraavat patentoidut koodekit:
- Sorenson 3-koodekki (käytetään monissa QuickTime-videoissa)
- Advanced Systems Format
- Windows Media Audio
- Windows Media Video
- QDesign Music Codec 2 (QuickTime 7:ää vanhemmissa QuickTime-videoissa käytetty)
FFmpegin tekijöiden mukaan ei ole selkeää sisältääkö se patentoituja algoritmeja muun muassa johtuen standardien käyttämistä sanamuodoista.[10] Lisäksi lait vaihtelevat eri maissa ja monet maat eivät tunnusta patentteja ohjelmistoalgoritmeille.[10]
Ohjelmistopatentit ovat maakohtaisia, joten patentit ovat voimassa vain siellä, missä keksijä on sitä hakenut ja se on myönnetty. Jotkin Euroopan unionin maat, kuten Suomi, myöntävät patentteja myös ohjelmistoille ja koodekeille, vaikka ohjelmistopatentit eivät ole vielä voimassa Euroopassa.lähde?
Moni näiden koodekkien valmistajista on julkaissut tuotteensa sellaisten ehtojen alla, jotka kieltävät takaisinmallinnuksen, myös yhteensopivuustarkoituksessa. Nämä käyttöehdot eivät ole lainvoimaisia kaikissa maissa.lähde?
Näistä syistä moni jakelu ei sisällä FFmpeg:tä välttyäkseen lakiongelmilta. Suomessa FFmpegin käyttö lienee täysin laillista, koska ohjelmistopatentit eivät ole lainvoimaisia Suomessa.lähde?
Haarautukset
[muokkaa | muokkaa wikitekstiä]Libav oli vaihtoehtoinen kirjasto, jonka osa kehittäjistä haarautti FFmpegistä maaliskuussa 2011.[11]
Libav levisi, koska yksi skismaattisista kehittäjistä oli myös Debian- ja Ubuntu-käyttöjärjestelmien paketoija, ja hän vaihtoi tämän kirjaston FFmpeg:n tilalle. FFmpeg oli kuitenkin aktiivisemmin kehitetty ja otti käyttöönsä kaikki parannukset ja bugikorjaukset libav:sta, jossa bugien korjaus saattoi kestää kuukausia tai vuoden verran.[12] Debian vaihtoi takaisin FFmpegiin vuonna 2015.[13] Nykyisin libav-projekti on lakkautettu.
Käyttö
[muokkaa | muokkaa wikitekstiä]FFmpeg on perusmuodoltaan komentoriviohjelma, mutta soveltuu myös kevyeen videon editointiin, kuten leikkauksiin tai yhdistämiseen.
Esimerkiksi komentorivi leikkaa videosta pätkän kohdasta 0:10 – 1:20 toiseen tiedostoon (parametri -t kertoisi leikattava osan pituuden).
ffmpeg -ss 00:00:10 -to 00:1:20 -i video.mp4 -acodec copy -vcodec copy leikkaus.mp4
Tiedoston voi uudelleenpakata YouTuben suositeltuihin asetuksiin (Progressive scan, High Profile, 2 consecutive B frames, closed GOP. GOP of half the frame rate, CABAC, variable bitrate, Chroma subsampling: 4:2:0[14]), olettaen tiedoston olevan 60 fps, jolloin I-framella alkava Group of Pictures (GOP) (parametri -g) on puolet kuvataajuudesta. (lähteenä[15]).
ffmpeg -i video.mp4 -c:v libx264 -profile:v high -preset veryslow -bf 2 -g 30 -crf 18 -pix_fmt yuv420p tulos.mp4
FFmpeg-dokumentaatiosta DVD-levyn rippaus (levyn salaus avattu) DivX5-yhteensopivaksi videoksi MPEG-4-videolla ja MP3-ääniraidalla:[16]
ffmpeg -i dvd_1.vob -f avi -c:v mpeg4 -b:v 800k -g 300 -bf 2 -c:a libmp3lame -b:a 128k elokuva.avi
Katso myös
[muokkaa | muokkaa wikitekstiä]Lähteet
[muokkaa | muokkaa wikitekstiä]- ↑ FFmpeg 7.1 "Péter", (viitattu ). Tieto on haettu Wikidatasta.
- ↑ Developer Documentation ffmpeg.org. Viitattu 9.3.2024. (englanniksi)
- ↑ FFmpeg License and Legal Considerations ffmpeg.org. Viitattu 25.11.2023. (englanniksi)
- ↑ Liam Proven: FFmpeg 6.1 drops a Heaviside dose of codec magic theregister.com. 24.11.2023. Viitattu 25.11.2023. (englanniksi)
- ↑ Neil McAllister: Fork off! FFmpeg project leader quits, says he's had enough with these forking AV libraries theregister.com. 5.8.2015. Viitattu 25.11.2023. (englanniksi)
- ↑ HWAccelIntro trac.ffmpeg.org. Viitattu 20.10.2023. (englanniksi)
- ↑ News ffmpeg.org. Viitattu 20.10.2023. (englanniksi)
- ↑ November 10th, 2023, FFmpeg 6.1 "Heaviside" ffmpeg.org. Viitattu 12.11.2023. (englanniksi)
- ↑ Marius Nestor: FFmpeg 7.1 “Péter” Released with Full Native VVC Decoder, Vulkan Hardware Encoding 9to5linux.com. 30.9.2024. Viitattu 4.10.2024. (englanniksi)
- ↑ a b Patent Mini-FAQ ffmpeg.org. Viitattu 6.7.2022. (englanniksi)
- ↑ https://www.phoronix.com/news/OTIwNw
- ↑ https://wiki.debian.org/Debate/libav-provider/ffmpeg
- ↑ https://lists.debian.org/debian-devel-announce/2015/07/msg00001.html
- ↑ https://support.google.com/youtube/answer/1722171
- ↑ https://gist.github.com/mikoim/27e4e0dc64e384adbcb91ff10a2d3678
- ↑ https://ffmpeg.org/ffmpeg.html#Video-and-Audio-file-format-conversion
Aiheesta muualla
[muokkaa | muokkaa wikitekstiä]- FFmpeg:n kotisivut
- World Domination 201 - Artikkeli FFmpeg:n ja muiden puuttumisesta Linux-jakeluista tiettyjen maiden lakien vuoksi.