On aeg asendada GIF AV1 videoga

On aeg asendada GIF AV1 videoga

Praegu on 2019. aasta ja meil on aeg teha otsus GIF-ide osas (ei, see ei ole see otsus! Siin me kunagi ei lepi kokku! — siin on jutt ingliskeelsest hÀÀldusest, mis meie jaoks ei ole oluline — nt tĂ”lk.). GIF-id vĂ”tavad tohutult ruumi (tavaliselt mitu megabaiti!), mis, kui olete veebiarendaja, on tĂ€ielikult vastuolus teie soovidega! Veebiarendajana soovite minimeerida kĂ”ike, mida kasutajad peavad allalaadima, et leht kiiremini laadiks. Samal pĂ”hjusel minimeerite JavaScripti, optimeerite PNG-d, JPEG-i ja mĂ”nikord ka konverteerite JPEG-i WebP-ks. Mis me aga teeme vana GIF-iga?

Kohtades, kuhu me suundume, ei ole GIF-e vaja!

Kui teie eesmĂ€rk on veebilehe laadimise kiirus, siis tuleb GIF-idest lahti saada! Aga kuidas siis teha animeeritud pilte? Vastus on video. Ja enamikul juhtudel saate parema kvaliteedi ja ruumi kokkuhoiu 50–90%! Elus on enamikul asjadel oma plussid ja miinused. Kui asendate GIF-i videoga, ei leia te enamasti miinuseid.

KÀsi alla kÔikidele GIF-idele!

KÀesoleval ajal on GIF-ide asendamine videoga olnud tavapÀrane praktika viimastel aastatel, nii et kÔik vajalikud tööriistad on juba olemas. Selles postituses ei hakka ma ratast leiutama, vaid natuke tÀiustan olemasolevaid lahendusi. Nii et siin on asi:

  1. VÔtke GIF ja konverteerige see videoks
  2. Koodige video H.264 vÔi VP9 abil, st tihendage see ja pakkige MP4 vÔi WebM konteinerisse
  3. Asendage <img> animeeritud GIF videoga
  4. Lubage automaatne esitamine ilma helita ja tsĂŒklit, et saavutada GIF-i efekt

Google'il on hea dokumentatsioon selle protsessi kirjeldamiseks.

Praegu on 2019. aasta

Praegu on 2019. aasta. Edusammud liiguvad edasi ja me peame sellest mitte maha jÀÀma. Seni on meil olnud kaks koodekit, mis on laialdaselt toetatud kÔigis brauserites ja videode kodeerimise tööriistades:

  1. H.264 — esmakordselt tutvustatud 2003. aastal ja laialdaselt kasutusel tĂ€napĂ€eval
  2. , mis on toetatud umbes Ÿ browsereid (sealhulgas mobiilseadmeid). — esmakordselt tutvustatud 2013. aastal ja saavutanud peaaegu 50% parema tihenduse vĂ”rreldes H.264, kuigi nagu siin kirjutatakse ei ole kĂ”ik ja mitte alati nii roosilised

MĂ€rkus: kuigi H.265 standard on jĂ€rgmine versioon H.264 ja suudab konkureerida VP9-ga, ei vaata ma seda nĂ”rkade brauseritoe tĂ”ttu, nagu on nĂ€idatud lehelt https://caniuse.com/#feat=hevc. Üks peamisi pĂ”hjusi, miks H.265 ei ole saanud sama populaarseks kui H.264, on litsentsimise kulud, ning seetĂ”ttu töötab Alliance of Open Media avatud koodekiga AV1, mis ei nĂ”ua tasu.

Pidage meeles, et meie eesmĂ€rk on vĂ€hendada suuri GIF-e vĂ”imalikult vĂ€ikseks, et kiirendada laadimist. 2019. aasta oleks olnud kummaline, kui meil poleks olnud uut videotihenduse standardit. Kuid see on olemas ja seda kutsutakse AV1. AV1 vĂ”imaldab saavutada umbes 30% paremat tihendust vĂ”rreldes VP9. Imeline! 🙂

AV1 on teie kÀsutuses alates 2019. aastast!

Arvutites

Hiljuti lisati AV1 video dekodeerimise tugi töölauaversioonidesse Google Chrome 70 ja Mozilla Firefox 65. Praegu on Firefoxi tugi veidi vigane ja vĂ”ib pĂ”hjustada kokkupea, kuid asjad peaksid paranema koos dav1d dekoodri lisamisega juba Firefox 67 (on vĂ€lja antud ning tugi on nĂŒĂŒd olemas — toimetaja mĂ€rkus). Lisateabe jaoks lugeda — dav1d 0.3.0 vĂ€ljaanne: veelgi kiirem!

Nutitelefonides

Nutitelefonides puudub praegu riistvaraline tugi, kuna sobivaid dekoodreid pole. Programmiline dekodeerimine on vÔimalik, kuid see suurendab aku kasutust. Esimesed mobiilised SOC-d, mis toetavad AV1 riistvaralist dekodeerimist, peaksid ilmuma 2020. aastal.

Ja siis on lugejad sellised: "Aga kui mobiilid ei toeta veel korralikult, miks siis kasutada AV1?"

AV1 on ĂŒsna uus koodek ja me oleme alles selle kohandamise alguses. Vaadake sellele artiklile kui staadiumile "kui te valmistate, rahvas on eelnevalt valmis". Tugi töölauaarvutites kiirendab juba mĂ”nes mĂ”ttes veebisaite. Vanemaid koodekeid saab kasutada varuvariantidena, kui sihtseadmel pole AV1 toe. Samasugused seadmeid toetavatele seadmetele ĂŒleminekuga on kĂ”ik juba valmis. Selle saavutamiseks peame looma video sildi, nagu allpool nĂ€idatud, mis vĂ”imaldab brauseril valida eelistatud formaadi — AV1 ->> , mis on toetatud umbes Ÿ browsereid (sealhulgas mobiilseadmeid). ->> H.264. Kui kasutajal on siiski vĂ€ga vana seade vĂ”i brauser, mis ei toeta videot ĂŒldse (mida on vĂ€ga ebatĂ”enĂ€oline H264 puhul), siis ta lihtsalt nĂ€eb 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. Laadige alla uusim FFmpeg versioon oma sĂŒsteemile siit ja kasutage allpool toodud kĂ€sku. Me saavutame siht-bitikiirusest kahe vooruga. Selleks kĂ€ivitame ffmpeg kaks korda. Esmakordselt salvestame tulemuse mitteeksisteerivasse faili. See loob logi, mida on vaja teiseks 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.mp4

Siin on parameetrite selgitus:

-i - Sissefail.

-pix_fmt - Kasutame 4:2:0 formaati, et valida video värviinfot. On palju teisi võimalikke formaate, kuid 4:2:0 on kõige ühilduvam.

-c:v - Millist kodekit kasutada, meie puhul - AV1.<br />
-b:v – Keskmine bitikiirus, mida soovime saavutada.

-filter:v scale - ffmpeg'i skaalafilter, mida kasutatakse video eraldussvõime vähendamiseks. Seame X:-1, mis ütleb ffmpeg'ile vähendada laius X-ks, säilitades kuvasuhe.

-strict experimental - Tuleb märgata, kuna AV1 on piisavalt uus kodek.

-cpu-used - Kohutavalt nimetatud parameeter, mida tegelikult kasutatakse video kvaliteedi taseme valimiseks. Võimalikud väärtused 0-4. Mida madalam väärtus, seda parem kvaliteet ja vastavalt pikem kodeerimisaeg.

-tile-columns - Kasutamiseks mitme niidi puhul. Ütleb AV1-le jagada video eraldi veergudeks, mida saab iseseisvalt ümber kodeerida, et paremini kasutada protsessorit.

-row-mt – Sama, mis eelmine parameeter, kuid jagab ka ridadeks veergude sees.

-threads - Niitide arv.

-pass - Milline läbimine praegu toimub.

-f - Kasutatakse ainult esimesel läbimisel. Näitab väljundfaili formaati, st MP4 meie puhul.

-movflags faststart - Lülitame sisse kiire video alguse, nihutades osa andmetest faili algusesse. See võimaldab vaatamist alustada enne, kui fail on täielikult laaditud.

GIFi loomine

GIFi loomiseks kasutasin allolevat kÀsku. GIFi suuruse vÀhendamiseks skaalasin selle laiuseks 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.gif

Testi tulemused

Parim on ĂŒks kord nĂ€ha kui sada korda lugeda, kas pole? Veendugem, et AV1 oleks meie eesmĂ€rkide jaoks Ă”ige valik. VĂ”tsin tasuta video Tears Of Steel, mis on saadaval siin https://mango.blender.org/, ja konvertisin selle, kasutades ligikaudu sama bitikiirus, et AV1, VP9, H.264 koodekite vahel. Tulemused on allpool, et saaksite neid ise vĂ”rrelda.

MÀrkus 1: Kui allolev fail ei lae, vÔib teil olla aeg brauserit uuendada. Soovitan Chromiumi-pÔhist brauserit, nÀiteks Chrome, Vivaldi, Brave vÔi Opera. Siin on uusim teave AV1 toe kohta https://caniuse.com/#feat=av1

MÀrkus 2: Firefox 66 puhul Linuxis peate seadistama lipu media.av1.enabled vÀÀrtuseks true ja about:config

MÀrkus 3: Otsustasin allpool mitte lisada tavalisi GIF-e nende suuruse ja andmemahtude tÔttu, mis oleks vajalik selle lehe laadimiseks! (Mis oleks iroonia, kuna see leht kÀsitleb andmemahtude vÀhendamist :)). Kuid saate vaadata lÔplikke GIF-e siin https://github.com/singhkays/its-time-replace-gifs-with-av1-video/blob/master/GIFs

TĂ”lkija mĂ€rkus: Habr ei luba automaatset esitust ja faili tsĂŒklit, seega saab hinnata vaid kvaliteeti. Vaadata, kuidas "animeeritud pildid" reaalajas vĂ€lja nĂ€evad, saab siin originaalartiklis.

Stseen 1 @ 200 Kbps

Siin on palju liikumist, mis on madalatel bitikiirusel eriti tundlik. On kohe nÀha, kui halb on H.264 sellel bitikiirusel, tulevad vÀlja ruudud. VP9 parandab olukorda veidi, kuid ruudud on endiselt nÀhtavad. AV1 vÔidab selgelt, esitades ilmselgelt parema pildi.

H.264

, mis on toetatud umbes Ÿ browsereid (sealhulgas mobiilseadmeid).

AV1

Stseen 2 @ 200 Kbps

Siin on palju poollÀbipaistvat CGI sisu. Tulemused ei erine enam nii palju kui eelmine kord, kuid kokkuvÔttes nÀeb AV1 parem vÀlja.

H.264

, mis on toetatud umbes Ÿ browsereid (sealhulgas mobiilseadmeid).

AV1

Stseen 3 @ 100 Kbps

Selles stseenis vÀhendame bitikiirus 100 Kbps-ni ja tulemused vastavad sellele. AV1 hoiab juhtpositsiooni ka madalatel bitikiirusel!

H.264

, mis on toetatud umbes Ÿ browsereid (sealhulgas mobiilseadmeid).

AV1

Kirsiks tordil

Artikli lĂ”petamiseks, tundes sÀÀstetud liiklust vĂ”rreldes GIF-iga — kĂ”ikide ĂŒlaltoodud videote kogumaht
 1.62 MB!! Õige. Need on 1,708,032 bitti! VĂ”rdluseks on siin GIF- ja AV1-videote 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 imeline! Ei ole nii?

MĂ€rkus: VP9 ja H264 failimÔÔte ei ole esitatud, kuna need on praktiliselt samad kui AV1, kuna kasutatakse sama bittide kiirus. Veel kahte veergu oleks ĂŒleliigne lisada, et rĂ”hutada, et need koodekid pakuvad palju paremat kvaliteeti kui GIF palju vĂ€iksemate failimÔÔtmetega.

Allikas: habr.com

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster