Lixesha lokutshintsha i-GIF ngevidiyo ye-AV1

Lixesha lokutshintsha i-GIF ngevidiyo ye-AV1

Ngu-2019 kwaye lixesha lokuba sithathe isigqibo ngee-GIFs (hayi, asithethi ngesi sigqibo! Soze sivume apha! - apha sithetha ngokubiza amagama ngesiNgesi, kuthi oku akubalulekanga - malunga. inguqulelo). Ii-GIFs zithatha indawo enkulu (ngokuqhelekileyo i-megabytes ezininzi!), Okukuthi, ukuba ungumthuthukisi wewebhu, uchasene ngokupheleleyo neminqweno yakho! Njengomphuhlisi wewebhu, ufuna ukunciphisa izinto abasebenzisi abafuna ukuzikhuphela ukuze indawo ilayishe ngokukhawuleza. Ngesizathu esifanayo, unciphisa iJavaScript, wandise iPNG, iJPEG, kwaye ngamanye amaxesha uguqule JPEG ukuya kwiWebP. Kodwa wenze ntoni nge-GIF endala?

Asiyi kufuna ii-GIFs apho siya khona!

Ukuba injongo yakho kukuphucula isantya sokulayisha indawo, kufuneka ulahle ii-GIFs! Kodwa uyenza njani imifanekiso eshukumayo? Impendulo yividiyo. Kwaye kwiimeko ezininzi, uya kufumana umgangatho ongcono kunye nokugcinwa kwendawo ye-50-90%! Ebomini, izinto ezininzi zineengenelo neengozi zazo. Xa utshintsha i-GIF ngevidiyo, amaxesha amaninzi awuzukwazi ukufumana nayiphi na ingxaki.

Phantsi ngazo zonke ii-GIFs!

Ngethamsanqa, ukutshintshwa kwe-GIFs ngeevidiyo bekuyinto eqhelekileyo kwiminyaka yakutshanje, ke zonke izixhobo eziyimfuneko sele zisetyenziswa. Kule post, andizukubuyisela ivili, kodwa ndiya kuphucula kuphela izisombululo ezikhoyo. Ngoko nantsi ingongoma:

  1. Thatha i-GIF kwaye uyiguqulele kwividiyo
  2. Encode ividiyo usebenzisa i-H.264 okanye i-VP9, i.e. yicinezele kwaye uyipakishe kwiMP4 okanye kwisikhongozeli seWebM
  3. Faka enye indawo <img> nge GIF yoopopayi evuliwe <video> nge-roller
  4. Vula ukuzidlalela ngaphandle kwesandi kunye nelophu yesiphumo seGIF

UGoogle unamaxwebhu alungileyo achaza inkqubo.

Ngu-2019

Ngu-2019 ngoku. Inkqubela phambili iya phambili, kwaye kufuneka sihambisane nayo. Ukuza kuthi ga ngoku siye saba neenketho ezimbini ze-codec ezixhaswa ngokubanzi kuzo zonke iibhrawuza kunye nezixhobo zokufaka iikhowudi zevidiyo:

  1. H.264 - yaziswa ngo-2003 kwaye isetyenziswa kakhulu namhlanje
  2. VP9 - yabonakala kwi-2013 kwaye iphumelele ukuphuculwa koxinzelelo malunga ne-50% xa kuthelekiswa ne-H.264, nangona njengoko bebhala apha asiyiyo yonke into ayisoloko ilungile

Qaphela: Nangona i-H.265 iyinguqulo elandelayo ye-H.264 kwaye iyakwazi ukukhuphisana ne-VP9, andiyicingi ngenxa yenkxaso ye-browser engalunganga, njengoko kubonisiwe kwiphepha. https://caniuse.com/#feat=hevc. Iindleko zelayisensi zisona sizathu siphambili sokuba kutheni i-H.265 ingazange isasazeke njenge-H.264 kwaye kutheni i-Alliance ye-Open Media consortium isebenza kunye ne-codec yasebukhosini, i-AV1.

Khumbula, injongo yethu kukucutha ii-GIFs ezinkulu ukuya kobona bungakanani buncinci ukukhawulezisa amaxesha okulayisha. Ingayinto engaqhelekanga u-2019 ukuba besingenawo umgangatho omtsha wokucinezelwa kwevidiyo kwi-arsenal yethu. Kodwa ikhona kwaye ibizwa ngokuba yi-AV1. Nge-AV1 unako ukuzuza malunga ne-30% yokuphucula kuxinzelelo xa kuthelekiswa ne-VP9. Lepota! 🙂

I-AV1 ikwinkonzo yakho ukusukela ngo-2019!

Kwiidesktop

Kutshanje inkxaso ye-AV1 yokwenziwa kwekhowudi yongezwa kwiinguqulelo zedesktop Google Chrome 70 и Mozilla Firefox 65. Okwangoku inkxaso yeFirefox yibuggy kwaye inokubangela ukungqubana, kodwa izinto kufuneka ziphucuke ngokongezwa kwe dav1d idikhowuda sele ikuFirefox 67 (sele ikhutshiwe, kodwa inkxaso ivele - malunga. guqulela.). Ukufumana iinkcukacha malunga noguqulelo olutsha funda - dav1d 0.3.0 ukukhululwa: ngokukhawuleza!

Kwii-smartphones

Okwangoku akukho nkxaso yehardware yee-smartphones ngenxa yokunqongophala kweedekhowuda ezifanelekileyo. Unokwenza isoftware decoding, nangona oku kuya kukhokelela ekwandeni kokusetyenziswa kwebhetri. Ii-SOC zokuqala eziphathwayo ezixhasa i-AV1 hardware decoding ziya kuvela ngo-2020.

Kwaye ke abafundi benqaku bafana, "ke ukuba iiselfowuni aziyixhasi ngokufanelekileyo, kutheni usebenzisa i-AV1?"

I-AV1 yikhowudi entsha, kwaye sisekuqaleni kokulungelelaniswa kwayo. Cinga ngeli nqaku njengenqanaba elithi "ngelixa upheka, isihlwele siya kulandela". Inkxaso yeDesktop ngokwayo iya kukhawulezisa iisayithi zabanye abaphulaphuli. Kwaye ii-codecs ezindala zingasetyenziswa njengemeko yokubuyela umva xa i-AV1 ingaxhaswanga kwisixhobo ekujoliswe kuso. Kodwa njengoko abasebenzisi betshintshela kwizixhobo ezinenkxaso ye-AV1, yonke into iya kuba ilungile. Ukufezekisa oku, kufuneka senze ithegi yevidiyo njengoko ibonisiwe ngezantsi, eya kuvumela isikhangeli ukuba sikhethe ifomathi eyikhethayo − AV1 - >> VP9 - >> H.264. Ewe, ukuba umsebenzisi unesixhobo esidala kakhulu okanye umqhubi wenqanawa ongaxhasi ividiyo kwaphela (eyinto engenakwenzeka kakhulu nge-H264), emva koko uya kubona i-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>

Ukwenziwa kwe-AV1

Ukwenza iividiyo kwi-AV1 kulula. Khuphela ukwakhiwa kweffmpeg yamva nje kwenkqubo yakho ukusuka apha kwaye usebenzise imiyalelo engezantsi. Sisebenzisa ukupasa oku-2 ukufikelela kwibitrate ekujoliswe kuyo. Ukwenza oku siya kuqhuba ffmpeg kabini. Ixesha lokuqala sibhala isiphumo kwifayile engekhoyo. Oku kuya kudala ilog eya kufuneka kumdlalo wesibini weffmpeg.

# 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

Nalu uluhlu lweeparamitha:

-i - Входной файл.

-pix_fmt - Используем формат 4:2:0 для выбора информации о цветности в видео. Существует много других возможных форматов, но 4:2:0 наиболее совместимый.

-c:v - Какой кодек использовать, в нашем случае - AV1.<br />
-b:v – Средний битрейт, которого мы хотим добиться.

-filter:v scale - Фильтр масштаба ffmpeg используется для уменьшения разрешения видео. Мы устанавливаем X:-1 что говорит ffmpeg уменьшить ширину до X, сохранив соотношение сторон.

-strict experimental - Надо указать, т.к. AV1 достаточно новый кодек.

-cpu-used - Ужасно названный параметр, который на самом деле используется для выбора уровня качества видео. Возможные значения 0-4. Чем меньше значение, тем лучше качество и, соответственно, больше время, которое займёт кодировка.

-tile-columns - Для использования нескольких тредов. Говорит AV1 разбить видео на отдельные колонки, которые могут быть перекодированы независимо для лучшей утилизации ЦПУ.

-row-mt – Тоже, что и предыдущий параметр, но разбивает так же на строки внутри колонок.

-threads - Количество тредов.

-pass - Какой проход сейчас выполняется.

-f - Используется только при первом проходе. Указывает формат выходного файла, т.е. MP4 в нашем случае.

-movflags faststart - Включаем быстрый старт видео, перемещая часть данных в начало файла. Это позволит начать воспроизведение ещё до полной загрузка файла.

Ukwenza ii-GIFs

Ukwenza i-GIF ndisebenzise lo myalelo ungezantsi. Ukunciphisa ubungakanani, ndilinganise i-GIF ukuya kwi-720px ububanzi kunye ne-12 fps endaweni yevidiyo yokuqala ye-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

Iziphumo zovavanyo

Kungcono ukubona kube kanye kunokufunda izihlandlo ezilikhulu, akunjalo? Masiqinisekise ukuba i-AV1 lolona khetho lufanelekileyo ngeenjongo zethu. Ndithathe ividiyo yeTears Of Steel yasimahla ekhoyo apha https://mango.blender.org/, kwaye wayiguqulela malunga nebitrate efanayo ye-AV1, VP9, ​​​​H.264 codecs. Iziphumo zingezantsi ukuze ukwazi ukuzithelekisa ngokwakho.

Qaphela 1: Ukuba ifayile engezantsi ayilayisheli kuwe, kusenokuba lixesha lokuhlaziya isikhangeli sakho. Ndingacebisa isikhangeli esekwe kwiChromium esinje ngeChrome, Vivaldi, Brave okanye Opera. Nalu ulwazi lwamva nje ngenkxaso ye-AV1 https://caniuse.com/#feat=av1

Qaphela 2: KwiFirefox 66 kwiLinux kuya kufuneka usete iflegi media.av1.enabled kwintsingiselo true в about:config

Qaphela 3: Ndigqibe ekubeni ndingabandakanyi ii-GIFs eziqhelekileyo ngezantsi ngenxa yobukhulu bazo kunye nesixa sedatha esiya kufuna ukulayisha eli phepha! (Okuya kuba yimpoxo, kuba eli phepha limalunga nokunciphisa inani ledatha kwiphepha :)). Kodwa unokubona ii-GIFs zokugqibela apha https://github.com/singhkays/its-time-replace-gifs-with-av1-video/blob/master/GIFs

Inqaku lomguquli: I-Habr ayikuvumeli ukuba wenze ukudlala ngokuzenzekelayo kwaye uvale ifayile, ngoko unokuvavanya umgangatho kuphela. Uyakwazi ukubona ukuba "imifanekiso eshukumayo" iya kujongeka njani ngqo kuyo inqaku lokuqala.

Umboniso 1 @ 200 Kbps

Kukho intshukumo eninzi apha, ebuthathaka ngakumbi kwi-bitrate ephantsi. Ungabona ngoko nangoko ukuba i-H.264 imbi kangakanani kule bitrate; izikwere zibonakala ngokukhawuleza. I-VP9 iphucula imeko encinci, kodwa izikwere zisabonakala. I-AV1 iphumelela ngokucacileyo, ivelisa umfanekiso ongcono ngokucacileyo.

H.264

VP9

AV1

Umboniso 2 @ 200 Kbps

Kukho umxholo omninzi weCGI apha. Iziphumo azahlukanga njengexesha elidlulileyo, kodwa iyonke i-AV1 ibonakala ingcono.

H.264

VP9

AV1

Umboniso 3 @ 100 Kbps

Kulo mboniso, sijika i-bitrate phantsi kwi-100 Kbps kwaye iziphumo ziyahambelana. I-AV1 igcina ubunkokeli bayo nakwi-bitrate ephantsi!

H.264

VP9

AV1

Itsheri kwikhekhe

Ukugqiba eli nqaku ngokuva ubungakanani be-bandwidth egciniweyo xa kuthelekiswa ne-GIF - ubungakanani obupheleleyo bazo zonke iividiyo buphezulu... 1.62 MB!! Kunene. Ezinye zibambe 1,708,032 bytes! Ukuthelekisa, nantsi i-GIF kunye ne-AV1 yeesayizi zevidiyo kwindawo nganye

GIF
AV1

Umboniso 1
11.7 MB
0.33 MB

Umboniso 2
7.27 MB
0.18 MB

Umboniso 3
5.62 MB
0.088 MB

Iyamangalisa nje! Akunjalo?

Qaphela: Iisayizi zefayile ze-VP9 kunye ne-H264 azinikwanga, kuba azihlukanga ngokwenyani kwi-AV1 ngenxa yosetyenziso lwebitrate efanayo. Kuya kuba yimfuneko ukongeza iikholamu ezimbini ezinobungakanani obufanayo, ukuqaqambisa nje ukuba ezi codecs zivelisa umgangatho ongcono kakhulu kune-GIF kwiisayizi ezincinci zeefayile.

umthombo: www.habr.com

Yongeza izimvo