Вақти он расидааст, ки GIF-ро бо видеои AV1 иваз кунед

Вақти он расидааст, ки GIF-ро бо видеои AV1 иваз кунед

Соли 2019 аст ва вақти он расидааст, ки мо дар бораи GIF-ҳо тасмим гирифтем (не, мо дар бораи ин карор гап намезанем! Мо ҳеҷ гоҳ дар ин ҷо розӣ нахоҳем шуд! - ин ҷо сухан дар бораи талаффуз бо забони англисӣ меравад, барои мо ин мувофиқ нест - тақрибан. тарҷума). GIFҳо миқдори зиёди фазоро ишғол мекунанд (одатан чанд мегабайт!), ки агар шумо таҳиягари веб бошед, комилан хилофи хоҳишҳои шумост! Ҳамчун таҳиягари веб, шумо мехоҳед чизҳоеро, ки корбарон бояд зеркашӣ кунанд, кам кунед, то сайт зуд бор кунад. Бо ҳамин сабаб, шумо JavaScript-ро хурдтар мекунед, PNG, JPEG-ро оптимизатсия мекунед ва баъзан табдил медиҳед JPEG ба WebP. Аммо бо GIF-и кӯҳна чӣ бояд кард?

Мо ба GIF-ҳо дар куҷое, ки меравем, лозим нест!

Агар ҳадафи шумо беҳтар кардани суръати боркунии сайт бошад, пас шумо бояд аз GIFҳо халос шавед! Аммо чӣ тавр шумо тасвирҳои аниматсионӣ эҷод мекунед? Ҷавоб видео аст. Ва дар аксари ҳолатҳо, шумо 50-90% сифат ва фазои беҳтарро сарфа мекунед! Дар зиндагӣ, аксари чизҳо мусбат ва манфии худро доранд. Вақте ки шумо GIF-ро бо видео иваз мекунед, аксар вақт шумо ҳеҷ гуна камбудиҳоро ёфта наметавонед.

Бо ҳама GIFҳо!

Хушбахтона, иваз кардани GIF-ҳо бо видео дар солҳои охир маъмул буд, аз ин рӯ ҳама асбобҳои зарурӣ аллакай истифода мешаванд. Дар ин паём, ман чархро аз нав ихтироъ намекунам, балки танҳо каме ҳалли мавҷударо такмил медиҳам. Пас, ин аст мухтасар:

  1. GIF гиред ва онро ба видео табдил диҳед
  2. Видеоро бо истифода аз H.264 ё VP9 рамзгузорӣ кунед, яъне. онро фишурда кунед ва ба контейнери MP4 ё WebM гузоред
  3. Иваз кардан <img> бо GIF аниматсионии фаъол <video> бо ролик
  4. Барои эффекти GIF бе садо ва ҳалқаи худкор навозишро фаъол созед

Google дорои ҳуҷҷатҳои хубест, ки равандро тавсиф мекунад.

Соли 2019 аст

Ҳоло соли 2019 аст. Пешравй пеш меравад ва мо бояд бо он пеш равем. То ба ҳол мо ду варианти кодек дорем, ки дар тамоми браузерҳо ва абзорҳои рамзгузории видео ба таври васеъ дастгирӣ мешаванд:

  1. H.264 - соли 2003 ҷорӣ карда шуда, имрӯз бештар истифода мешавад
  2. VP9 - дар соли 2013 пайдо шуд ва дар муқоиса бо H.50 тақрибан 264% беҳбуди фишурда ба даст овард, ҳарчанд чунон ки дар ин чо менависанд на ҳама чиз на ҳамеша ин қадар гулобӣ аст

Эзоҳ: Гарчанде ки H.265 версияи навбатии H.264 аст ва қодир аст бо VP9 рақобат кунад, ман онро аз сабаби дастгирии сусти браузер, тавре ки дар саҳифа нишон дода шудааст, ҳисоб намекунам. https://caniuse.com/#feat=hevc. Хароҷоти литсензиявӣ сабаби асосии он аст, ки H.265 мисли H.264 паҳн нагардидааст ва чаро Альянси консорсиуми Open Media бо кодеки бе роялти, AV1 кор мекунад.

Дар хотир доред, ки ҳадафи мо ин аст, ки GIF-ҳои азимро ба андозаи хурдтарини имконпазир коҳиш диҳед, то вақти боркуниро суръат бахшед. Агар мо дар арсеналамон стандарти нави фишурдани видео намедоштем, соли 2019 аҷиб мебуд. Аммо он вуҷуд дорад ва AV1 номида мешавад. Бо AV1 шумо метавонед дар муқоиса бо VP30 тақрибан 9% беҳбуди фишурдаро ба даст оред. Лепота! 🙂

AV1 аз соли 2019 дар хидмати шумост!

Дар мизи корӣ

Ба наздикӣ дастгирии рамзгузории видеои AV1 ба версияҳои мизи корӣ илова карда шуд Google Chrome 70 и 65. Mozilla Firefox. Дар айни замон дастгирии Firefox хато аст ва метавонад боиси садамаҳо гардад, аммо кор бояд бо илова кардани он беҳтар шавад decoder dav1d аллакай дар Firefox 67 (аллакай озод карда шуд, аммо дастгирӣ пайдо шуд - тахминан. тарҷума.). Барои тафсилот дар бораи версияи нав хонед - барориши dav1d 0.3.0: ҳатто тезтар!

Дар смартфонҳо

Дар айни замон аз сабаби набудани декодерҳои мувофиқ барои смартфонҳо дастгирии сахтафзор мавҷуд нест. Шумо метавонед рамзгузории нармафзорро иҷро кунед, гарчанде ки ин боиси афзоиши истеъмоли батарея мегардад. Аввалин SOC-ҳои мобилӣ, ки рамзгузории сахтафзори AV1-ро дастгирӣ мекунанд, дар соли 2020 пайдо мешаванд.

Ва он гоҳ хонандагони мақола чунинанд: "Пас агар телефонҳои мобилӣ онро ҳанӯз дуруст дастгирӣ накунанд, чаро AV1-ро истифода баред?"

AV1 як кодеки хеле нав аст ва мо дар ибтидои мутобиқсозии он ҳастем. Ин мақоларо ҳамчун марҳилаи "ҳангоми пухтан, мардум пайравӣ мекунанд" фикр кунед. Дастгирии мизи корӣ дар худи худ сайтҳоро барои баъзе аз шунавандагон суръат мебахшад. Ва кодекҳои кӯҳна метавонанд ҳамчун сенарияи бозгашт истифода шаванд, вақте ки AV1 дар дастгоҳи мавриди ҳадаф дастгирӣ намешавад. Аммо вақте ки корбарон ба дастгоҳҳои дорои дастгирии AV1 мегузаранд, ҳама чиз омода хоҳад шуд. Барои ноил шудан ба ин, ба мо лозим аст, ки теги видеоеро, ки дар зер нишон дода шудааст, эҷод кунем, ки ба браузер имкон медиҳад формати дилхоҳи худро интихоб кунад - AV1 - >> VP9 - >> H.264. Хуб, агар корбар дастгоҳи хеле кӯҳна ё навигатор дошта бошад, ки видеоро умуман дастгирӣ намекунад (ки бо H264 аз эҳтимол дур нест), он гоҳ ӯ танҳо 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>

Эҷоди AV1

Эҷоди видео дар AV1 осон аст. Навтарин ffmpeg-ро барои системаи худ аз ин ҷо зеркашӣ кунед ва фармонҳои зерро истифода баред. Мо барои ноил шудан ба суръати ҳадаф 2 гузаришро истифода мебарем. Барои ин мо ду маротиба ffmpeg -ро иҷро мекунем. Бори аввал мо натиҷаро ба файли мавҷуда наменависем. Ин гузоришеро эҷод мекунад, ки барои даври дуюми 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

Ин аст тақсимоти параметрҳо:

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

Эҷоди GIF

Барои сохтани GIF ман фармони зерро истифода кардам. Барои кам кардани андоза, ман GIF-ро ба андозаи 720 пиксел ва ба ҷои видеои аслии 12 кадр / сония 24 кадри сония васеъ кардам.

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

Натиҷаҳои санҷиш

Аз сад бор хондан як бор дидан беҳтар аст, дуруст? Биёед боварӣ ҳосил кунем, ки AV1 барои мақсадҳои мо интихоби дуруст аст. Ман видеои ройгони Tears Of Steel-ро дар ин ҷо дастрас кардам https://mango.blender.org/, ва онро бо истифода аз тақрибан як суръати бит барои кодекҳои AV1, VP9, ​​H.264 табдил дод. Натиҷаҳо дар зер оварда шудаанд, то шумо метавонед онҳоро барои худ муқоиса кунед.

Эзоҳ 1: Агар файли зер барои шумо бор накунад, шояд вақти навсозии браузери шумо расидааст. Ман як браузери асоси Chromium ба монанди Chrome, Vivaldi, Brave ё Opera тавсия медиҳам. Ин аст маълумоти охирин дар бораи дастгирии AV1 https://caniuse.com/#feat=av1

Эзоҳ 2: Барои Firefox 66 дар Linux шумо бояд парчамро насб кунед media.av1.enabled ба маъно true в about:config

Эзоҳ 3: Ман тасмим гирифтам, ки GIF-ҳои муқаррариро дар зер дохил накунам, зеро андозаи онҳо ва миқдори маълумоте, ки барои бор кардани ин саҳифа лозим аст! (Ин хандаовар мебуд, зеро ин саҳифа дар бораи кам кардани миқдори маълумот дар саҳифа аст :)). Аммо шумо метавонед GIF-ҳои ниҳоиро дар ин ҷо бубинед https://github.com/singhkays/its-time-replace-gifs-with-av1-video/blob/master/GIFs

Шарҳи тарҷумон: Habr ба шумо имкон намедиҳад, ки худкор бозӣ ва гардиши файлро фаъол созед, аз ин рӯ шумо танҳо сифатро арзёбӣ карда метавонед. Шумо метавонед бубинед, ки "тасвирҳои аниматсионӣ" дар зинда чӣ гуна хоҳанд буд мақолаи аслӣ.

Саҳнаи 1 @ 200 Кбит/с

Дар ин ҷо ҳаракат хеле зиёд аст, ки махсусан дар суръати паст ҳассос аст. Шумо метавонед фавран бубинед, ки H.264 дар ин бит чӣ қадар бад аст; квадратҳо фавран намоён мешаванд. VP9 вазъиятро андаке бехтар мекунад, вале майдонхо хануз намоёнанд. AV1 ба таври возеҳ ғолиб меояд ва тасвири баръало беҳтареро ба вуҷуд меорад.

H.264

VP9

AV1

Саҳнаи 2 @ 200 Кбит/с

Дар ин ҷо миқдори зиёди мундариҷаи шаффоф CGI мавҷуд аст. Натиҷаҳо аз замони гузашта фарқ намекунанд, аммо дар маҷмӯъ AV1 беҳтар ба назар мерасад.

H.264

VP9

AV1

Саҳнаи 3 @ 100 Кбит/с

Дар ин саҳна, мо суръати битро то 100 Кбит / сония коҳиш медиҳем ва натиҷаҳо мувофиқанд. AV1 ҳатто дар суръати паст пешсафи худро нигоҳ медорад!

H.264

VP9

AV1

Гелос дар торт

Барои ба итмом расонидани ин мақола бо эҳсоси ҳаҷми маҷрои сарфашуда дар муқоиса бо GIF - андозаи умумии ҳамаи видеоҳо баландтар аст... 1.62 МБ!! Дуруст. Баъзе 1,708,032 байт! Барои муқоиса, инҳо андозаи видеои GIF ва AV1 барои ҳар як саҳна мебошанд

GIF
AV1

Саҳнаи 1
11.7 MB
0.33 MB

Саҳнаи 2
7.27 MB
0.18 MB

Саҳнаи 3
5.62 MB
0.088 MB

Танҳо ҳайратангез! Аст, на?

Эзоҳ: Андозаи файлҳои VP9 ва H264 дода нашудааст, зеро онҳо аз сабаби истифодаи як суръати бит амалан аз AV1 фарқ надоранд. Илова кардани ду сутуни дигар бо андозаҳои якхела зиёдатӣ мебуд, танҳо барои таъкид кардан, ки ин кодекҳо нисбат ба GIF бо андозаи хеле хурдтари файл сифати хеле беҳтар истеҳсол мекунанд.

Манбаъ: will.com

Илова Эзоҳ