Geus waktuna pikeun ngaganti GIF ku video AV1

Geus waktuna pikeun ngaganti GIF ku video AV1

Ieu 2019 sareng waktosna urang mutuskeun dina GIF (teu, urang teu ngawangkong ngeunaan kaputusan ieu! Kami moal satuju di dieu! - di dieu urang ngobrol ngeunaan ngucapkeun dina basa Inggris, keur urang ieu teu relevan - approx. tarjamahan). GIF butuh rohangan anu ageung (biasana sababaraha megabyte!), Anu, upami anjeun pamekar wéb, leres-leres bertentangan sareng kahayang anjeun! Salaku pamekar wéb, anjeun hoyong ngaleutikan hal-hal anu kedah diunduh ku pangguna supados situsna gancang dimuat. Pikeun alesan anu sarua, anjeun minify JavaScript, ngaoptimalkeun PNG, JPEG, sarta kadangkala ngarobah JPEG ka WebP. Tapi naon anu kudu dipigawé kalayan GIF heubeul?

Kami henteu peryogi GIF dimana kami badé angkat!

Upami tujuan anjeun pikeun ningkatkeun kagancangan ngamuat situs, maka anjeun kedah nyingkirkeun GIF! Tapi kumaha teras anjeun ngadamel gambar animasi? Jawabanana nyaéta video. Sareng dina kalolobaan kasus, anjeun bakal nampi kualitas anu langkung saé sareng tabungan rohangan 50-90%! Dina kahirupan, seueur hal gaduh pro sareng kontra. Nalika anjeun ngagentos GIF sareng pidéo, paling sering anjeun moal tiasa mendakan kontra.

Turun sareng sadaya GIF!

Kabeneran, ngagentos GIF sareng pidéo parantos biasa dina taun-taun ayeuna, janten sadaya alat anu diperyogikeun parantos dianggo. Dina pos ieu, kuring moal reinvent kabayang, tapi ngan bakal rada ningkatkeun solusi aya. Janten ieu inti na:

  1. Nyokot GIF sarta ngarobah kana video
  2. Encode video nganggo H.264 atanapi VP9, ​​nyaéta. komprési sareng bungkus kana wadahna MP4 atanapi WebM
  3. Ngaganti <img> kalawan GIF animasi on <video> kalawan gilinding
  4. Hurungkeun autoplay tanpa sora sareng loop pikeun éfék GIF

Google boga dokuméntasi alus ngajéntrékeun prosés.

Ieu 2019

Ayeuna 2019. Kamajuan maju, sareng urang kedah ngiringan éta. Sajauh ieu kami parantos ngagaduhan dua pilihan codec anu dirojong sacara lega dina sadaya panyungsi sareng alat encoding video:

  1. H.264 - diwanohkeun dina 2003 sarta paling loba dipaké kiwari
  2. VP9 - muncul dina 2013 sarta ngahontal perbaikan komprési ampir 50% dibandingkeun H.264, sanajan sabab nulis di dieu teu sagalana teu salawasna jadi rosy

Catetan: Sanaos H.265 mangrupikeun vérsi H.264 salajengna sareng sanggup bersaing sareng VP9, ​​kuring henteu nganggap éta kusabab dukungan browser anu goréng, sapertos anu dipidangkeun dina halaman. https://caniuse.com/#feat=hevc. Biaya lisénsi mangrupikeun alesan utama naha H.265 henteu janten nyebar sapertos H.264 sareng naha konsorsium Alliance of Open Media damel sareng codec bébas royalti, AV1.

Émut, tujuan kami nyaéta pikeun ngaleutikan GIF ageung kana ukuran pangleutikna pikeun nyepetkeun waktos muatkeun. Éta bakal anéh 2019 upami urang henteu ngagaduhan standar anyar pikeun komprési pidéo dina arsenal urang. Tapi aya na disebut AV1. Kalawan AV1 Anjeun tiasa ngahontal kurang leuwih 30% pamutahiran dina komprési dibandingkeun VP9. Lepota! 🙂

AV1 dilayanan anjeun saprak 2019!

Dina desktops

Pangrojong panganyarna pikeun decoding video AV1 ditambahkeun kana versi desktop Google Chrome 70 и Firefox 65. Ayeuna dukungan Firefox masih buggy sareng tiasa nyababkeun kacilakaan, tapi hal-hal kedah ningkat kalayan tambihan dav1d decoder parantos aya dina Firefox 67 (geus dileupaskeun, tapi rojongan geus mucunghul - kira-kira. tarjamah.). Pikeun detil ngeunaan versi anyar baca - dav1d 0.3.0 release: malah gancang!

Dina smartphone

Ayeuna teu aya dukungan hardware pikeun smartphone kusabab kurangna dekoder anu pas. Anjeun tiasa ngalakukeun decoding software, sanajan ieu bakal ngakibatkeun ngaronjat konsumsi batré. SOC mobile munggaran anu ngadukung decoding hardware AV1 bakal muncul dina 2020.

Teras pamiarsa tulisan sapertos kieu, "janten upami telepon sélulér henteu ngadukung éta leres, naha nganggo AV1?"

AV1 mangrupakeun codec cukup anyar, sarta kami di pisan awal adaptasi na. Pikir artikel ieu salaku "bari anjeun masak, balaréa bakal nuturkeun" tahap. Pangrojong desktop sorangan bakal nyepetkeun situs pikeun sababaraha pamiarsa. Jeung codec heubeul bisa dipaké salaku skenario fallback lamun AV1 teu dirojong dina alat target. Tapi nalika pangguna ngalih ka alat anu ngadukung AV1, sadayana bakal siap. Pikeun ngahontal ieu, urang kedah nyiptakeun tag pidéo sapertos anu dipidangkeun di handap ieu, anu bakal ngamungkinkeun browser milih format anu dipikahoyong - AV1 - >> VP9 - >> H.264. Nya, upami pangguna gaduh alat atanapi navigator anu lami pisan anu henteu ngadukung pidéo (anu teu mungkin sareng H264), teras anjeunna ngan bakal ningali 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>

Nyiptakeun AV1

Nyieun video dina AV1 gampang. Unduh ngawangun ffmpeg panganyarna pikeun sistem anjeun ti dieu sareng nganggo paréntah di handap. Kami nganggo 2 pas pikeun ngahontal bitrate target. Jang ngalampahkeun ieu kami bakal ngajalankeun ffmpeg dua kali. Pertama kali urang nulis hasilna kana file non-existent. Ieu bakal nyieun log nu bakal diperlukeun pikeun ngajalankeun kadua 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

Ieu ngarecahna parameter:

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

Nyieun GIFs

Pikeun nyiptakeun GIF kuring nganggo paréntah di handap ieu. Pikeun ngurangan ukuranana, kuring diskalakeun GIF ka 720px lega tur 12 fps tinimbang aslina 24 fps video.

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

Hasil tés

Éta langkung saé ningali sakali tibatan maca saratus kali, sanés? Hayu urang pastikeun AV1 mangrupa pilihan katuhu pikeun kaperluan urang. Kuring nyandak video Tears Of Steel gratis anu sayogi di dieu https://mango.blender.org/, sarta ngarobahna ngagunakeun kira-kira bitrate sarua keur codec AV1, VP9, ​​H.264. Hasilna aya di handap ku kituna anjeun tiasa ngabandingkeunana nyalira.

Catetan 1: Upami file di handap henteu dimuat pikeun anjeun, panginten waktosna pikeun ngapdet browser anjeun. Abdi nyarankeun browser dumasar Chromium sapertos Chrome, Vivaldi, Brave atanapi Opera. Ieu inpormasi panganyarna ngeunaan dukungan AV1 https://caniuse.com/#feat=av1

Catetan 2: Pikeun Firefox 66 dina Linux anjeun kedah nyetél bandéra media.av1.enabled kana harti true в about:config

Catetan 3: Kuring parantos mutuskeun pikeun henteu ngalebetkeun GIF biasa di handap kusabab ukuranana ageung sareng jumlah data anu diperyogikeun pikeun muka halaman ieu! (Anu bakal ironis, saprak kaca ieu ngeunaan ngurangan jumlah data dina kaca :)). Tapi anjeun tiasa ningali GIF final di dieu https://github.com/singhkays/its-time-replace-gifs-with-av1-video/blob/master/GIFs

Catetan panarjamah: Habr teu ngidinan Anjeun pikeun ngaktipkeun autoplay na loop file, jadi Anjeun ngan bisa evaluate kualitas. Anjeun tiasa ningali kumaha "gambar animasi" bakal katingali langsung artikel aslina.

Adegan 1 @ 200 Kbps

Aya loba gerakan di dieu, nu utamana sénsitip dina bitrates low. Anjeun tiasa langsung ningali kumaha parah H.264 dina laju bit ieu; kotak langsung katingali. VP9 ningkatkeun kaayaan saeutik, tapi kuadrat masih katingali. AV1 jelas meunang, ngahasilkeun gambar jelas hadé.

H.264

VP9

AV1

Adegan 2 @ 200 Kbps

Aya seueur eusi CGI anu tembus di dieu. Hasilna henteu béda sareng anu kapungkur, tapi sacara umum AV1 langkung saé.

H.264

VP9

AV1

Adegan 3 @ 100 Kbps

Dina adegan ieu, urang ngahurungkeun bitrate ka 100 Kbps sarta hasilna konsisten. AV1 mertahankeun kapamimpinan na sanajan bitrates low!

H.264

VP9

AV1

Cherry dina jajan

Pikeun ngarengsekeun tulisan ieu ku ngaraosan jumlah rubakpita anu disimpen dibandingkeun sareng GIF - ukuran total sadaya pidéo langkung luhur... 1.62 mb!! Leres. Sababaraha bangsat 1,708,032 bait! Pikeun babandingan, ieu mangrupikeun ukuran pidéo GIF sareng AV1 pikeun unggal pamandangan

GIF
AV1

Adegan 1
11.7 MB
0.33 MB

Adegan 2
7.27 MB
0.18 MB

Adegan 3
5.62 MB
0.088 MB

Kantun stunning! Sanés éta?

Catetan: Ukuran file VP9 sareng H264 henteu dipasihkeun, sabab praktis henteu béda ti AV1 kusabab panggunaan bitrate anu sami. Éta bakal kaleuleuwihan pikeun nambihan dua kolom deui kalayan ukuran anu sami, ngan ukur nyorot yén codec ieu ngahasilkeun kualitas anu langkung saé tibatan GIF dina ukuran file anu langkung alit.

sumber: www.habr.com

Tambahkeun komentar