Ingen opplasting, 100% lokalt, ingen konto

Artikkel

Trekk ut videorammer for miniatyrbilder og kontaktark

En video er en sekvens av stillbilder. Å trekke ut ett av disse bildene gir deg et miniatyrbilde, et omslag eller et kontaktark. Resultatet er skarpere og mer forutsigbart når du forstår hvordan en videokodek lagrer rammene sine og hvilke øyeblikk som er verdt å fange.

Rammer og bildefrekvens

En videofil er en sekvens av stillbilder vist raskt nok til å skape illusjonen av bevegelse. Antallet bilder vist per sekund er bildefrekvensen, uttrykt i fps. Vanlige verdier er 24 fps for kino, 25 fps for PAL-kringkasting, 30 fps for nettvideo og 60 fps for spillopptak. Ved 24 fps inneholder en to-timers film rundt 172 800 individuelle rammer. Hver ramme tilsvarer et enkelt øyeblikk i tid; å trekke ut én fryser det øyeblikket som et frittstående bilde. Bildefrekvensen bestemmer også hvor mange rammer du får per sekund med opptak når du trekker ut en batch: ved 30 fps gir uttrekning av hver ramme fra ett minutt video deg 1 800 bilder, noe som ofte er langt mer enn du trenger. Å trekke ut med en lavere bildefrekvens, eller hver N-te ramme med verktøy som støtter det, er en praktisk måte å redusere det volumet på mens du fortsatt dekker hele varigheten.

En tidslinjestrimmel som viser 24 individuelle rammer per sekund med opptak, med rammenummer og tidsstempel synlig under hver ramme.

Nøkkelrammer vs interpolerte rammer

Moderne videokodeker lagrer ikke hver ramme som et komplett bilde. De bruker tre rammetyper for å spare plass. En I-frame, også kalt en nøkkelramme, er et komplett, selvstendig bilde. En P-frame lagrer bare pikslene som endret seg siden siste I-frame eller P-frame. En B-frame lagrer endringer relativt til både en forrige ramme og en fremtidig ramme, noe som krever rammer på begge sider for å rekonstruere den. Fordi en P-frame eller B-frame er ufullstendig på egen hånd, krever dekoding av den de omkringliggende referanserammene. Hvis disse referanserammene inneholder bevegelsesuskarphet eller en overgang, arver det rekonstruerte bildet den uskyrpheten. En I-frame derimot dekodes uavhengig. Den er alltid skarp fordi den ikke låner noe fra naboer. Når du trekker ut en ramme for bruk som miniatyrbilde, gir landing på en I-frame deg det reneste mulige resultatet. De fleste kodeker plasserer I-frames ved sceneoverganger, som er naturlig skarpe utgangspunkter.

Velge riktig øyeblikk

Selv en godt dekodet I-frame kan gi et dårlig miniatyrbilde hvis det fangede øyeblikket er ufordelaktig. Flere faktorer reduserer miniatyrbildekvaliteten. Bevegelsesuskarphet oppstår når kamera eller motiv beveger seg raskt under rammeeksponeringen; den resulterende uskyrpheten gjør en ramme til å se myk ut selv om dekodingen var ren. Overgangsrammer fanget midt i en dissolve eller blandingsovergang inneholder to overlappende bilder og fungerer sjelden som frittstående bilder. Undereksponerte eller overeksponerte rammer, vanlige i begynnelsen av en scene før automatisk eksponering stabiliserer seg, mister detaljer i skygger eller høylys. De beste miniatyrbilderammene kommer fra øyeblikk med klar handling eller uttrykk, godt lys og et stabilt kamera. Å rulle gjennom videoen med en spiller som viser nøyaktige tidsstempler lar deg identifisere disse øyeblikkene før du trekker dem ut. En ramme som ser bra ut pauset i en spiller vil vanligvis se bra ut som et stillbilde eksportert.

En videospiller satt på pause på en godt belyst, stabil ramme av et motiv midt i en handling, med et tidsstempel vist i hjørnet.

Eksport: oppløsning, format og hver N-te ramme

Når du trekker ut en ramme, bør det eksporterte bildet samsvare med videoens opprinnelige oppløsning. Å skalere opp introduserer interpoleringsartefakter; skalering ned forkaster piksler du kanskje vil ha. En 1080p-video produserer 1920x1080 pikselbilder, og en 4K-video produserer 3840x2160. For format bevarer PNG hver piksel nøyaktig og er det riktige valget når du trenger maksimal skarphet for redigering eller ytterligere skalering. JPEG er mindre og greit for forhåndsvisning eller deling, men det introduserer komprimeringsartefakter rundt skarpe kanter. Hvis du bygger et kontaktark, et rutenett av små representative rammer som dekker hele varigheten, er uttrekking med en fast bildefrekvens i stedet for å hente hver ramme standardtilnærmingen: å be om 1 bilde per sekund fra en 30 fps-kilde gir deg ett bilde per sekund opptak, og en høyere frekvens som 5 eller 10 fps gir et tettere sett for nærmere inspeksjon. Den eksakte frekvensen avhenger av hvor mye detaljer du trenger kontra hvor mange bilder du vil håndtere.

Gjøre det lokalt med video-extract-frames

Video-extract-frames-verktøyet på Sunasty dekoder videoen din helt inne i nettleseren ved hjelp av FFmpeg kompilert til WebAssembly. Du slipper en fil, velger en bildefrekvens fra 1 til 30 bilder per sekund, velger PNG eller JPEG, og verktøyet dekoder rammer med den frekvensen i nettleserens minne og tilbyr resultatene som individuelle nedlastinger, med et tak på 300 rammer per kjøring. Videofilen din forlater aldri enheten din. Ingen bytes sendes til en server på noe tidspunkt under prosessen. Dette er viktig for opptak som inneholder personlig eller sensitivt innhold: et familieopptak, et intervju eller råopptak før redigering. Nettleseren laster videoen inn i et virtuelt filsystem i RAM, kjører FFmpeg-dekodingen og gir deg bildene tilbake. Avveiningen er at dekoding gjøres i programvare på CPU-en din i stedet for av dedikert maskinvare, så en lang video med høy oppløsning tar lengre tid enn et opprinnelig program ville. For å trekke ut en håndfull rammer eller produsere et kontaktark fra en kort klipp er hastigheten praktisk.

Verktøy i denne artikkelen

Ofte stilte spørsmål

Hvorfor ser den uttrukne rammen min uskarp ut?

Den vanligste årsaken er å lande på en P-frame eller B-frame under et bevegelsesøyeblikk. Disse rammene lagrer forskjeller i stedet for komplette bilder, og bevegelsesuskarphet i kildeopptak overføres til dekodingen. Prøv å trekke ut den nærmeste I-frame, som tilsvarer en sceneovergang eller en periodisk nøkkelramme, for et skarpere resultat.

Bør jeg eksportere rammer som PNG eller JPEG?

PNG hvis du planlegger å redigere rammen, skalere den opp, eller bruke den i en kontekst der komprimeringsartefakter ville være synlige. JPEG hvis du trenger en mindre fil for rask deling eller forhåndsvisning og den lille kvalitetsreduksjonen er akseptabel. For miniatyrbilder som vises i en fast liten størrelse er JPEG med en rimelig kvalitetsinnstilling vanligvis greit.

Hvordan lager jeg et kontaktark fra en video?

Velg en bildefrekvens lav nok til å gi deg et håndterbart antall stillbilder, i stedet for ett enkelt tidsstempel. For en to-minutters klipp gir 1 bilde per sekund deg rundt 120 rammer, noe som er tett nok til å velge et godt rutenett fra; utdataene har uansett et tak på 300 rammer per kjøring. Det finnes ingen grovere frekvens enn 1 fps i dag, så for et sparsommere ark trekker du ut ved 1 fps og beholder bare rammene du vil ha til det endelige rutenettet.