Frames extraheren in hogere resolutie dan het projectprofiel

Soms moet u in uw Kdenlive projecten werken met afbeeldingen die uit uw bron-filmmateriaal komen. Wel dat is makkelijk, dankzij de items “Frame extraheren…” en “Frame naar project extraheren…” in het context menu van de clip monitor. Zie ook het hoofdstuk Frame naar project extraheren.

Let op

Kdenlive extraheert op dit moment frames overeenkomstig uw projectinstellingen. Dat betekent: als uw bronmateriaal van een hogere resolutie is dan uw projectinstellingen en zelfs een andere oriëntatie, dan zal het geëxtraheerde frame toch in het project frame formaat zijn. Als consequentie kan de kwaliteit van uw geëxtraheerde frame opmerkelijk verschillen van dezelfde bron filmmateriaal als het naast elkaar in uw project gebruikt worden.

Projectprofiel en profielverschil opnamen

In sommige projecten kunt u bronopnamen tegenkomen die helemaal niet overeenkomen met het projectprofiel Bijvoorbeeld, bij werken met bepaalde schermopnamen, met name als het opgenomen is op tablets en smartphone. De opnamen kunnen zelfs een andere oriëntatie hebben[1].

hires-frames-rawvideo-properties

Om een goed voorbeeld te geven: een opname maken van het scherm van een Android Tablet, laten we zeggen, een Samsung Galaxy Tab S3 geeft een originele opname met een frame-formaat van 1536x2048 pixels met een 2:3 hoogte/breedte-verhouding (vanwege de portret-oriëntatie). Zelf bij een opname in de landschap-oriëntatie, is de 3:2 scherm hoogte/breedte-verhouding niet ideaal. En u wilt waarschijnlijk de opname maken in de originele resolutie om later tijdens de nabewerking niets te verliezen als u de beeldvolgorde wilt omkeren.

Notitie

De framesnelheid getoond in Kdenlive voor dit filmmateriaal (zie schermafdruk) is zelfs niet in de buurt. In feite heeft dit filmmateriaal een zeer sterk variërende framesnelheid (niet te verwarren met een variabele bitrate), en Kdenlive/MLT/ffmpeg lijken hier een grote gok te geven, misschien gebaseerd op het voor het videosignaal opgegeven TV kleurbereik. Maar een 23500/1001 framerate is in gebruik voor NTSC, terwijl dit is opgenomen met PAL kleurenleer op een PAL-apparaat.

Helaas, als u moet werken met een fotoafbeeldingen afkomstig uit dergelijk filmmateriaal, dan bent u wellicht al een vervelende verrassing tegengekomen: Kdenlive’s media engine MLT extraheert fotoafbeeldingen overeenkomstig de project instellingen. Stel dat u een FullHD 1920×1080 pixels 19:6 project heeft. En de film met de schermopname is 1536×2048 pixels met een 2:3 portret hoogte/breedte-verhouding. Dan eindigt u met geëxtraheerde frames met 1920×1080 pixels grootte met een landschap 16:9 hoogte/breedte-verhouding en veel lege ruimte, maar niet de verwachte 1536×2048. Zodat niet alleen de resolutie is veranderd, maar ook de hoogte/breedte-verhouding.

hires-frames-frame-properties

Nauwelijks wat hier gewenst is, zoals onze detail schermafdruk laat zien. als we dit clip monitor schermafdruk met de clip monitor schermafdruk genomen uit de raw footage met elkaar vergelijken, dan zal u de verschillen in hun kwaliteiten opmerken. Het maakt niet uit aan welke u de voorkeur geeft, het probleem is dat ze merkbaar verschillen.

Dit is niet acceptabel als we in hetzelfde project zowel de raw footage als de geëxtraheerde frames nodig hebben, speciaal als ze vlak bij elkaar in de tijdlijn gebruikt worden. Dan zijn de verschillen duidelijk zichtbaar, tenzij u de resulterende video extreem comprimeert zodat het er uitziet als een fake|barbapapa| episode.

Originele resolutie extraheren uit frame

Natuurlijk, nadat alle knippen in de tijdlijn grotendeels vastgelegd zijn met de nodige extra geëxtraheerde frames voor de fotoafbeeldingen, zouden we handmatig (opnieuw-) de frames kunnen extraheren in hun originele resolutie. Dit is natuurlijk niet alleen een ontmoedigende maar ook een fout-gevoelige taak.

Gelukkig, is er een makkelijke route door de extract-frames bash shell script (met dank aan uw blog post auteur TheDiveO) Download het bash script van de extract-frames GitHubGist en maak het uitvoerbaar ($ chmod u+x extract-frames).

Waarschuwing

Een woord van waarschuwing: voordat u los gaat op iets in uw Kdenlive-projectmap dat wijzigingen aanbrengt, controleer eerst dat u eerst reservekopieën heeft van uw project. U bent gewaarschuwd. We nemen geen verantwoordelijkheid voor enig verlies aan gegevens of ander verlies dat u kunt ervaren.

Voer het script nu uit binnen uw projectmap, waar uw de PNG’s van uw frame-afbeeldingen zijn gelokaliseerd samen met de overeenkomende videobestanden waaruit de frames zijn geëxtraheerd. U moet altijd de projectbestandsnaam specificeren om het script uit te voeren:

$ extract-frames myproject.kdenlive

Dat is alles! U zou nu ook moeten zien dat Kdenlive’s project bin meldt dat de afbeeldingsbestanden zijn geüpdate. Dit betekent dat u het script kan opstarten terwijl uw Kdenlive project is geopend.

Wat doet dit script eigenlijk? Het scant eerst voor frame afbeelding PNGs met bestandsnamen in de xxx-f000000.png. Hier is xxx de bestandsnaam (zonder extensie) van het bijbehorende video-bestand waaruit het frame is geëxtraheerd. Op dit moment zoekt het script alleen naar bijbehorende video-bestanden die eindigen op .mp4 of .MP4.

Het f000000 gedeelte identificeert nu het framenummer waaruit de stil frame is geëxtraheerd. Nu komt er de interessante vraag: in welk referentie-systeem zijn deze frames geteld?

Herinnert u zich nog dat we hierboven schreven dat Kdenlive de frames van bin clips extraheert met gebruik van de projectinstellingen? De basis voor het tellen van de geëxtraheerde framenummers is uw project. En dat is de reden waarom u de extract-frames van uw project moet tellen: het script moet de frame rate van het project weten zodat het correct het framenummer kan hanteren. Zonder deze informatie zouden we later de verkeerde frames extraheren in het geval dat de raw footage een andere frame rate heeft en dus dat de frames anders geteld worden in uw project.

Notitie

De frame afbeeldingsbestanden kunnen niet alleen geplaatst worden in de projectmap, maar ook in de submappen. Het script zal geëxtraheerde frame PNG bestanden buiten uw project boomstructuur niet vinden, omdat het uw Kdenlive project niet voor geëxtraheerde frames scant.

Let op

Verander de project frame rate daarna niet meer, omdat anders de frame extract in de war raakt. Dat is omdat de framenummers van de bestandsnamen niet meer overeen komen met de projectinstellingen.

hires-frames-hiresframe-properties

Nadat u het extract-frames script heeft uitgevoerd, zou u in Kdenlive’s clip eigenschappen-paneel moeten zien dat de geëxtraheerde frame PNGs nu de correcte originele frame grootte en aspect ratio hebben. Voor de goede orde: de clip voorbeeld monitor laat nu dezelfde afbeeldingskwaliteit zien als het originele raw filmmateriaal. U bent nu klaar om uw project te renderen.

als u in dit stadium kleurverschillen opmerkt, lees dan onze andere How-to hoofdstuk over Kleurhel: Ffmpeg codering omzetten en BT.601 behouden.

Werkmethodiek in een notendop

Uw werkmethodiek zal op grote lijnen niet veel veranderen, voer gewoon het extract-frames script in uw Kdenlive projectmap uit als u de frame afbeelding-bestanden wilt updaten met de full-resolution afbeeldingen uit uw raw filmmateriaal. U kunt het script op elk moment uitvoeren en opnieuw uitvoeren terwijl u aan uw project werkt.

Maar onthoud dat u de project framerate niet meer kan veranderen terwijl u nog aan uw project werkt, omdat dit de framenummers in de bestandsnamen out of sync brengt.

Notities

Bronnen

De originele tekst was ingediend door de gebruiker TheDiveO bij het nu niet meer werkende kdenlive.org blog. Voor deze documentatie is het gedownload van het |web_archive|, bijgewerkt en aangepast om het met de algemene stijl overeen te laten komen.