Ngu-2019 kwaye lixesha lokuba sithathe isigqibo ngee-GIFs (
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:
- Thatha i-GIF kwaye uyiguqulele kwividiyo
- Encode ividiyo usebenzisa i-H.264 okanye i-VP9, i.e. yicinezele kwaye uyipakishe kwiMP4 okanye kwisikhongozeli seWebM
- Faka enye indawo
<img>
nge GIF yoopopayi evuliwe<video>
nge-roller - Vula ukuzidlalela ngaphandle kwesandi kunye nelophu yesiphumo seGIF
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:
- H.264 - yaziswa ngo-2003 kwaye isetyenziswa kakhulu namhlanje
- 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.
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
I-AV1 ikwinkonzo yakho ukusukela ngo-2019!
Kwiidesktop
Kutshanje inkxaso ye-AV1 yokwenziwa kwekhowudi yongezwa kwiinguqulelo zedesktop
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.
# 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
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
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
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
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