Wext e ku meriv GIF-ê bi vîdyoya AV1 veguherîne

Wext e ku meriv GIF-ê bi vîdyoya AV1 veguherîne

Ew 2019 e û wextê me ye ku em li ser GIF-an biryar bidin (na, em behsa vê biryarê nakin! Em ê tu carî li vir li hev nekin! - li vir em behsa bilêvkirina bi Englishngilîzî dikin, ji bo me ev ne têkildar e - nêzîk. werger). GIF cîhek pir mezin digire (bi gelemperî çend megabytes!), ku heke hûn pêşdebirek malperê bin, bi tevahî li dijî daxwazên we ye! Wekî pêşdebirek malperê, hûn dixwazin tiştên ku bikarhêner hewce ne ku dakêşin kêm bikin da ku malper zû bar bike. Ji ber heman sedemê, hûn JavaScriptê kêm dikin, PNG, JPEG xweşbîn dikin, û carinan vediguherînin JPEG bo WebP. Lê bi GIF-a kevn re çi bikin?

Li cihê ku em diçin, em ê hewce nebin GIF!

Ger armanca we çêtirkirina leza barkirina malperê ye, wê hingê hûn hewce ne ku ji GIF-an xilas bibin! Lê hingê hûn çawa wêneyên anîmasyon çêdikin? Bersiv vîdyoyê ye. Û di pir rewşan de, hûn ê 50-90% qalîteya çêtir û teserûfa cîhê çêtir bistînin! Di jiyanê de, pir tiştan xwedî erênî û xirabiyên xwe ne. Gava ku hûn GIF-ê bi vîdyoyê veguherînin, pir caran hûn ê nikaribin ti xirabiyan bibînin.

Dûv re hemî GIF!

Xwezî, guheztina GIF bi vîdyoyan di van salên dawî de gelemperî bûye, ji ber vê yekê hemî amûrên pêwîst jixwe têne bikar anîn. Di vê postê de, ez ê çerxê ji nû ve nekim, lê tenê çareseriyên heyî hinekî baştir bikim. Ji ber vê yekê esas ev e:

  1. GIFek bigirin û wê veguherînin vîdyoyek
  2. Vîdyoyê bi karanîna H.264 an VP9 kod bikin, ango. wê biqelînin û wê di konteynera MP4 an WebM de pak bikin
  3. Diberdaxistin <img> bi GIF-a anîmasyon li ser <video> bi roller
  4. Ji bo bandorek GIF-ê otoplaya bê deng vekin û lêxin

Google xwedan belgeyek baş e ku pêvajoyê vedibêje.

2019 e

Niha 2019 e. Pêşveçûn ber bi pêş ve diçe, û divê em bi wê re bimeşin. Heya nuha me du vebijarkên kodek hene ku bi berfirehî li hemî gerok û amûrên şîfrekirina vîdyoyê têne piştgirî kirin:

  1. H.264 - di sala 2003-an de hate destnîşan kirin û îro herî zêde tê bikar anîn
  2. VP9 - di sala 2013-an de xuya bû û li gorî H.50-ê hema hema% 264 çêtirkirina berhevkirinê bi dest xist, her çend wek ku ew li vir dinivîsin ne her tişt ne hertim ew qas gul e

Têbînî: Her çend H.265 guhertoya paşîn a H.264-ê ye û jêhatî ye ku bi VP9 re pêşbaziyê bike jî, wekî ku li ser rûpelê tê xuyang kirin, ji ber piştgirîya gerokê ya qels nabînim. https://caniuse.com/#feat=hevc. Mesrefên lîsansê sedema bingehîn e ku H.265 wekî H.264 belav nebûye û çima konsorsiyuma Hevbendiya Vekirî ya Medya bi kodekek bêpere, AV1 re dixebite.

Bînin bîra xwe, mebesta me ew e ku em GIF-ên mezin bi mezinahiya herî piçûk piçûktir bikin da ku demên barkirinê zûtir bikin. Ger di cebilxaneya xwe de standardek nû ya ji bo berhevkirina vîdyoyê tune be dê sala 2019-an xerîb be. Lê ew heye û jê re AV1 tê gotin. Bi AV1 hûn dikarin li gorî VP30 bi qasî 9% çêtirbûna berhevkirinê bi dest bixin. Lepota! 🙂

AV1 ji sala 2019-an vir ve di xizmeta we de ye!

Li ser sermaseyan

Di demên dawî de piştgirî ji bo dekodkirina vîdyoya AV1 li guhertoyên sermaseyê hate zêdekirin Google Chrome 70 и Mozilla Firefox 65. Naha piştgirîya Firefox-ê xelet e û dikare bibe sedema qezayan, lê divê tişt bi lêzêdekirina çêtir bikin dekoder dav1d berê di Firefox 67 de ye (berê hat berdan, lê piştgirî xuya bû - nêzîkî. werger.). Ji bo hûrguliyên di derbarê guhertoya nû de bixwînin - Dav1d 0.3.0 berdan: hê zûtir!

Li ser smartphones

Ji ber nebûna dekoderên guncan, heya niha ji bo têlefonên têlefonê piştgirîya hardware tune. Hûn dikarin deşîfrekirina nermalavê bikin, her çend ev ê bibe sedema zêdebûna xerckirina batterê. Yekem SOC-yên mobîl ên ku piştgirî didin dekodkirina hardware AV1 dê di sala 2020-an de xuya bibin.

Û dûv re xwendevanên gotarê wiha ne, "ji ber vê yekê heke têlefonên desta hîna wê bi rêkûpêk piştgirî nakin, çima AV1 bikar bînin?"

AV1 kodek pir nû ye, û em di destpêka adaptasyona wê de ne. Vê gotarê wekî qonaxa "gava ku hûn xwarinê çêdikin, elalet dê bişopînin" bifikirin. Piştgiriya sermaseyê bi xwe dê malperan ji bo hin temaşevanan bilezîne. Û dema ku AV1 li ser cîhaza armanc nayê piştgirî kirin, kodekên kevn dikarin wekî senaryoyek paşverû werin bikar anîn. Lê gava ku bikarhêner li cîhazên bi piştgiriya AV1 veguherînin, dê her tişt amade be. Ji bo ku em bigihîjin vê yekê, pêdivî ye ku em wekî ku li jêr tê xuyang kirin tagek vîdyoyê biafirînin, ku dê rê bide gerok ku formata xweya bijarte hilbijêrin - AV1 - >> VP9 - >> H.264. Welê, heke bikarhêner amûrek an navîgatorek pir kevn heye ku qet vîdyoyê piştgirî nake (ku bi H264 re pir ne gengaz e), wê hingê ew ê tenê GIF-ê bibîne

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

Afirandina AV1

Afirandina vîdyoyan di AV1 de hêsan e. Avakirina herî dawî ya ffmpeg ji bo pergala xwe ji vir dakêşin û emrên jêrîn bikar bînin. Em 2 derbasbûnên bikar tînin da ku bitrateya armancê bi dest bixin. Ji bo vê yekê em ê du caran ffmpeg bimeşînin. Cara yekem em encamê di pelek tine de dinivîsin. Ev ê têketinek çêbike ku dê ji bo gera duyemîn a ffmpeg hewce bike.

# 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

Li vir dabeşkirina parametreyan e:

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

Çêkirina GIF

Ji bo afirandina GIF-ê min fermana jêrîn bikar anî. Ji bo kêmkirina mezinahiyê, min li şûna vîdyoya orjînal a 720 fps, GIF-ê berbelav kir 12 px û 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

Encamên testê

Ji xwendinê sed car carek dîtin çêtir e, ne wisa? Ka em pê ewle bin ku AV1 ji bo mebestên me bijareya rast e. Min vîdyoya belaş a Tears Of Steel girt ku li vir heye https://mango.blender.org/, û ew ji bo kodekên AV1, VP9, ​​H.264 bi qasî heman bitrateyê veguherand. Encam li jêr in, da ku hûn wan bi xwe bidin ber hev.

Nîşe 1: Ger pelê jêrîn ji we re bar neke, dibe ku dem be ku hûn geroka xwe nûve bikin. Ez ê gerokek Chromium-ê wekî Chrome, Vivaldi, Brave an Opera pêşniyar bikim. Li vir agahdariya herî dawî ya li ser piştgiriya AV1 heye https://caniuse.com/#feat=av1

Nîşe 2: Ji bo Firefox 66-ê li Linux-ê hûn ê hewce bikin ku alayê saz bikin media.av1.enabled nav wateyê de true в about:config

Nîşe 3: Min biryar da ku GIF-ên birêkûpêk li jêr negirim ji ber mezinahiya wan û mêjera daneya ku ji bo barkirina vê rûpelê hewce dike! (Ya ku dê îronîk be, ji ber ku ev rûpel li ser kêmkirina mîqdara daneya li ser rûpelek e :)). Lê hûn dikarin GIF-ên dawîn li vir bibînin https://github.com/singhkays/its-time-replace-gifs-with-av1-video/blob/master/GIFs

Têbiniya wergêr: Habr destûrê nade ku hûn otoplayê çalak bikin û pelê bişopînin, ji ber vê yekê hûn tenê dikarin kalîteyê binirxînin. Hûn dikarin bibînin ku "wêneyên anîmasyon" dê bi zindî çawa xuya bikin gotara orjînal.

Dîmen 1 @ 200 Kbps

Li vir gelek tevger heye, ku bi taybetî di bitrateyên kêm de hesas e. Hûn dikarin tavilê bibînin ku H.264 di vê bitrateyê de çiqas xirab e; çargoşe yekser xuya dibin. VP9 rewşê hinekî baştir dike, lê meydan hîn jî xuya dibin. AV1 eşkere serdikeve, wêneyek eşkere çêtir çêdike.

H.264

VP9

AV1

Dîmen 2 @ 200 Kbps

Li vir gelek naveroka CGI-ya zelal heye. Encam wekî cara paşîn ne cûda ne, lê bi tevahî AV1 çêtir xuya dike.

H.264

VP9

AV1

Dîmen 3 @ 100 Kbps

Di vê dîmenê de, em bitrate dadixin 100 Kbps û encam hevgirtî ne. AV1 serokatiya xwe di bitrateyên kêm de jî diparêze!

H.264

VP9

AV1

Kiraz li ser kekê

Ji bo qedandina vê gotarê bi hîskirina mîqdara berfê ya ku li gorî GIF-ê hatî hilanîn - bi tevahî mezinahiya hemî vîdyoyan bilindtir e ... 1.62 MB!! Rast. Çend 1,708,032 bit! Ji bo berhevdanê, li vir ji bo her dîmenê mezinahiyên vîdyoya GIF û AV1 hene

GIF
AV1

Dîmen 1
11.7 MB
0.33 MB

Dîmen 2
7.27 MB
0.18 MB

Dîmen 3
5.62 MB
0.088 MB

Simply matmayî! Ma ne ew e?

Têbînî: Mezinahiyên pelên VP9 û H264 nayên dayîn, ji ber ku ew bi pratîkî ji AV1-ê ji ber karanîna heman bitrateyê ne cûda ne. Zêdebûn e ku meriv du stûnên din bi heman mezinahiyê lê zêde bike, tenê ji bo ronîkirina ku ev kodek di mezinahiyên pelê pir piçûktir de ji GIF-ê pir çêtir kalîteyê hilberînin.

Source: www.habr.com

Add a comment