Estrazione di fotogrammi a una risoluzione superiore a quella del profilo del progetto

A volte può essere necessario lavorare nei propri progetti Kdenlive con immagini fisse estratte dal filmato sorgente. Ora è facile farlo, grazie alle voci «Estrai fotogramma…» e «Estrai fotogramma nel progetto…», che sono disponibili nel menu contestuale del controllo della clip. Vedi anche il capitolo Estrai fotogramma nel progetto.

Attenzione

Attualmente Kdenlive estrae i fotogrammi in base alle impostazioni del progetto. Ciò significa che, se il filmato sorgente ha una risoluzione superiore a quella impostata per il progetto, e persino un orientamento diverso, il fotogramma estratto avrà il formato del fotogramma del progetto. Di conseguenza, la qualità del fotogramma estratto può differire sensibilmente da quella dello stesso filmato quando viene utilizzato affiancato nel progetto.

Profilo del progetto e filmati con un profilo diverso

In alcuni progetti può capitare di avere filmati sorgente che non corrispondono affatto al profilo del progetto. Per esempio, quando si lavora con alcune registrazioni dello schermo, soprattutto quelle effettuate su tablet e smartphone. Le registrazioni potrebbero persino avere un’orientazione diversa[1].

../../_images/hires-frames-rawvideo-properties.jpeg

Per fare un esempio concreto: registrando lo schermo di un tablet Android, ad esempio un Samsung Galaxy Tab S3, si ottiene un filmato sorgente con una dimensione del fotogramma di 1536×2048 pixel e un rapporto d’aspetto di 2:3 (perché registrato in orientamento verticale); anche registrando in orientamento orizzontale, il rapporto d’aspetto del display, pari a 3:2, non è l’ideale. Inoltre, può essere molto utile registrare alla risoluzione originale, per non perdere informazioni durante le fasi successive di post-produzione, quando potrebbe essere necessario effettuare l’operazione inversa sul filmato sorgente.

Nota

La frequenza dei fotogrammi mostrata da Kdenlive per questo filmato (vedi schermata)* non è neppure lontanamente corretta*. In realtà, questo filmato ha una frequenza dei fotogrammi fortemente variabile (da non confondere con un bitrate variabile) e Kdenlive/MLT/ffmpeg sembrano fare qui delle ipotesi piuttosto azzardate, forse basandosi sull’indicazione dell’intervallo dei valori TV presente nel flusso video. Tuttavia, una frequenza di 23500/1001 fotogrammi al secondo viene utilizzata da, NTSC mentre questo filmato è stato registrato con cromaticità PAL su un dispositivo PAL.

Purtroppo, se è necessario lavorare con immagini fisse estratte da un filmato sorgente di questo tipo, potresti esserti già imbattuto in una brutta sorpresa: il motore multimediale di Kdenlive, MLT, estrae sempre i fotogrammi in base alle impostazioni del progetto. Supponiamo di avere un progetto Full HD da 1920×1080 pixel con rapporto d’aspetto 16:9, ma il filmato della registrazione dello schermo è invece di 1536×2048 pixel, con orientamento verticale e rapporto d’aspetto 2:3. Il risultato sarà un fotogramma estratto di 1920×1080 pixel, con rapporto d’aspetto orizzontale 16:9 e molto spazio trasparente, anziché il formato previsto di 1536×2048. Quindi non cambia soltanto la risoluzione, ma anche il rapporto d’aspetto.

../../_images/hires-frames-frame-properties.jpeg

Difficilmente è quello che si desidera, come mostra nel dettaglio la schermata. Confrontando questa schermata del controllo della clip con quella ottenuta dal filmato sorgente, si noterà che la qualità è diversa. Non importa quale delle due si preferisca: il problema è che la differenza è evidente.

Questo non va bene quando è necessario utilizzare nello stesso progetto sia il filmato sorgente sia i fotogrammi estratti, soprattutto se vengono collocati uno accanto all’altro nella linea temporale. Le differenze sono chiaramente visibili, a meno di comprimere il video a livelli tali da farlo assomigliare più a una puntata tarocca dei Barbapapa.

Estrazione dei fotogrammi alla risoluzione originale

Naturalmente, dopo aver definito quasi tutti i tagli della linea temporale con i fotogrammi estratti necessari come immagini fisse, sarebbe possibile estrarre nuovamente i fotogrammi, manualmente, alla loro risoluzione originale. Ovviamente, non si tratta soltanto di un’operazione laboriosa, ma anche soggetta a errori.

Per fortunata esiste una soluzione semplice: utilizzare lo script della shell Bash extract-frames (realizzato dall’autore del post originale del blog, TheDiveO). Scarica lo script bash (file ZIP), estrailo e rendilo eseguibile ($ chmod u+x extract-frames).

Avvertimento

Una raccomandazione: prima di eseguire qualsiasi operazione che apporti modifiche alla cartella del progetto Kdenlive, assicurati di aver effettuato una copia di sicurezza del progetto. Sei stato avvisato: non ci assumiamo nessuna responsabilità per eventuali perdite di dati o altri danni che potresti subire.

Ora esegui lo script all’interno della directory del progetto, dove si trovano le immagini PNG dei fotogrammi insieme ai corrispondenti file video dai quali sono stati estratti. Per eseguire lo script è sempre necessario specificare il nome del file di progetto Kdenlive:

$ extract-frames myproject.kdenlive

È tutto! A questo punto dovresti vedere anche il contenitore del progetto di Kdenlive rilevare che i file immagine sono stati aggiornati. Puoi quindi eseguire lo script mentre il progetto Kdenlive è aperto.

Cosa fa effettivamente questo script? Per prima cosa cerca le immagini PNG dei fotogrammi con nomi nella forma xxx-f000000.png. Qui xxx è il nome del file (senza estensione) del corrispondente file video dal quale è stato estratto il fotogramma. Al momento, lo script cerca soltanto i corrispondenti file video con estensione .mp4 e .MP4.

La parte f000000 identifica il numero del fotogramma dal quale è stata estratta l’immagine fissa. E questo pone una domanda interessante: rispetto a quale sistema di riferimento vengono numerati questi fotogrammi?

Ricordiamo che Kdenlive estrae i fotogrammi dalle clip del contenitore utilizzando le proprietà del progetto. Quindi, il sistema di riferimento per la numerazione dei fotogrammi estratti è quello del progetto. Ed è proprio per questo che è necessario indicare il progetto a extract-frames: lo script ricava la frequenza dei fotogrammi del progetto per gestire correttamente i numeri dei fotogrammi. Senza questa informazione, in seguito verrebbero estratti i fotogrammi sbagliati nel caso in cui il filmato sorgente avesse una frequenza dei fotogrammi diversa e, di conseguenza, anche una diversa numerazione dei fotogrammi.

Nota

I file immagine dei fotogrammi possono trovarsi non soltanto nella cartella del progetto, ma anche nelle sue sotto-cartella. Lo script non troverà eventuali file PNG estratti che si trovano al di fuori dell’albero della cartella del progetto, perché non analizza il progetto Kdenlive alla ricerca dei fotogrammi estratti.

Attenzione

Non modificare successivamente la frequenza dei fotogrammi del progetto, altrimenti l’estrazione dei fotogrammi non funzionerà più correttamente. I numeri dei fotogrammi contenuti nei nomi dei file, infatti, non corrisponderebbero più alle impostazioni del progetto

../../_images/hires-frames-hiresframe-properties.jpeg

Dopo aver eseguito lo script extract-frames, nel pannello delle proprietà della clip di Kdenlive dovresti vedere che i PNG dei fotogrammi estratti hanno ora la corretta dimensione originale del fotogramma e il corretto rapporto d’aspetto. Per completezza: anche il monitor di anteprima della clip dovrebbe ora mostrare la stessa qualità dell’originale filmato sorgente. A questo punto sei pronto per completare e, ehm, renderizzare il progetto.

Se a questo punto noti delle variazioni di colore, consulta l’altro capitolo della guida, L’inferno dei colori: transcodifica con FFmpeg e conservazione di BT.601.

Flusso di lavoro in poche parole

Nel complesso, il flusso di lavoro non cambia molto: è sufficiente eseguire lo script extract-frames all’interno della cartella del progetto Kdenlive ogni volta che è necessario aggiornare i file immagine dei fotogrammi con immagini alla massima risoluzione originale del filmato sorgente. Puoi eseguire e rieseguire lo script in qualsiasi momento mentre lavori al progetto.

Ricorda però di non modificare la frequenza dei fotogrammi del progetto durante il lavoro, perché ciò renderebbe incoerenti i numeri dei fotogrammi codificati nei nomi dei file.

Note

Fonti

Il testo originale è stato inviato dall’utente TheDiveO all’ormai defunto blog kdenlive.org. Per questo la documentazione è stata estratta da kdenlive.org, aggiornata e adattata per corrispondere allo stile generale.