FFMPEG-afbeeldingen naar video-zelfstudie

Ffmpeg Images Video Tutorial



Dus je bent geïnteresseerd in het bouwen van een video op basis van afbeeldingen? Linux-software kan je ook met die taak helpen, en vooral een: ffmpeg.

Als je het nog niet weet, is ffmpeg een software die video- en audioconversie en bewerking uitvoert met behulp van filters. Het is degene die het grootste aantal verschillende codecs ondersteunt. Als je VLC al hebt gebruikt, dan ken je een beetje ffmpeg: VLC gebruikt ffmpeg om zoveel mogelijk video's te decoderen.







Maar voordat ik video's maak, moet ik je enkele concepten vertellen, zodat je niet in de weg loopt.



Het is niet echt moeilijk om afbeeldingen in een video te integreren. En daar is een reden voor: video's zijn gebaseerd op een reeks afbeeldingen. Laat het me uitleggen.



Een video (zelfs een YouTube-video) is een reeks stilstaande beelden die snel verandert. In bioscopen en bioscopen staat tussen elk beeld een zwart beeld omdat het mechanisme van frame moet wisselen en te traag was. Maar het is niet waarneembaar voor het menselijk oog omdat het mechanisme snel genoeg is en vanwege een optische illusie.





Maar computers hebben dit probleem niet. LCD-schermen blijven gewoon het laatste beeld weergeven. Hoe dan ook, je kunt in feite een onafhankelijk beeld extraheren uit elke afbeelding van een video. Wanneer een afbeelding uit een video komt, wordt het een . genoemd kader . Dat is precies wat je ziet als je een video pauzeert - en als je dat doet, zien gezichten er over het algemeen niet goed uit!

Over het algemeen bevatten video's uit de Verenigde Staten een: 30 beelden per seconde - een beetje beseffen. Het is 1.800 frames per minuut, 54.000 frames per half uur video, of 108.000 beelden per uur . Dat is veel en daarom vraag je je soms af hoe een enkele afbeelding 1 MiB kan wegen, terwijl een minuut 1080p-video slechts 15 MiB kan wegen.



Het aantal foto's per seconde heet de frame rate . Met 30 frames per seconde verander je de afbeelding elke 33 milliseconden . Dus concreet, als je één minuut video alleen op basis van je afbeeldingen wilt maken, moet je 1800 JPG- of PNG-bestanden per minuut hebben.

Dat is handig als je geavanceerde videobewerking wilt doen zonder videotools: je hoeft alleen maar voor elk frame afbeeldingen te bouwen met je effecten en deze vervolgens te bundelen in een video. Maar soms wil je dat een stilstaand beeld lang meegaat, want, nou ja, je wilt een stilstaand beeld in video.

Oké, nu is het tijd om ffmpeg te installeren.

Installeer ffmpeg op Linux

Afhankelijk van uw distributie, kan het installeren van ffmpeg eenvoudig of een beetje zijn lastig . Het is gratis software waarvan de broncode openbaar beschikbaar is, maar omdat het gepatenteerde formaten zoals MP4 kan decoderen of coderen, sluiten sommige distributies het uit van hun repositories. In Red Hat Enterprise Linux, CentOS en Fedora heb je bijvoorbeeld RPMfusion nodig vanwege patenten. Bovendien verspreiden alle Debian-versies en Ubuntu vóór 16.04 een valse versie van ffmpeg op basis van een onwettige vork.

Maar voordat u zich haast om het te installeren, misschien is de juiste versie al geïnstalleerd? Laten we testen:

$ffmpeg -versie
ffmpegversie X.XXXXXXXX Copyright(C) 2000-2018de FFmpeg-ontwikkelaars

Als je na het copyright de FFmpeg-ontwikkelaars ziet, heb je de originele versie van FFMpeg, dan hoef je niets te doen. Als u echter ziet:

$ffmpeg -versie
ffmpegversie X.XXXXXXXX Copyright(C) 2000-2018de Libav-ontwikkelaars

Dan betekent het dat je een gebruikt vork van ffmpeg genaamd Libav. Debian en oudere versies van Ubuntu stilletjes vervang FFMpeg door Libav. Als het je vertelt dat het verouderd is, negeer het dan, dat is misleidend. Als je de fork hebt geïnstalleerd, is het tijd om je versie van false ffmpeg te verwijderen en volg dan de onderstaande gids om de juiste versie te installeren. Waarschijnlijk als volgt:

$sudo apt-get verwijderen ffmpeg

Dus nu heb je het misschien nog niet geïnstalleerd of heb je de verkeerde versie, tijd om het te installeren!

Ga in Fedora, Red Hat Enterprise Linux (RHEL) en CentOS naar: https://rpmfusion.org/Configuration en schakel de gratis RPMusion-repository op uw computer in. Doe dan, als je in Fedora bent:

$sudodnfinstalleren ffmpeg

En voor CentOS en Red Hat Enterprise Linux:

$sudo yum installeren ffmpeg

Dat is alles voor op Fedora en Red Hat gebaseerde systemen, het is geïnstalleerd.

In alle versies van Debian (en alle afgeleiden) en Ubuntu vóór 16.04 moet u FFMpeg statische build van de officiële website halen. Ga naar https://ffmpeg.org/download.html#build-linux en onder Statische Linux-builds , Klik op 32-bits en 64-bits voor kernel 2.6.32 en hoger . Dan, hieronder release: X.X.X , download het juiste archief, pak het uit en u kunt de uitvoerbare bestanden in de uitgepakte map starten via CLI.

Voor degenen die Ubuntu 16.04 en hoger gebruiken, is het eenvoudiger, doe gewoon:

$sudo apt-get install ffmpeg

Opluchting! Eindelijk zouden we goed moeten zijn om te gaan! Test voordat je verder gaat nog een laatste keer met:

$ffmpeg -versie

ffmpeg-versie X.XXXXXXXX Copyright (c) 2000-2018 de FFmpeg-ontwikkelaars

Maak video's van veel afbeeldingen

Dus voor ons eerste voorbeeld maken we een video van afbeeldingen waarbij elke afbeelding een frame vertegenwoordigt dat 33 milliseconden wordt weergegeven. Laat me je eerst het commando laten zien.

** MP4 en H.264 zijn gepatenteerde codecs, controleer of je het recht hebt om ermee te coderen. **

$ffmpeg-r: v30 -l 'Pinguïns - %05d.png'-codec:v libx264-vooraf ingesteldzeer langzaam
-pix_fmt yuv420p-crf 28 -een 'Pinguïns.mp4'

Oké, hoe werkt dat? Om deze opdracht te laten werken, moet je veel frames hebben waarbij elk frame een bestand is zoals Penguins - 00043.png. Deze opdracht combineert vervolgens alle frames in volgorde met een snelheid van 30 FPS. Dus Penguins – 00043.png komt voor Penguins – 00044.png in de video en ffmpeg zal dat respecteren. Dus als je 120 frames hebt, duurt je video 4 seconden.

Er zijn weinig eisen aan formaat, breedte en hoogte om frames te laten werken. Als u deze regels niet volgt, kan ffmpeg sommige afbeeldingen negeren of het proces voor het maken van video's annuleren. Dus:

  • Alle frames in dezelfde video moeten het volgende delen:
    • Breedte hoogte
    • Kleuren diepte
  • Frames moeten een standaard videoformaat hebben, zoals:
    • 640 ✕ 360 (360p)
    • 853 ✕ 480 (480p)
    • 1280 ✕ 720 (720p)
    • 1920 ✕ 1080 (1080p)
    • 4096 ✕ 2306 (4K)
  • Geef de voorkeur aan frames in PNG in plaats van JPG
  • Vermijd transparantie of alfa in PNG-indeling

Het commando zal dan enige tijd in beslag nemen om de video te converteren, de prestaties te optimaliseren en je een MP4-bestand te maken met de naam Penguins.mp4.

Nu wilt u misschien een stilstaand beeld hebben dat langer dan 33 milliseconden blijft. In dit geval is je video meer een diavoorstelling en is het niet dezelfde zaak. Om dit te doen, kunt u eerst een langzamere framerate voor de invoer geven en vervolgens ffmpeg vertellen om frames in uitvoer te dupliceren. Nee, YouTube en Vimeo zullen een 0,5 FPS-video niet echt waarderen, zelfs niet als je je afbeelding elke 2 seconden verandert.

Laten we dat liever doen:

$ffmpeg-r: v1/5 -l 'Pinguïns - %05d.png'-r: v30-codec:v libx264-vooraf ingesteldzeer langzaam
-pix_fmt yuv420p-crf 28 -een 'Pinguïns.mp4'

Daar gaan we! ffmpeg laat elk van uw afbeeldingen gedurende 5 seconden verschijnen, maar in een 30 FPS-video. Maak je geen zorgen over de waarschuwing voor dubbele frames: dat is wat je wilt.

Conclusie

Nu ben je - de nieuwe Spielberg - in staat om je eigen video's te maken. U kunt een eenvoudige diavoorstelling maken of een video frame voor frame voorbereiden met behulp van een afbeeldingseditor zoals GIMP, maar u kunt ook profiteren van de grote set effecten en codecs die u in ffmpeg kunt vinden.

Neem de tijd om zelf te experimenteren - je bent tenslotte een artiest - en maak een video die miljoenen views op YouTube zal opleveren!