Als je het nog niet weet, ffmpeg is 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.
Videoconcepten: hoe afbeeldingen kunnen werken in een video
Het is niet zo moeilijk om afbeeldingen in een video te integreren. En er is een reden: 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 onafhankelijke afbeelding extraheren uit elke afbeelding van een video. Als een afbeelding uit een video komt, heet het een 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 - besef een beetje. 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, zou je 1.800 JPG- of PNG-bestanden per minuut moeten hebben.
Dat is handig als je geavanceerde videobewerking wilt doen zonder videotools te gebruiken: je hoeft alleen voor elk frame afbeeldingen te bouwen met je effecten en dan kun je het 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 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 zijn alle Debian-versies en Ubuntu vóór 16.04 distribueert een valse versie van ffmpeg op basis van een onwettige fork.
Maar voordat je je haast om het te installeren, misschien is de juiste versie al geïnstalleerd? Laten we testen:
$ ffmpeg -versieffmpeg versie X.XXXXXXXX Copyright (c) 2000-2018 de 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 -versieffmpeg versie X.XXXXXXXX Copyright (c) 2000-2018 de 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 verwijder ffmpegDus 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 in op uw computer. Doe dan, als je in Fedora bent:
$ sudo dnf install ffmpegEn voor CentOS en Red Hat Enterprise Linux:
$ sudo yum install ffmpegDat 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, je moet FFMpeg statische build krijgen van de officiële website. Ga naar https://ffmpeg.org/download.html#build-linux en lager “Statische Linux-builds", Klik op "32-bits en 64-bits voor kernel 2.6.32 en hoger”. Dan, hieronder “vrijgeven: 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 . gebruiken.04 en hoger, het is makkelijker, doe gewoon:
$ sudo apt-get install ffmpegopluchting! Eindelijk zouden we goed moeten zijn om te gaan! Test voordat je verder gaat nog een laatste keer met:
$ ffmpeg -versieffmpeg 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:v 30 -i "Pinguïns - %05d.png" -codec:v libx264 -preset veryslow-pix_fmt yuv420p -crf 28 -an "Pinguïns".mp4"
OK dus hoe dat werkt? 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 op volgorde met een snelheid van 30 FPS. Dus, pinguïns - 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 vereisten over 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. Zo:
- 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 wil je misschien een stilstaand beeld hebben dat langer dan 33 milliseconden blijft staan. In dit geval is je video meer een diavoorstelling en is het niet hetzelfde. 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 niet echt waarderen.5 FPS-video, zelfs als je je afbeelding elke 2 seconden verandert.
Laten we dat liever doen:
$ ffmpeg -r:v 1/5 -i "Pinguïns - %05d.png" -r:v 30 -codec:v libx264 -preset veryslow-pix_fmt yuv420p -crf 28 -an "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 kunt vinden in ffmpeg.
Neem de tijd om zelf te experimenteren - je bent tenslotte een artiest - en maak een video die miljoenen views op YouTube zal opleveren!