Ka ardhur koha për të zëvendësuar GIF-at me video AV1

Ka ardhur koha për të zëvendësuar GIF-at me video AV1

Tani Ă«shtĂ« viti 2019, dhe ne duhet tĂ« marrim njĂ« vendim nĂ« lidhje me GIF-at (jo, nuk bĂ«het fjalĂ« pĂ«r kĂ«tĂ« vendim! KĂ«tu nuk do tĂ« biem kurrĂ« dakord! — kĂ«tu bĂ«het fjalĂ« pĂ«r shqiptimin nĂ« anglisht, pĂ«r ne kjo nuk Ă«shtĂ« e rĂ«ndĂ«sishme — shĂ«n. pĂ«rk.). GIF-at zĂ«nĂ« njĂ« sasi tĂ« madhe vendi (zakonisht disa megabajt!) e cila, nĂ«se je zhvillues ĐČДб, Ă«shtĂ« plotĂ«sisht nĂ« kontradiktĂ« me dĂ«shirat e tua! Si zhvillues ĐČДб, dĂ«shiron tĂ« minimizosh gjĂ«rat qĂ« pĂ«rdoruesit duhet tĂ« shkarkojnĂ«, nĂ« mĂ«nyrĂ« qĂ« sajtit tĂ« ngarkohet shpejt. Nga e njĂ«jta arsye, minimizon JavaScript-in, optimizon PNG-tĂ«, JPEG-tĂ«, dhe ndonjĂ«herĂ« konverton JPEG nĂ« WebP. Por çfarĂ« tĂ« bĂ«jmĂ« me GIF-in e vjetĂ«r?

Atje ku po shkojmë, nuk do të na nevojiten GIF-at!

Nëse qëllimi yt është të përmirësosh shpejtësinë e ngarkesës së sajtit, duhet të heqësh dorë nga GIF-at! Por si të bëjmë atëherë imazhe të animuara? Përgjigjja është video. Dhe në shumicën e rasteve, do të marrësh cilësi më të mirë dhe një kursim të vendit mes 50-90%! Në jetë, shumica e gjërave kanë avantazhet dhe disavantazhet e tyre. Kur zëvendëson GIF-in me video, zakonisht nuk mund të gjejmë disavantazhe.

Poshtë me të gjithë GIF-at!

Fatkeqësisht, zëvendësimi i GIF-it me video është një praktikë e zakonshme vitet e fundit, kështu që të gjithë mjetet e nevojshme janë në përdorim. Në këtë postim, nuk do të shpik një biçikletë, por thjesht do të përmirësoj zgjidhjet ekzistuese. Kështu, ja në përmbledhje:

  1. Merrni GIF-in dhe konvertojeni në video
  2. Kodoni videon duke përdorur H.264 ose VP9, dmth, kompresojeni dhe paketoni në një konteiner MP4 ose WebM
  3. Zëvendësoni <img> me GIF të animuar në <video> me një video
  4. Aktivizoni përsëritjen pa zë dhe ciklin e videos për të arritur efektin e GIF-it

Google ka dokumentacion të mirë që përshkruan procesin.

Tani është viti 2019

Tani është viti 2019. Progresi po e përparon, dhe ne duhet të ecim me të. Deri tani kemi pasur dy mundësi kodekësh, të cilat janë gjerësisht të mbështetura në të gjitha shfletuesit dhe mjetet e kodimit të videos:

  1. H.264 — i paraqitur nĂ« vitin 2003 dhe i pĂ«rdorur mĂ« gjerĂ«sisht sot
  2. VP9 — i paraqitur nĂ« vitin 2013 dhe ka arritur pĂ«rmirĂ«sim nĂ« kompresim prej pothuajse 50% krahasuar me H.264, megjithatĂ« siç shkruhet kĂ«tu nuk gjithmonĂ« Ă«shtĂ« kaq rozĂ«

ShĂ«nim: ndonĂ«se standardi H.265 Ă«shtĂ« versioni tjetĂ«r i H.264 dhe mund tĂ« garojĂ« me VP9, unĂ« nuk e shqyrtoj atĂ« pĂ«r shkak tĂ« mbĂ«shtetjes sĂ« dobĂ«t nga shfletuesit, siç tregohet nĂ« faqen https://caniuse.com/#feat=hevc. Shpenzimet pĂ«r licencim janĂ« shkaku kryesor pse N.265 nuk ka arritur tĂ« bĂ«het po aq i pĂ«rhapur sa H.264 dhe pse konsorciumi Alliance of Open Media po punon me kodekĂ«t pa tarifa – me AV1.

Mbani mend se qĂ«llimi ynĂ« Ă«shtĂ« tĂ« zvogĂ«lojmĂ« GIF-et e mĂ«dha nĂ« pĂ«rmasat mĂ« tĂ« vogla tĂ« mundshme pĂ«r tĂ« pĂ«rshpejtuar ngarkimin. Do tĂ« ishte njĂ« vit i çuditshĂ«m 2019, nĂ«se nuk do tĂ« kishim nĂ« arsenalin tonĂ« njĂ« standard tĂ« ri pĂ«r kompresimin e videos. Por e kemi, dhe e quajmĂ« AV1. Me AV1 mund tĂ« arrijmĂ« njĂ« pĂ«rmirĂ«sim rreth 30% tĂ« kompresimit krahasuar me VP9. Bukuri! 🙂

AV1 është në shërbimin tuaj që nga viti 2019!

NĂ« desktop

SĂ« fundmi, mbĂ«shtetje pĂ«r dekodimin e videos AV1 u shtua nĂ« versionet desktop Google Chrome 70 dhe Mozilla Firefox 65. Tani pĂ«r tani, mbĂ«shtetja nĂ« Firefox Ă«shtĂ« me probleme dhe mund tĂ« shkaktojĂ« ndalime, por gjĂ«rat duhet tĂ« ndryshojnĂ« me shtimin e dekoduesit dav1d tani nĂ« Firefox 67 (edhe Ă«shtĂ« nxjerrĂ«, dhe mbĂ«shtetje Ă«shtĂ« shtuar — shĂ«nim i pĂ«rkthyesit.). PĂ«r detaje mbi versionin e ri lexoni – lĂ«shimi dav1d 0.3.0: akoma mĂ« shpejt!

NĂ« smartphone

Për smartphone, mbështetja harduerike aktualisht nuk është e disponueshme për shkak të mungesës së dekoderëve të përshtatshëm. Ka mundësi të bëhet dekodim programor, por kjo do të shkaktojë rritje të konsumit të baterisë. SOC-të e parë të celularëve me mbështetje harduerike për dekodimin AV1 do të shfaqen në vitin 2020.

Dhe lexuesit e artikullit janë kështu: «nëse celularët për momentin nuk e mbështesin normalisht, pse duhet ta përdorim AV1?»

AV1 është një kodek mjaft i ri, dhe ne jemi në fillimin e adaptimit të tij. Mendoni për këtë artikull si një fazë 'deri sa të përgatitni, njerëzit do të vendosen'. Mbështetja në desktop vetë do të përshpejtojë faqet për një pjesë të audiencës. Kodekët e vjetër mund të përdoren si një skenar rezervë, kur në pajisjen e destinacionit AV1 nuk mbështetet. Por, me kalimin e përdoruesve në pajisje me mbështetje AV1, gjithçka do të jetë gati. Për ta arritur këtë, ne duhet të krijojmë një etiketë video, siç tregohet më poshtë, që do t'i lejojë shfletuesit të zgjedhin formatin e preferuar - AV1 ->> VP9 ->> H.264. Nëse përdoruesi ka një pajisje mjaft të vjetër apo një shfletues që nuk mbështet videon fare (çka është shumë e pakët me H264), ai ai do të shihni GIF

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

Krijimi AV1

TĂ« krijosh njĂ« video nĂ« AV1 nuk Ă«shtĂ« e vĂ«shtirĂ«. Shkarkoni ndĂ«rtimin mĂ« tĂ« fundit tĂ« ffmpeg pĂ«r sistemin tuaj ĐŸŃ‚ŃŃŽĐŽĐ° dhe pĂ«rdorni komandat mĂ« poshtĂ«. Ne pĂ«rdorim 2 kalime pĂ«r tĂ« arritur bitraten e synuar. PĂ«r kĂ«tĂ«, do tĂ« drejtojmĂ« ffmpeg dy herĂ«. HerĂ«n e parĂ« do tĂ« shkruajmĂ« rezultatin nĂ« njĂ« skedar qĂ« nuk ekziston. Kjo do tĂ« krijojĂ« njĂ« regjistĂ«r, i cili do tĂ« nevojitet pĂ«r pĂ«rgatitjen e dytĂ« tĂ« ffmpeg.

# 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

Ja një shpjegim i parametrave:

-i - File input.

-pix_fmt - We use the 4:2:0 format to choose color information in the video. There are many other possible formats, but 4:2:0 is the most compatible.

-c:v - Which codec to use, in our case - AV1.<br />
-b:v – Bitrate mesatar, që dëshirojmë të arrijmë.

-filter:v scale - Filtri i shkallës ffmpeg përdoret për të ulur resolucionin e videos. Vendosim X:-1 që i thotë ffmpeg të ulë gjerësinë në X, duke ruajtur raportin e aspektit.

-strict experimental - Duhet të specifikohet, pasi AV1 është një kodek mjaft i ri.

-cpu-used - Një parametër keq emërtuar, që në të vërtetë përdoret për të zgjedhur nivelin e cilësisë së videos. Vlerat e mundshme janë 0-4. Sa më e vogël të jetë vlera, aq më e mirë është cilësia dhe, për pasojë, më shumë kohë do të marrë kodimi.

-tile-columns - Për të përdorur shumë threda. I thotë AV1 të ndajë videon në kolona të veçanta, të cilat mund të rikodohen në mënyrë të pavarur për një shfrytëzim më të mirë të CPU-së.

-row-mt – Po ashtu si parametri i mëparshëm, por ndan gjithashtu në rreshta brenda koloneve.

-threads - Numri i threadave.

-pass - Cilësia e kalimit që po ekzekutohet tani.

-f - Përdoret vetëm gjatë kalimit të parë. Specifikon formatin e skedarit të daljes, dmth MP4 në rastin tonë.

-movflags faststart - Aktivizojmë fillimin e shpejtë të videos, duke lëvizur një pjesë të të dhënave në fillim të skedarit. Kjo do të lejojë fillimin e shkarkimit përpara se skedari të ngarkohet plotësisht.

Krijimi GIF

Për të krijuar GIF kam përdorur komandën më poshtë. Për të zvogëluar madhësinë, kam shkallëzuar GIF në 720px në gjerësi dhe 12 fps në vend të videos origjinale 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

Rezultatet e testeve

Më mirë një herë ta shohësh sesa njëqind herë ta lexosh, a nuk është e vërtetë? Le të sigurohemi që AV1 është zgjedhja e duhur për ne. Kam marrë videon falas Tears Of Steel, e cila është e disponueshme këtu https://mango.blender.org/, dhe e konvertova atë, duke përdorur një bitrat të ngjashëm për kodekët AV1, VP9, H.264. Rezultatet më poshtë, kështu që mund t'i krahasosh vetë.

Shënim 1: Nëse skedari më poshtë nuk ngarkohet për ju, ndoshta është koha të përditësoni shfletuesin tuaj. Unë do të rekomandoja një shfletues bazuar në Chromium, siç janë Chrome, Vivaldi, Brave ose Opera. Këtu është informacioni më i fundit mbi mbështetje AV1 https://caniuse.com/#feat=av1

Shënim 2: Për Firefox 66 në Linux, do t'ju duhet të vendosni flamurin media.av1.enabled në vlerë e vërtetë në about:config

Vërejtje 3: Vendosa të mos përfshij GIF-et e zakonshëm më poshtë për shkak të madhësisë së tyre të madhe dhe sasisë së të dhënave që mund të nevojitet për të ngarkuar këtë faqe! (E cila do të ishte ironike, pasi kjo faqe është për zvogëlimin e sasisë së të dhënave në faqe :)). Por mund të shikoni GIF-të përfundimtare këtu https://github.com/singhkays/its-time-replace-gifs-with-av1-video/blob/master/GIFs

Vërejtja e përkthyesit: Habr nuk lejon aktivizimin automatik dhe rrotullimin e skedarit, prandaj do të mund të vlerësoni vetëm cilësinë. Mund të shihni se si do të duken "imazhet e animuara" live në artikulli origjinal.

Skena 1 @ 200 Kbps

Ka shumë lëvizje këtu, e cila është veçanërisht e ndjeshme në bitrate të ulët. Menjëherë është e qartë se si është e keqe H.264 në këtë bitrate, menjëherë duken katrorët. VP9 e përmirëson pak situatën, por katrorët akoma duken. AV1 qartësisht fiton, duke ofruar një imazh dukshëm më të mirë.

H.264

VP9

AV1

Skena 2 @ 200 Kbps

Ka shumë përmbajtje CGI të tejdukshme këtu. Rezultatet nuk u dallojnë aq shumë si herën e kaluar, por në përgjithësi AV1 duket më mirë.

H.264

VP9

AV1

Skena 3 @ 100 Kbps

Në këtë skenë, ne ulem bitratën në 100 Kbps dhe rezultatet janë përputhëse. AV1 vazhdon të mbajë vendin e parë edhe në bitrate të ulët!

H.264

VP9

AV1

Torta e çokollatës

PĂ«r tĂ« pĂ«rfunduar artikullin, ndiqni sa trafik Ă«shtĂ« kursyer krahasuar me GIF – shuma totale e tĂ« gjitha videove Ă«shtĂ« mbi... 1.62 MB!! SaktĂ«. Dreq, 1,708,032 bajtĂ«! PĂ«r krahasim, kjo Ă«shtĂ« madhĂ«sia e videos GIF dhe AV1 pĂ«r secilĂ«n nga skenat

GIF
AV1

Skena 1
11.7 MB
0.33 MB

Skena 2
7.27 MB
0.18 MB

Skena 3
5.62 MB
0.088 MB

Thjesht mahnitëse! A nuk është kështu?

Shënim: Madhësitë e skedarëve VP9 dhe H264 nuk janë të dhëna, sepse praktikisht nuk ndryshojnë nga AV1 për shkak të përdorimit të të njëjtit bitrate. Do të ishte e tepërt të shtonim edhe dy kolona të tjera me madhësi të njëjta, vetëm për të theksuar se këto kodekë japin cilësi shumë më të mirë se GIF me madhësi shumë më të vogla të skedarëve.

Burimi: habr.com

Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster