FFMPEG -billeder til videoundervisning

Ffmpeg Images Video Tutorial



Så du er interesseret i at bygge en video baseret på billeder? Linux -software kan også hjælpe dig med den opgave, og især en: ffmpeg.

Hvis du ikke allerede ved det, er ffmpeg en software, der konverterer og redigerer video og lyd ved hjælp af filtre. Det er den, der understøtter det største antal forskellige codecs. Hvis du allerede har brugt VLC, kender du lidt ffmpeg: VLC bruger ffmpeg til at afkode så mange videoer som muligt.





Men før jeg laver videoer, skal jeg fortælle dig nogle begreber, så du ikke går tabt i vejen.



Det er ikke rigtig svært at integrere billeder i en video. Og der er en grund: Videoer er baseret på en række billeder. Lad mig forklare.



En video (endda en YouTube -video) er en serie stillbilleder, der hurtigt ændres. I biografer og biografer er der mellem hvert billede et sort billede, fordi mekanismen skal skifte ramme og var for langsom. Men det er ikke mærkbart for menneskelige øjne, fordi mekanismen er hurtig nok og på grund af en optisk illusion.





Men computere har ikke dette problem. LCD -skærme bliver bare ved med at vise det sidste billede. Anyway, du kan faktisk udtrække et uafhængigt billede fra hvert billede af en video. Når et billede kommer fra en video, kaldes det et ramme . Det er præcis det, du ser, når du sætter en video på pause - og når du gør det, ser ansigter generelt ikke godt ud!

Generelt indeholder videoer fra USA a 30 billeder i sekundet - indse lidt. Det er 1.800 billeder i minuttet, 54.000 billeder i en halv times video eller 108.000 billeder i timen . Det er meget, og sådan undrer du dig nogle gange over, hvordan et enkelt billede kan veje 1 MiB, men et minuts 1080p -video kan kun veje 15 MiB.



Antallet af billeder i sekundet kaldes billedhastighed . Med 30 billeder i sekundet ændrer du billede hver 33 millisekunder . Så konkret, hvis du ville lave et minuts video udelukkende baseret på dine billeder, skulle du have 1.800 JPG- eller PNG -filer pr. Minut.

Det er nyttigt, hvis du vil foretage avanceret videoredigering uden at bruge videoværktøjer: du skal bare bygge billeder til hver ramme med dine effekter, og derefter kan du samle det i en video. Men nogle gange vil du have et stillbillede til at vare, fordi du godt vil have et stillbillede i video.

Okay, nu er det tid til at installere ffmpeg.

Installer ffmpeg på Linux

Afhængigt af din distribution kan installationen af ​​ffmpeg være let eller lidt vanskelig . Det er en gratis software med kildekode, der er offentligt tilgængelig, men da den kan afkode eller kode for patenterede formater som MP4, udelukker nogle distributioner den fra deres lagre. For eksempel i Red Hat Enterprise Linux, CentOS og Fedora har du brug for RPMFusion på grund af patenter. Desuden distribuerer alle Debian -versioner og Ubuntu før 16.04 en falsk version af ffmpeg baseret på en ulovlig gaffel.

Men før du skynder dig at installere det, er den rigtige version måske allerede installeret? Lad os teste:

$ffmpeg -version
ffmpegversion X.XXXXXXXX Copyright(c) 2000-2018FFmpeg -udviklerne

Hvis du efter ophavsretten ser FFmpeg -udviklerne, du har den originale version af FFMpeg, skal du ikke gøre noget. Men hvis du ser:

$ffmpeg -version
ffmpegversion X.XXXXXXXX Copyright(c) 2000-2018Libav -udviklerne

Så betyder det, at du bruger en gaffel af ffmpeg kaldet Libav. Debian og ældre versioner af Ubuntu stille erstatte FFMpeg med Libav. Hvis det fortæller dig, at det er forældet, skal du ignorere det, det er vildledende. Hvis du har gaflen installeret, er det tid til at fjerne din version af falsk ffmpeg og derefter følge guiden herunder for at installere den rigtige version. Sandsynligvis sådan her:

$sudo apt-get fjerne ffmpeg

Så nu har du muligvis ikke installeret det endnu, eller du har den forkerte version, tid til at installere det!

Gå til Fedora, Red Hat Enterprise Linux (RHEL) og CentOS https://rpmfusion.org/Configuration og aktiver gratis RPMFusion -arkiv på din computer. Så hvis du er i Fedora, skal du gøre:

$sudodnfinstallere ffmpeg

Og for CentOS & Red Hat Enterprise Linux:

$sudo yum installere ffmpeg

Det er alt for Fedora og Red Hat baserede systemer, det er installeret.

I alle versioner af Debian (og alle derivater) og Ubuntu før 16.04 skal du få FFMpeg -statisk build fra det officielle websted. Gå til https://ffmpeg.org/download.html#build-linux og herunder Linux statisk builds , Klik på 32-bit og 64-bit til kerne 2.6.32 og derover . Så, herunder udgivelse: X.X.X , download det relevante arkiv, udpak det, og du kan starte eksekverbare filer, der findes i den udpakkede mappe via CLI.

For dem, der bruger Ubuntu 16.04 og nyere, er det lettere, bare gør:

$sudo apt-get install ffmpeg

Puha! Endelig skulle vi være gode til at gå! Inden du går videre, test en sidste gang med:

$ffmpeg -version

ffmpeg version X.XXXXXXXX Copyright (c) 2000-2018 FFmpeg-udviklerne

Opret videoer fra mange billeder

Så for vores første eksempel opretter vi en video fra billeder, hvor hvert billede repræsenterer en ramme, der vises i 33 millisekunder. Lad mig først vise dig kommandoen.

** MP4 og H.264 er patenterede codecs, tjek venligst om du har ret til at kode med det. **

$ffmpeg-r: v30 -jeg 'Pingviner - %05d.png'-codec: v libx264-forudindstilletmeget langsom
-pix_fmt yuv420p-crf 28 -en 'Pingviner.mp4'

OK, så hvordan fungerer det? For at denne kommando skal fungere, skal du have mange rammer, hvor hver ramme er en fil som Penguins - 00043.png. Denne kommando kombinerer derefter alle rammer i rækkefølge med en hastighed 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 billeder, vil din video have en varighed på 4 sekunder.

Der er få krav til format, bredde og højde for rammer til at fungere. Hvis du ikke følger disse regler, ignorerer ffmpeg muligvis nogle billeder eller afbryder videooprettelsesprocessen. Så:

  • Alle rammer i samme video skal dele:
    • Bredde højde
    • Farvedybde
  • Rammer skal have en standard videoformat som f.eks .:
    • 640 ✕ 360 (360p)
    • 853 ✕ 480 (480p)
    • 1280 ✕ 720 (720p)
    • 1920 ✕ 1080 (1080p)
    • 4096 ✕ 2306 (4K)
  • Foretrækker rammer i PNG frem for JPG
  • Undgå gennemsigtighed eller alfa i PNG -format

Kommandoen vil derefter tage noget tid at konvertere videoen, optimere dens ydeevne og gøre dig til en MP4 -fil ved navn Penguins.mp4.

Nu vil du måske have et stillbillede tilbage i mere end 33 millisekunder. I dette tilfælde er din video mere et diasshow, og det er ikke den samme sag. For at gøre dette kan du først give en langsommere framerate for input og derefter fortælle ffmpeg at duplikere frames i output. Nej, YouTube og Vimeo vil ikke rigtig sætte pris på en 0,5 FPS -video, selvom du ændrer dit billede hvert 2. sekund.

Lad os hellere gøre det:

$ffmpeg-r: v1/5 -jeg 'Pingviner - %05d.png'-r: v30-codec: v libx264-forudindstilletmeget langsom
-pix_fmt yuv420p-crf 28 -en 'Pingviner.mp4'

Sådan der! ffmpeg får hvert af dine billeder vist i 5 sekunder, men i en 30 FPS video. Du skal ikke bekymre dig om advarslen om dubletter: det er, hvad du vil.

Konklusion

Nu er du - det nye Spielberg - i stand til at oprette dine egne videoer. Du kan lave et simpelt diasshow eller forberede en video frame for frame ved hjælp af et billedredigeringsprogram som GIMP, men du kan også drage fordel af det store sæt effekter og codecs, du kan finde i ffmpeg.

Tag dig tid til at eksperimentere selv - du er jo en kunstner - og lav en video, der vil få millioner af visninger på YouTube!