
Praegu on 2019. aasta ja on aeg otsustada GIF'ide ĂŒle ( â siin on jutt hÀÀldamisest inglise keeles, mis ei puuduta meid â mĂ€rk. tĂ”lk.). GIF'id vĂ”tavad tohutult ruumi (tavaliselt mitmeid megabaite!), mis, kui oled veebiarendaja, on tĂ€ielik vastand sellele, mida soovid! Veebiarendajana tahad vĂ€hendada seda, mida kasutajad peavad allalaadima, et veebisait kiirelt laadida. Sama pĂ”hjuse tĂ”ttu optimeerid JavaScript'i, vĂ€hendad PNG-sid, JPEG'e ja vahel ka konverteerid . Kuid mis teha vanameister GIF'iga?
Kohas, kuhu me suundume, ei ole GIF'e vaja!
Kui sinu eesmĂ€rk on parandada veebisaidi laadimiskiirust, siis tuleb GIF'idest vabaneda! Kuid kuidas siis teha animeeritud pilte? Vastus â video. Ja enamikul juhtudel saad parema kvaliteedi ja ruumi kokkuhoiu 50-90%! Enamik asju elus toob endaga kaasa plussid ja miinused. Kui asendad GIF'i videoga, pole miinuseid tĂ”enĂ€oliselt lihtne leida.
Maha kÔik GIF'id!
Ănneks on GIF'i asendamine videoga juba aastaid tavapĂ€rane asjaolu, seega on kĂ”ik vajalikud tööriistad juba kĂ€igus. Selles postituses ma ei hakka jalgratast leiutama, vaid tĂ€iendan olemasolevaid lahendusi. Niisiis, siin on see, mida tuleb teha:
- VÔta GIF ja konverteeri see videoks
- Kodeeri video H.264 vÔi VP9 abil, st kompressi see ja pakka MP4 vÔi WebM konteinerisse
- Asenda
<img>animeeritud GIF'igavideosĂŒnkrooni - KĂ€ivita, ilma helita, ja tsĂŒklite, et saavutada GIF'i effekt
Praegu on 2019. aasta
Praegu on 2019. aasta. Edusammud liiguvad edasi ja me ei tohiks maha jÀÀda. Siiani on meil olnud kaks koodeki varianti, mis on laialdaselt toetatud kÔigis brauserites ja video kodeerimise tööriistades:
- H.264 â 2003. aastal esmakordselt ilmavalgust nĂ€inud ja tĂ€naseks laialdaselt kasutatav
- VP9 â 2013. aastal esmakordselt ilmavalgust nĂ€inud ja saavutanud peaaegu 50% paremast kompressioonist vĂ”rreldes H.264-ga, kuigi ei ole kĂ”ik ja alati nii roosilised
MĂ€rkus: kuigi H.265 standard on H.264 jĂ€rgmine versioon ja suudab konkureerida VP9-ga, ei vĂ”ta ma seda arvesse nĂ”rga brauseritootmise tĂ”ttu, mida tĂ”estab leht . Litsentsitasud on peamine pĂ”hjus, miks H.265 ei ole sama ulatuslik kui H.264 ning miks avatud meedia allianss töötab tasudeta koodeki â AV1 kallal.
Pea meeles, et meie eesmĂ€rk on vĂ€hendada tohutuid GIF'e kĂ”ige vĂ€iksema vĂ”imaliku suuruseni, et kiirendada laadimist. See oleks kummaline 2019. aasta, kui meil ei oleks oma arsenalis uut standardit videote kompressimiseks. Aga see on olemas ja seda nimetatakse AV1. AV1 vĂ”imaldab . Ilus! đ
AV1 on saadaval alates 2019. aastast!
Töölauas
Hiljuti lisati AV1 video dekodeerimise toetus töölaua versioonidesse ja . Praegu on Firefox'is toetus tĂ”rkeid ja vĂ”ib pĂ”hjustada krahhe, kuid asjad peaksid paranema koos juba Firefox 67-s ( â kt. tĂ”lge). Uue versiooni kohta lisateabe saamiseks vaadake â
Nutitelefonides
Nutitelefonides puudub praegu riistvara toetus, kuna sobivaid dekoodereid pole. Saad teha tarkvaralise dekodeerimise, kuid see suurendab akut. Esimesed mobiilsed SOC-id, mis toetavad AV1 riistvara dekodeerimist, ilmuvad 2020. aastal.
Ja siin on artikli lugejad sellised: «Kui mobiilid ei toeta korralikult, miks siis kasutada AV1?»
AV1 on ĂŒsna uus koodek ja me oleme alles selle kohandamise alguses. MĂ”tle sellele artiklile kui etapp, kus «kui sa valmistad, siis inimesed liituvad». Tugi töölaual kiirendab juba saidid osa publikast. Ja vanu koodekeid saab kasutada tagasilangemise stsenaariumi, kui sihtseadmest AV1 ei toetata. Kuid kui kasutajad liiguvad seadmete poole, mis toetavad AV1, on kĂ”ik juba valmis. Selleks peame looma video sildi, nagu allpool nĂ€idatud, et lubada brauseril valida eelistatud vorming â AV1 ->> VP9 ->> H.264. Ja kui kasutajal on ÀÀrmiselt vana seade vĂ”i brauser, mis ei toeta ĂŒldse videoid (mis on ĂŒlimalt ebatĂ”enĂ€oline H264 puhul), siis nĂ€eb ta lihtsalt GIF'i
<video style="display:block; margin: 0 auto;" autoplay loop muted playsinline poster="RollingCredits.jpg">
<source src="media/RollingCredits.av1.mp4" type="video/mp4">
<source src="media/RollingCredits.vp9.webm" type="video/webm">
<source src="media/RollingCredits.x264.mp4" type="video/mp4">
<img src="media/RollingCredits.gif">
</video>AV1 loomine
AV1-s video loomine ei ole keeruline. ja kasuta allolevaid kÀske. Me kasutame sihtbitrate saavutamiseks kahte lÀbimist. Selleks kÀivitame ffmpeg'i kaks korda. Esmakordselt salvestame tulemuse mitteolemasolevasse faili. See loob logi, mida vajatakse teise ffmpeg'i kÀivitamiseks.
# Linux or Mac
## ĐŃĐŸŃ
ĐŸĐŽ 1
ffmpeg -i input.mp4 -c:v libaom-av1 -b:v 200k -filter:v scale=720:-1 -strict experimental -cpu-used 1 -tile-columns 2 -row-mt 1 -threads 8 -pass 1 -f mp4 /dev/null &&
## ĐŃĐŸŃ
ĐŸĐŽ 2
ffmpeg -i input.mp4 -pix_fmt yuv420p -movflags faststart -c:v libaom-av1 -b:v 200k -filter:v scale=720:-1 -strict experimental -cpu-used 1 -tile-columns 2 -row-mt 1 -threads 8 -pass 2 output.mp4
# Windows
## ĐŃĐŸŃ
ĐŸĐŽ 1
ffmpeg.exe -i input.mp4 -c:v libaom-av1 -b:v 200k -filter:v scale=720:-1 -strict experimental -cpu-used 1 -tile-columns 2 -row-mt 1 -threads 8 -pass 1 -f mp4 NUL && ^
## ĐŃĐŸŃ
ĐŸĐŽ 2
ffmpeg.exe -i input.mp4 -pix_fmt yuv420p -movflags faststart -c:v libaom-av1 -b:v 200k -filter:v scale=720:-1 -strict experimental -cpu-used 1 -tile-columns 2 -row-mt 1 -threads 8 -pass 2 output.mp4Siin on parameetrite selgitus:
-i - Sissekanne.
-pix_fmt - Kasutame 4:2:0 formaati video värvinformatsiooni valimiseks. On palju teisi võimalikke formaate, kuid 4:2:0 on kõige ühilduvam.
-c:v - Millist koodekit kasutada, meie puhul - AV1.<br />
-b:v – Keskmine bitikiirus, mida soovime saavutada.
-filter:v scale - ffmpeg'i suurendamisfilter, mida kasutatakse video eraldusvõime vähendamiseks. Seame X:-1, mis ütleb ffmpeg'ile, et vähendada laiust X, säilitades kuvasuhte.
-strict experimental - Tuleb määrata, kuna AV1 on piisavalt uus koodek.
-cpu-used - Kohutavalt nimetatud parameeter, mida tegelikult kasutatakse video kvaliteeditaseme valimiseks. Võimalikud väärtused 0-4. Mida väiksem väärtus, seda parem kvaliteet ja vastavalt sellele kauem aega, mis kulub kodeerimiseks.
-tile-columns - Kogub mitmeid lõime. Ütleb AV1-le, et jagada video eraldi veergudeks, mis võivad sõltumatult kodeeritud olla, et paremini ära kasutada protsessorit.
-row-mt – Sama, mis eelmine parameeter, kuid jagab ka read veergude sees.
-threads - Lõimede arv.
-pass - Milline läbimine toimub hetkel.
-f - Kasutatakse ainult esimesel läbimisel. Määrab väljundfaili formaadi, st MP4 meie puhul.
-movflags faststart - Lülitame sisse video kiire alguse, nihutades osa andmeid faili algusesse. See võimaldab mängimist alustada enne faili täielikku laadimist.
GIFi loomine
GIFi loomiseks kasutasin allpool olevat kÀsku. GIFi suuruse vÀhendamiseks skaleerisin selle laiusel 720px ja 12 fps asemel algse video 24 fps.
./ffmpeg -i /mnt/c/Users/kasing/Desktop/ToS.mov -ss 00:08:08 -t 12
-filter_complex "[0:v] fps=12,scale=720:-1" -y scene2.gifTestide tulemused
Ăks kord on parem kui sada korda lugeda, eks? Veendume, et AV1 on meie eesmĂ€rkide jaoks Ă”ige valik. Kasutasin tasuta videot Tears Of Steel, mis on saadaval siin , ja muutsin selle, kasutades AV1, VP9 ja H.264 koodekite jaoks umbkaudu sama bitikiirus. Tulemused on allpool, et saaksite neid ise vĂ”rrelda.
MÀrkus 1: Kui allolev fail ei laadi, vÔib olla aeg oma brauserit uuendada. Soovitan Chromiumi pÔhist brauserit, nagu Chrome, Vivaldi, Brave vÔi Opera. Siin on viimane teave AV1 toe kohta
MĂ€rkus 2: Firefox 66 puhul Linuxis peate seadistama lipu media.av1.enabled vÀÀrtuse true ĂŒhes about:config
MÀrkus 3: Otsustasin mitte lisada tavalisi GIF-e allpool nende suure suuruse ja andmemahtude tÔttu, mis vÔiksid selle lehe laadimiseks vajalikud olla! (Mis oleks iroonia, sest see leht kÀsitleb andmemahtude vÀhendamist :)). Kuid vÔite vaadata lÔplikke GIF-e siin
TĂ”lkija mĂ€rkus: Habr ei luba autolaadimist ega faili tsĂŒklit, seega on kvaliteedi hindamine ainus vĂ”imalik. Elavas vormis saab "animeeritud pilte" nĂ€ha .
Stseen 1 @ 200 Kbps
Siin on palju liikumist, mis on madalatel bitikiirusel eriti tundlik. On kohe nÀha, kui halb H.264 selle bitikiirusel on, ruudud on kohe nÀhtavad. VP9 parandab olukorda veidi, kuid ruudud on endiselt nÀhtavad. AV1 on selgelt parem, pakkudes ilmselgelt paremat pilti.
H.264
VP9
AV1
Stseen 2 @ 200 Kbps
Siin on palju poollĂ€bipaistvat CGI sisu. Tulemused ei erine enam nii palju kui eelmisel korral, kuid ĂŒldiselt nĂ€eb AV1 parem vĂ€lja.
H.264
VP9
AV1
Stseen 3 @ 100 Kbps
Selles stseenis vĂ€hendame bitikiirust 100 Kbps-ni ja tulemused vastavad sellele. AV1 pĂŒsib madalatel bitikiirusel endiselt parim!
H.264
VP9
AV1
Tordi kirsike
LĂ”petamaks artiklit, tunne, kui palju liiklust on kokku hoitud vĂ”rreldes GIF-iga - kĂ”igi ĂŒlaltoodud videotega kokkuvĂ”tlik suurus⊠1.62 MB!! Just nii. Need on kuradi 1,708,032 baiti! VĂ”rdluseks, siin on GIF ja AV1 suurused iga stseeni jaoks
GIF
AV1
Stseen 1
11.7 MB
0.33 MB
Stseen 2
7.27 MB
0.18 MB
Stseen 3
5.62 MB
0.088 MB
Lihtsalt hÀmmastav! Kas pole?
MÀrkus: VP9 ja H264 failide suurust ei ole esitatud, kuna need ei erine AV1-st praktiliselt nende sama bitikiiruse tÔttu. Oleks liialdus lisada veel kaks samasugust veergu, et rÔhutada, et need koodekid pakuvad palju paremat kvaliteeti kui GIF palju vÀiksemate failisuurustega.
Allikas: habr.com
