Yakwana nthawi yosintha GIF ndi kanema wa AV1

Yakwana nthawi yosintha GIF ndi kanema wa AV1

Ndi 2019 ndipo yakwana nthawi yoti tisankhe ma GIF (ayi, sitikunena za chisankho ichi! Sitingavomereze apa! - apa tikukamba za matchulidwe mu Chingerezi, kwa ife izi sizoyenera - pafupifupi. kumasulira). Ma GIF amatenga malo ochulukirapo (nthawi zambiri ma megabytes angapo!), Omwe, ngati ndinu wopanga intaneti, ndizosemphana ndi zomwe mukufuna! Monga ukonde mapulogalamu, mukufuna kuchepetsa zinthu zimene owerenga ayenera download kuti malo katundu mwamsanga. Pachifukwa chomwechi, mumachepetsa JavaScript, kukhathamiritsa PNG, JPEG, ndipo nthawi zina mumasintha JPEG kuti WebP. Koma zotani ndi GIF yakale?

Sitidzafunika ma GIF komwe tikupita!

Ngati cholinga chanu ndikukweza kuthamanga kwa tsamba, ndiye kuti muyenera kuchotsa ma GIF! Komano mumapanga bwanji zithunzi zojambulidwa? Yankho ndi kanema. Ndipo nthawi zambiri, mudzapeza zabwinoko komanso kusungirako malo kwa 50-90%! M’moyo, zinthu zambiri zimakhala ndi ubwino ndi kuipa kwake. Mukasintha ma GIF ndi kanema, nthawi zambiri simutha kupeza cholakwika chilichonse.

Pansi ndi ma GIF onse!

Mwamwayi, kusintha ma GIF ndi makanema kwakhala kofala m'zaka zaposachedwa, kotero zida zonse zofunikira zikugwiritsidwa ntchito kale. Mu positi iyi, sindidzayambitsanso gudumu, koma ndingosintha pang'ono mayankho omwe alipo. Nayi mfundo yake:

  1. Tengani GIF ndikusintha kukhala kanema
  2. Lembani kanemayo pogwiritsa ntchito H.264 kapena VP9, ​​i.e. compress izo ndi kumunyamula mu MP4 kapena WebM chidebe
  3. M'malo <img> ndi makanema ojambula pa GIF <video> ndi wodzigudubuza
  4. Yatsani kusewera popanda phokoso ndi kuzungulira kwa GIF

Google ili ndi zolemba zabwino zofotokozera ndondomekoyi.

Ndi 2019

Ndi 2019 tsopano. Kupita patsogolo kumapita patsogolo, ndipo tiyenera kupitiriza. Pakalipano takhala ndi njira ziwiri za codec zomwe zimathandizidwa kwambiri pa asakatuli onse ndi zida zolembera mavidiyo:

  1. H.264 - idayambitsidwa mu 2003 ndipo imagwiritsidwa ntchito kwambiri masiku ano
  2. VP9 - adawonekera mu 2013 ndipo adapeza kusintha kwapakati pafupifupi 50% poyerekeza ndi H.264, ngakhale monga akulemba apa sikuti zonse sizikhala zabwino nthawi zonse

Taonani: Ngakhale H.265 ndi mtundu wotsatira wa H.264 ndipo imatha kupikisana ndi VP9, ​​​​sindikuwona chifukwa chosathandizira osatsegula, monga momwe tawonera patsamba. https://caniuse.com/#feat=hevc. Mtengo wa chilolezo ndi chifukwa chachikulu chomwe H.265 sichinafalikire monga H.264 ndi chifukwa chake Alliance of Open Media consortium ikugwira ntchito ndi codec yopanda malipiro, AV1.

Kumbukirani, cholinga chathu ndikuchepetsa ma GIF akulu mpaka kukula kocheperako kuti tifulumizitse nthawi yotsegula. Zingakhale zachilendo 2019 tikadapanda kukhala ndi mulingo watsopano wamakanema pamakina athu ankhondo. Koma ilipo ndipo imatchedwa AV1. Ndi AV1 mutha kukwaniritsa pafupifupi 30% kusintha kwa psinjika poyerekeza ndi VP9. Lepota! 🙂

AV1 yakhala ikukuthandizani kuyambira 2019!

Pa desktops

Thandizo laposachedwa la mavidiyo a AV1 linawonjezedwa kumasulidwe apakompyuta Google Chrome 70 и Mozilla Firefox 65. Pakalipano kuthandizira kwa Firefox ndikosavuta ndipo kumatha kuyambitsa ngozi, koma zinthu ziyenera kusintha ndikuwonjezera dav1d decoder kale mu Firefox 67 (yatulutsidwa kale, koma chithandizo chawonekera - pafupifupi. transl.). Kuti mudziwe zambiri za mtundu watsopanowu werengani - dav1d 0.3.0 kumasulidwa: mwachangu kwambiri!

Pa mafoni

Pakalipano palibe chithandizo cha hardware cha mafoni a m'manja chifukwa cha kusowa kwa ma decoder oyenerera. Mutha kupanga decoding pulogalamu, ngakhale izi zipangitsa kuti batire ichuluke. Ma SOC oyambilira omwe amathandizira AV1 hardware decoding adzawonekera mu 2020.

Kenako owerenga nkhaniyi ali ngati, "ndiye ngati mafoni a m'manja sakuthandizabe moyenera, bwanji mugwiritse ntchito AV1?"

AV1 ndi codec yatsopano, ndipo tili pachiyambi pomwe idasinthidwa. Ganizirani za nkhaniyi ngati "pamene mukuphika, gulu lidzatsatira". Thandizo la pakompyuta palokha lidzafulumizitsa masamba kwa ena mwa omvera. Ndipo ma codec akale atha kugwiritsidwa ntchito ngati njira yobwerera pomwe AV1 siyikuthandizidwa pa chipangizo chomwe mukufuna. Koma ogwiritsa ntchito akasinthira ku zida zothandizidwa ndi AV1, zonse zikhala zokonzeka. Kuti tikwaniritse izi, tifunika kupanga tag ya kanema monga momwe tawonetsera pansipa, yomwe ingalole msakatuli kusankha mtundu womwe akufuna - AV1 - >> VP9 - >> H.264. Chabwino, ngati wosuta ali ndi chipangizo chakale kwambiri kapena navigator kuti siligwirizana kanema konse (zomwe sizingatheke ndi H264), ndiye angowona 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>

Kupanga kwa AV1

Kupanga makanema mu AV1 ndikosavuta. Tsitsani ffmpeg yaposachedwa kwambiri pamakina anu kuchokera apa ndipo gwiritsani ntchito malamulo omwe ali pansipa. Timagwiritsa ntchito ma pass 2 kuti tikwaniritse zolinga za bitrate. Kuti tichite izi tidzathamanga ffmpeg kawiri. Nthawi yoyamba yomwe timalemba zotsatira ku fayilo yomwe palibe. Izi zipanga chipika chomwe chidzafunika paulendo wachiwiri wa 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

Nayi kuwerengeka kwa magawo:

-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 - Включаем быстрый старт видео, перемещая часть данных в начало файла. Это позволит начать воспроизведение ещё до полной загрузка файла.

Kupanga ma GIF

Kuti ndipange GIF ndidagwiritsa ntchito lamulo ili pansipa. Kuti ndichepetse kukula, ndidakweza GIF kukhala 720px wide ndi 12 fps m'malo mwa kanema woyambirira wa 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

Zotsatira zakuyesa

Ndi bwino kuwona kamodzi kuposa kuwerenga kambirimbiri, sichoncho? Tiyeni tiwonetsetse kuti AV1 ndiye chisankho choyenera pazolinga zathu. Ndinatenga vidiyo ya Misozi Yachitsulo yaulere yomwe ilipo pano https://mango.blender.org/, ndikusintha pogwiritsa ntchito bitrate yomweyo ya AV1, VP9, ​​​​H.264 codec. Zotsatira zili pansipa kuti mutha kuzifanizira nokha.

Chidziwitso 1: Ngati fayilo ili m'munsiyi siyikukwezerani, ingakhale nthawi yosintha msakatuli wanu. Ndikupangira msakatuli wa Chromium monga Chrome, Vivaldi, Brave kapena Opera. Nazi zambiri zaposachedwa pa chithandizo cha AV1 https://caniuse.com/#feat=av1

Chidziwitso 2: Kwa Firefox 66 pa Linux muyenera kuyika mbendera media.av1.enabled mu mtengo true в about:config

Chidziwitso 3: Ndasankha kuti ndisaphatikizepo ma GIF okhazikika pansipa chifukwa cha kukula kwawo komanso kuchuluka kwa data yomwe ingafune kuti mutsegule tsambali! (Zomwe zingakhale zodabwitsa, popeza tsamba ili likunena za kuchepetsa kuchuluka kwa deta patsamba :)). Koma mutha kuwona ma GIF omaliza apa https://github.com/singhkays/its-time-replace-gifs-with-av1-video/blob/master/GIFs

Ndemanga ya womasulira: Habr samakulolani kuti muzitha kusewera nokha ndikuzungulira fayiloyo, chifukwa chake mutha kungoyesa mtundu wake. Mutha kuwona zomwe "zithunzi zojambulidwa" ziziwoneka ngati pompopompo nkhani yoyamba.

Chithunzi 1 @ 200 Kbps

Pali kusuntha kwakukulu pano, komwe kumakhala kovutirapo kwambiri pama bitrate otsika. Mutha kuwona momwe H.264 ilili yoyipa pa bitrate iyi; mabwalo amawoneka nthawi yomweyo. VP9 imasintha zinthu pang'ono, koma mabwalo akuwonekabe. AV1 imapambana bwino, ndikupanga chithunzi chabwinoko.

H.264

VP9

AV1

Chithunzi 2 @ 200 Kbps

Pali zambiri zowoneka bwino za CGI pano. Zotsatira sizosiyana monga nthawi yapitayi, koma AV1 yonse ikuwoneka bwino.

H.264

VP9

AV1

Chithunzi 3 @ 100 Kbps

Pachiwonetserochi, timatsitsa bitrate kukhala 100 Kbps ndipo zotsatira zake ndizofanana. AV1 imasunga utsogoleri wake ngakhale pang'onopang'ono!

H.264

VP9

AV1

Cherry pa keke

Kuti mumalize nkhaniyi ndikumva kuchuluka kwa bandwidth yosungidwa poyerekeza ndi GIF - kukula kwamavidiyo onse ndikokwera ... 1.62 MB! Kulondola. Zina za 1,708,032 mabayiti! Poyerekeza, nayi makulidwe amakanema a GIF ndi AV1 pachiwonetsero chilichonse

GIF
AV1

Chithunzi 1
11.7 MB
0.33 MB

Chithunzi 2
7.27 MB
0.18 MB

Chithunzi 3
5.62 MB
0.088 MB

Zodabwitsa! Sichomwecho?

Taonani: Kukula kwamafayilo a VP9 ndi H264 sikunaperekedwe, chifukwa sikusiyana kwenikweni ndi AV1 chifukwa chogwiritsa ntchito bitrate yomweyo. Zingakhale zosafunikira kuwonjezera zipilala zina ziwiri zokhala ndi makulidwe ofanana, kungowonetsa kuti ma codecwa amatulutsa zabwino kwambiri kuposa ma GIF pamafayilo ang'onoang'ono.

Source: www.habr.com

Kuwonjezera ndemanga