Extrahera bildrutor med högre upplösning än projektprofilen¶
Ibland kan man behöva arbeta i Kdenlive-projekt med stillbilder extraherade från källmaterialet. Nu är det enkelt, tack vare ”Extrahera bildruta…” och ”Extrahera bildruta till projekt…” i den sammanhangsberoende menyn på klippskärmen. Se även kapitlet Extrahera bildruta till projekt.
Uppmärksamma
Kdenlive extraherar för närvarande bildruta enligt projektinställningarna. Det betyder: om källmaterialet råkar ha högre upplösning än projektinställningarna och till och med annan orientering, kommer den extraherade bildrutan att vara i projektets bildruteformat. Följaktligen kan den extraherade bildkvaliteten skilja sig märkbart från samma videofilm när den används sida vid sida i projektet.
Projektprofilen och profilavvikande filmmaterial¶
I vissa projekt kan man stöta på källmaterial som inte alls matchar projektprofilen. Till exempel när man arbetar med vissa skärminspelningar, särskilt när man spelar in på surfplattor och smarta telefoner. Inspelningarna kan till och med ha en annan orientering[1].

För att ge ett konkret exempel: Att spela in skärmen på en Android-surfplatta, säg, en Samsung Galaxy Tab S3 ger råmaterial med en bildstorlek på 1536x2048 bildpunkter med proportion 2:3 (på grund av den stående orienteringen). Även vid inspelning i liggande riktning är proportionen 3:2 inte idealiskt. Och man kan mycket väl vilja spela in i originalupplösning för att inte förlora senare nedströms under efterproduktion när man kan behöva det omvända i råmaterialet.
Observera
Bildhastigheten som visas av Kdenlive för filmmaterialet (se skärmbilden) är inte ens i rätt härad. Faktum är att materialet har en mycket varierande bildhastighet (inte att förväxla med en variabel bithastighet), och Kdenlive/MLT/ffmpeg verkar ge vilda gissningar här, kanske baserat på tv-färgintervallet som anges för videoströmmen. Men en bildhastighet på 23500/1001 används av NTSC, men det har spelats in med PAL kromaticitet på en PAL-enhet.
Olyckligtvis, om man behöver arbeta med stillbilder extraherade från sådant källmaterial, kanske man redan har råkat ut för en otäck överraskning: Kdenlives mediagränssnitt MLT extraherar alltid stillbilder enligt projektinställningarna. Antag att man har ett full-HD 1920x1080 bildpunkters 19:6-projekt. Och skärmbilden är 1536x2048 bildpunkter med 2:3 stående proportion. Då får du extraherade bildrutor i storleken 1920x1080 pixlar med ett liggande proportion på 16:9 och mycket transparent utrymme, men inte de förväntade 1536x2048. Så inte bara upplösningen ändrades, utan även bildförhållandet.

Knappast vad man vill här, som vår detaljerade skärmbild visar. När du jämför den här skärmbilden för klippskärmen med den som tagits från råmaterialet, märker man deras olika kvaliteter. Det spelar ingen roll vilken man föredrar, problemet är att de skiljer sig märkbart.
Det är en omöjlighet när vi behöver använda både råmaterialet och de extraherade bildrutorna i samma projekt, särskilt intill varandra på tidslinjen. Skillnaderna är tydligt synliga, om man inte komprimerar den resulterande videon till det yttersta, så att den ser ut som en påhittad episod av Barbapapa.
Bildextrahering med originalupplösning¶
Naturligtvis, efter att alla tidslinjeklipp till största delen har lösts med de extraherade bildrutorna som krävs för stillbilder, kunde vi sedan manuellt (åter-) extrahera bildrutorna med deras ursprungliga upplösning. Naturligtvis är det inte bara en skrämmande utan också felbenägen uppgift.
Lyckligtvis finns det ett enkelt sätt med hjälp av bash-skalskriptet extract-frames (med benäget tillstånd av den ursprungliga blogginläggsförfattaren TheDiveO). Ladda ner bash-skriptet
(zip-fil), packa upp det och gör det körbart ($ chmod u+x extrakt-frames
).
Varning
Ett varningens ord: innan du släpper lös något i Kdenlives projektkatalog som gör ändringar, se till att projektet först har säkerhetskopierats. Du har blivit varnad. Vi tar inget ansvar för eventuella dataförluster eller andra problem som du kan uppleva.
Kör nu skriptet i projektkatalogen, där PNG-filer av bildrutor finns tillsammans med motsvarande videofiler som bildrutorna har extraherats från. Man måste alltid ange Kdenlive-projektets filnamn för att köra skriptet:
$ extract-frames myproject.kdenlive
Det är allt som behövs! Man bör nu också titta i Kdenlives projektkorg och märka att bildfilerna har uppdaterats. Således kan man köra skriptet medan Kdenlive-projekt är öppet.
Vad gör skriptet egentligen? Det söker först efter PNG-filer av bildrutor med filnamn på formen xxx-f000000.png
. Här är xxx filnamnet (utan filändelse) för motsvarande videofil som bildrutan har extraherats från. För närvarande letar skriptet bara efter motsvarande videofiler som slutar på .mp4
och .MP4
.
Delen f000000
identifierar bildrutan som stillbilden har extraherats från. Nu ställer det en intressant fråga: i vilket referenssystem räknades bildrutorna?
Kom ihåg att vi skrev ovan att Kdenlive extraherar bildrutor från korgklipp med hjälp av projektegenskaperna? Så referenssystemet för att räkna extraherade bildnummer är projektet. Och det är anledningen till att man måste informera extract-frames
om projektet: skriptet tar reda på projektets bildhastighet för att hantera bildnummer korrekt. Utan det skulle vi senare extrahera fel bildrutor om råmaterialet har en annan bildhastighet, och därmed bildräkning, från projektet.
Observera
Bildfilerna kan inte bara finnas i projektkatalogen utan även i underkataloger. Skriptet hittar inte några extraherade PNG-filer av bildrutor utanför projektkatalogens träd, eftersom det inte söker igenom Kdenlive-projekt efter extraherade bildrutor.
Uppmärksamma
Ändra inte projektets bildhastigheten efteråt, annars blir bildextraktionen förstörd. Det beror på att ramnumren från filnamnen inte längre matchar projektinställningarna.

Efter skriptet extract-frames
har körts, ska det synas i Kdenlives klippegenskapsruta att de extraherade PNG-filerna med bildrutor nu har rätt originalbildstorlek och bildförhållande. Bara för fullständighetens skull: skärmen för förhandsgranskning av klipp visar nu samma bildkvalitet som det ursprungliga råmaterialet gör. Så du är redo att slutföra och banda, alltså, återge projektet.
Om man råkar se färgförändringar i detta skede, titta på vårt andra instruktionskapitel om Färghelvete: Omkoda och bevara BT.601 med ffmpeg.
Arbetsflödet i ett nötskal¶
Det övergripande arbetsflöde förändras inte mycket, bara lägg till att köra skriptet extract-frames
i Kdenlives projektkatalog så snart bildfilerna måste uppdateras med bilder i full upplösning från råmaterialet. Det går att köra och köra om skriptet när som helst medan man arbetar med projektet.
Men kom ihåg att inte ändra projektets bildhastigheten när man arbetar med projektet, eftersom det gör att bildnumren som kodas i filnamnen blir osynkroniserade.
Anmärkningar
- Källor
Den ursprungliga texten skickades in av användaren TheDiveO till den nu nedlagda bloggen kdenlive.org. För den här dokumentation har den hämtats från kdenlive.org, uppdaterats och anpassats för att motsvara den övergripande stilen.