FFMPEG -bilder til videoopplæring

Ffmpeg Images Video Tutorial



Så du er interessert i å bygge en video basert på bilder? Linux -programvare kan også hjelpe deg med den oppgaven, og spesielt en: ffmpeg.

Hvis du ikke vet det allerede, er ffmpeg en programvare som gjør konvertering og redigering av video og lyd ved hjelp av filtre. Det er den som støtter det største antallet forskjellige kodeker. Hvis du allerede brukte VLC, vet du litt ffmpeg: VLC bruker ffmpeg for å dekode så mange videoer som mulig.





Men før jeg lager videoer, må jeg fortelle deg noen begreper, slik at du ikke går deg vill i veien.



Det er egentlig ikke vanskelig å integrere bilder i en video. Og det er en grunn: videoer er basert på en serie bilder. La meg forklare.



En video (til og med en YouTube -video) er en serie stillbilder som endres raskt. På kino og kino er det et svart bilde mellom hvert bilde fordi mekanismen må bytte ramme og var for treg. Men det er ikke merkbart for menneskelig øye fordi mekanismen er rask nok og på grunn av en optisk illusjon.





Men datamaskiner har ikke dette problemet. LCD -skjermer viser bare det siste bildet. Uansett kan du faktisk trekke ut et uavhengig bilde fra hvert bilde av en video. Når et bilde kommer fra en video, kalles det a ramme . Det er akkurat det du ser når du setter en video på pause - og når du gjør det, ser ansikter generelt ikke bra ut!

Vanligvis inneholder videoer fra USA a 30 bilder i sekundet - innse litt. Det er 1.800 bilder per minutt, 54.000 bilder per halvtime med video eller 108 000 bilder i timen . Det er mye, og det er slik du noen ganger lurer på hvordan et enkelt bilde kan veie 1 MiB, men ett minutt 1080p video kan veie bare 15 MiB.



Antall bilder per sekund kalles bildefrekvens . Med 30 bilder per sekund endrer du bilde hver 33 millisekunder . Så konkret, hvis du ønsket å lage ett minutt video utelukkende basert på bildene dine, må du ha 1800 JPG- eller PNG -filer per minutt.

Det er nyttig hvis du vil gjøre avansert videoredigering uten å bruke videoverktøy: du må bare bygge bilder for hver ramme med effektene dine, og deretter kan du pakke det sammen i en video. Men noen ganger vil du at et stillbilde skal vare fordi, vel, du vil ha et stillbilde i video.

Ok, nå er det på tide å installere ffmpeg.

Installer ffmpeg på Linux

Avhengig av distribusjonen din, kan det være enkelt eller litt å installere ffmpeg vanskelig . Det er en gratis programvare med kildekode offentlig tilgjengelig, men ettersom den kan dekode eller kode kodede patenterte formater som MP4, utelukker noen distribusjoner den fra sine depoter. For eksempel, i Red Hat Enterprise Linux, CentOS og Fedora, trenger du RPMFusion på grunn av patenter. Videre distribuerer alle Debian -versjoner og Ubuntu før 16.04 en falsk versjon av ffmpeg basert på en uekte gaffel.

Men før du skynder deg å installere den, er kanskje den riktige versjonen allerede installert? La oss teste:

$ffmpeg -versjon
ffmpegversjon X.XXXXXXXX Copyright(c) 2000-2018FFmpeg -utviklerne

Hvis du etter opphavsretten ser FFmpeg -utviklerne, du har den opprinnelige versjonen av FFMpeg, trenger du ikke gjøre noe. Men hvis du ser:

$ffmpeg -versjon
ffmpegversjon X.XXXXXXXX Copyright(c) 2000-2018Libav -utviklerne

Da betyr det at du bruker en gaffel av ffmpeg kalt Libav. Debian og eldre versjoner av Ubuntu stille erstatte FFMpeg med Libav. Hvis den forteller deg at den er utdatert, kan du ignorere den, det er misvisende. Hvis du har gaffelen installert, er det på tide å fjerne din falske ffmpeg -versjon og deretter følge veiledningen nedenfor for å installere den riktige versjonen. Sannsynligvis slik:

$sudo apt-get fjerne ffmpeg

Så nå har du kanskje ikke installert den ennå, eller du har feil versjon. På tide å installere den!

I Fedora, Red Hat Enterprise Linux (RHEL) og CentOS, gå til https://rpmfusion.org/Configuration og aktiver gratis RPMFusion -depot på datamaskinen din. Så, hvis du er i Fedora, gjør du:

$sudodnfinstallere ffmpeg

Og for CentOS og Red Hat Enterprise Linux:

$sudo yum installere ffmpeg

Det er alt for Fedora- og Red Hat -baserte systemer, det er installert.

I alle versjoner av Debian (og alle derivater) og Ubuntu før 16.04 må du få FFMpeg -statisk build fra det offisielle nettstedet. Gå til https://ffmpeg.org/download.html#build-linux og nedenfor Linux statiske bygninger , klikk på 32-bit og 64-bit for kjernen 2.6.32 og nyere . Deretter, nedenfor utgivelse: X.X.X , last ned det riktige arkivet, trekk det ut, og du kan starte kjørbare filer i den utpakkede mappen via CLI.

For de som bruker Ubuntu 16.04 og nyere, er det enklere, bare gjør:

$sudo apt-get install ffmpeg

Puh! Endelig bør vi være gode å gå! Test en siste gang med:

$ffmpeg -versjon

ffmpeg versjon X.XXXXXXXX Copyright (c) 2000-2018 FFmpeg-utviklerne

Lag videoer fra mange bilder

Så, for vårt første eksempel, vil vi lage en video fra Bilder hvor hvert bilde representerer en ramme som vil bli vist i 33 millisekunder. La meg først vise deg kommandoen.

** MP4 og H.264 er patenterte kodeker, sjekk om du har rett til å kode med den. **

$ffmpeg-r: v30 -Jeg 'Pingviner - %05d.png'-codec: v libx264-forhåndsinnstillingveldig treg
-pix_fmt yuv420p-krf 28 -en 'Pingviner.mp4'

OK, så hvordan fungerer det? For at denne kommandoen skal fungere, må du ha mange rammer der hver ramme er en fil som Penguins - 00043.png. Denne kommandoen vil deretter kombinere alle rammer i rekkefølge med en hastighet på 30 FPS. Så, Penguins - 00043.png kommer før Penguins - 00044.png i videoen og ffmpeg vil respektere det. Så hvis du har 120 bilder, vil videoen ha en varighet på 4 sekunder.

Det er få krav til format, bredde og høyde for rammer å fungere. Hvis du ikke følger disse reglene, kan ffmpeg ignorere noen bilder eller avbryte prosessen med å lage video. Så:

  • Alle rammer i samme video må dele:
    • Bredde høyde
    • Fargedybde
  • Rammer bør ha en standard videostørrelse, for eksempel:
    • 640 ✕ 360 (360p)
    • 853 ✕ 480 (480p)
    • 1280 ✕ 720 (720p)
    • 1920 ✕ 1080 (1080p)
    • 4096 ✕ 2306 (4K)
  • Foretrekker rammer i PNG fremfor JPG
  • Unngå åpenhet eller alfa i PNG -format

Kommandoen vil deretter ta litt tid å konvertere videoen, optimalisere ytelsen og gjøre deg til en MP4 -fil som heter Penguins.mp4.

Nå vil du kanskje ha et stillbilde igjen i mer enn 33 millisekunder. I dette tilfellet er videoen din mer en lysbildefremvisning, og det er ikke den samme saken. For å gjøre det, kan du først gi en langsommere framerate for input og deretter fortelle ffmpeg å duplisere rammer i output. Nei, YouTube og Vimeo vil ikke sette pris på en 0,5 FPS video selv om du endrer bildet ditt hvert 2. sekund.

La oss heller gjøre det:

$ffmpeg-r: v1/5 -Jeg 'Pingviner - %05d.png'-r: v30-codec: v libx264-forhåndsinnstillingveldig treg
-pix_fmt yuv420p-krf 28 -en 'Pingviner.mp4'

Der går vi! ffmpeg vil få hvert av bildene dine til å vises i 5 sekunder, men i en 30 FPS video. Ikke bekymre deg for advarselen om dupliserte rammer: det er det du vil ha.

Konklusjon

Nå er du - nye Spielberg - i stand til å lage dine egne videoer. Du kan gjøre en enkel lysbildefremvisning eller forberede en video bilde for bilde ved hjelp av et bildeditor som GIMP, men du kan også dra nytte av det store settet med effekter og kodeker du kan finne i ffmpeg.

Ta deg tid til å eksperimentere selv - du er tross alt en kunstner - og lag en video som vil gjøre millioner av visninger på YouTube!