Video GIF:ksi

Video GIF:ksi - verkon animoitu GIF-muokkain — muuta videoklippi silmukoivaksi animoiduksi GIF:ksi valitsemallasi kuvataajuudella, leveydellä ja paletin laadulla. GIF on pitkäaikainen avoin muoto, jonka lähes jokainen laite ja keskustelualusta ymmärtää. Kaikki käsitellään paikallisesti selaimessa, eikä tiedostoja koskaan lähetetä palvelimelle.
Tuettu syöte: WebM, OGV (Ogg Video), MKV, AVI, GIF, WebP, APNG ja muut yleiset videomuodot. Kaikki muunnetaan paikallisesti selaimessa; tiedostoja ei koskaan lähetetä palvelimelle.
Ensimmäinen käyttökerta lataa noin 30 MB:n videonkäsittelymoottorin nykyiseen selaimeen. Se tallennetaan välimuistiin ja käytetään uudelleen, joten odota hetki.
🎥
Napsauta valitaksesi tai vedä ja pudota videotiedosto tähän
Tukee WebM-, OGV-, MKV-, AVI-, GIF- ja muita yleisiä muotoja; alle 500 Mt suositeltavaa
Kuvataajuus: suurempi = tasaisempi mutta suurempi tiedosto
Enimmäisleveys: skaalataan automaattisesti kuvasuhteen säilyttämiseksi
Paletin värit: vähemmän värejä = pienempi tiedosto, pieni laadun menetys
Animoidun GIF:n muuntaminen: poimii kehykset valitulla kuvataajuudella, skaalaa enimmäisleveyteen ja rakentaa optimoidun väripaletin silmukkaa varten. Äänirata (jos sellainen on) hylätään.
Miksi GIF:t ovat niin isoja? Paletit, ditterointi ja vuonna 1987 luotu muoto videon roolissa

GIF (Graphics Interchange Format, 1987) suunniteltiin still-kuvamuodoksi, jossa on pieni animaatiobonus, ja se näkyy. Kaksi ominaisuutta ohjaa kaikkea tällä sivulla: jokainen kehys on rajoitettu 256 väriin, jotka valitaan tallennetusta paletista, ja kehykset pakataan LZW:llä — yleiskäyttöisellä tavupakkaimella zip-ajalta — jolla ei ole aavistustakaan, että tallennetaan videota. Liikekompensointia ei ole, ei aritmetiikkaa "tämä kehys on enimmäkseen edellinen kehys" kuten oikeissa videokoodekeissa; jokainen kehys on olennaisesti yksittäin pakattu kuva. Paletin ymmärtäminen on avain pienten ja hyvännäköisten GIF-tiedostojen tekemiseen.

Viisi tosiasiaa, joihin muu sivu nojaa:
• jokainen kehys kantaa enintään 256 väriä (28) paletista; täysiväri-video on kvantisoitava alas
• ditterointi jäljittelee puuttuvia värejä sirottamalla naapurien paletti-merkintöjen pisteitä — isommat tiedostot, tasaisemmat liukuvärit
• kehysten ajoitus tallennetaan 10 ms:n yksiköissä: 10 fps → viive 10 (100 ms); käytännön alaraja on viive 2 (20 ms = 50 fps)
• kehykset LZW-pakataan itsenäisesti — ei kehysten välistä pakkausta on suurin kokotappaja
• vähemmän värejä, vähemmän kehyksiä, pienemmät mitat: jokainen säädin pienentää LZW-syötettä, ja vaikutus kertautuu
256 värin paletti ja raidoitus

Täysivärisen videon pikseli tarvitsee 24 bittiä (16,7 miljoonaa mahdollisuutta); GIF-pikseli on 8-bittinen indeksi taulukkoon, jossa on enintään 256 väriä. Videon muuntaminen GIF:ksi suorittaa siis paletin kvantisoinnin: valitaan 256 väriä, jotka edustavat sisältöä parhaiten, ja kiinnitetään jokainen pikseli lähimpään niistä. Liukuvärit maksavat hinnan — taivas, joka tarvitsee 4 000 hieman erilaista sinistä, saa niistä 30, ja tasainen siirtymä romahtaa näkyviksi raidoiksi, joita kutsutaan raidoitukseksi. Korkeakontrastinen tasainen grafiikka (logot, pelisprite-kuvat, kaaviot) tuskin huomaa sitä; valokuvat ja video kärsivät eniten. Muuntimen paletin laatu on suuri osa sen tulosteen laadusta.

Ditterointi: kohinan vaihtaminen tasaisuuteen

Ditterointi on klassinen korjaus raidoitukseen: sen sijaan, että jokainen pikseli kiinnitettäisiin lähimpään palettiväriin, sirotellaan kahden lähimmän värin sekoitus niin, että keskiarvo pienellä alueella vastaa alkuperäistä sävyä. Liukuvärit näyttävät dramaattisesti tasaisemmilta — raidat hajoavat hienoksi kohinaksi, jonka silmä sekoittaa normaalilla katseluetäisyydellä. Hinta on tiedostokoko: kohina on korkeataajuuksista yksityiskohtaa, ja LZW pakkaa säännölliset raidat paljon paremmin kuin sirotellut pisteet. Se on perustavanlaatuinen GIF-kompromissi, jonka tämä sivu paljastaa: poista ditterointi pienemmille tiedostoille raidoituksella, ota se käyttöön tasaisille liukuväreille koon lisähinnalla.

Kehysten ajoitus: 20 ms:n alaraja

GIF tallentaa kehysten välisen viiveen 1/100 sekunnin yksiköissä. 10 fps tarkoittaa viivettä 10 (100 ms per kehys); 20 fps tarkoittaa viivettä 5 (50 ms). Pienin hyödyllinen arvo on 2 (20 ms, eli 50 fps), ja käytännössä useimmat selaimet rajoittavat sen alle menevät arvot 100 ms:iin — 60 fps:n pyytäminen tuottaa hiljaa hitaampaa toistoa. Alarajan yli jokainen fps-nousu kertoo kehysmäärän: sama klippi 15 fps → 50 fps tarkoittaa yli kolminkertaisia kehyksiä, ja GIF:n koko skaalautuu suunnilleen lineaarisesti kehysmäärän mukaan. 10 sekunnin klippi 15 fps:llä on 150 kehystä; 50 fps:llä se olisi 500.

Miksi GIF:t paisuvat verrattuna oikeaan videoon

Modernit videokoodekit käyttävät suurimman osan bitteistään kuvaamiseen muutoksesta kehysten välillä — lukittu kamera tekee myöhemmistä kehyksistä lähes ilmaisia. GIF:n LZW näkee jokaisen kehyksen tuoreena kuvana (sen ainoa kehysten välinen temppu on läpinäkyvyyslippu, joka ohittaa pikselit, jotka ovat identtisiä edellisen kehyksen kanssa, ja se auttaa paljon vähemmän kuin todellinen liikekompensointi). Nyrkkisääntö: samalle klipille GIF on moninkertainen verrattuna hyvin koodattuun WebM:ään samalla resoluutiolla. Jos kohde hyväksyy oikean videon, suosi sitä; GIF voittaa vain siellä, missä sen yleismaailmallisuus ja automaattinen toisto ja silmukointi ovat tärkeitä.

Yleisiä väärinkäsityksiä
  • "GIF on pakattu, joten se on tehokas videolle." LZW on vuodelta 1987 peräisin oleva tavutason pakkain ilman liikemallia; liikkuvassa kuvassa se on vähiten tehokas laajalti käytetty muoto verkossa.
  • "Lähteeni on 60 fps, joten GIF:nkin pitäisi olla." 20 ms:n viiveen alaraja rajoittaa GIF:n 50 fps:ään, ja selaimet nostavat alarajan alle menevät viiveet ylöspäin. Kehys kehykseltä -uskollisuutta GIF ei voi tarjota.
  • "Ditterointi on vain kohinaa, joka pitäisi kytkeä pois." Se on tarkoituksellinen laadun ja koon kompromissi: pois päältä tiedostot ovat pienempiä mutta raidoittuvat, päällä liukuvärit ovat tasaisia mutta maksavat tavuja.
  • "Vähemmät värit näyttävät aina huonolta." Tasaisissa grafiikoissa ja korkeakontrastisessa animaatiossa jopa 64 väriä voi näyttää samalta kuin 256 — ja pienentää tiedostoa vielä.

Aiheeseen liittyvät työkalut: Video WebP/APNG:ksi aitoon värianimaatioon oikealla pakkauksella, GIF videoksi käänteiseen suuntaan (paletista täysväriksi), Video WebM:ksi samalle klipille oikeana videona, ja Videoleikkuri lähteen leikkaamiseen ennen muuntamista.