Produzione Video con Linux

Su Linux al momento i migliori software di video edit che esistono sono i seguenti, in ordine di complessità:

  • Losslesscut – Permette di effettuare tagli e unioni di file video mp4 senza ricorrere al render. Quindi è velocissimo: se dovete solo tagliare dei pezzi e/o unirne altri, è il software che fa per voi. Attenzione perché non è preciso nel taglio: nel contenitore mp4 infatti quasi sempre ci sono video codificati con il codificatore h264, che quasi sempre va di pacchetti di 4 fotogrammi alla volta, e quindi c’è un margine d’errore di 4 fotogrammi nei tagli.
  • Openshot – Se non sapete nulla di video edit, è un programma facile e intuitivo con una timeline semplice e colorata e qualche effetto di transizione. Il taglio delle clip si fa direttamente sulla timeline e manca di tantissimo altro, ma per chi è alle prime armi è lo strumento migliore.
  • Kdenlive e Shotcut – Per certi versi equivalenti, fanno a gara a chi supera l’altro in completezza e stabilità. Entrambi sono molto simili come timeline e tutto il resto ai soliti programmoni professionali a pagamento come Premiere e Avid. Al momento in cui scrivo, Kdenlive è migliore: ha il rotoscopio, il tracking e molte altre funzioni pro che ShotCut non ha. Per Kdenlive, tra gli altri, c’è questo canale che è davvero fatto bene: https://www.youtube.com/c/Arkengheist20
  • Blackmagic Design DaVinci Resolve – La versione Lite è gratuita ed è completissima, fa molto più (e meglio) del pacchettone Adobe Premiere + After Effects. Soprattutto perché ha la color correction più professionale che esista sul mercato (viene usato a Hollywood, in praticamente tutti i film) e perché gestisce i video a 10bit (quindi se girate in HDR o in HLG o in un profilo log con spazio colore a 10 bit o più come Rec2020, siete obbligati a usare DaVinci). Per le funzioni basilari è facile e veloce, ma ovviamente per imparare le cose più potenti e complesse ci vogliono mesi di studio. È comunque documentatissimo in rete: esistono corsi gratuiti e tutorial per ogni funzione di Resolve. Ma ha dei difetti: 1) non è libero. È la versione light di un software a pagamento e pieno di brevetti. Se usiamo Linux forse è anche perché cerchiamo di evitare, se ci sono valide alternative, software come questo. 2) richiede risorse enormi per partire. Su Linux, non parte proprio se avete moltissime schede video Intel e quasi tutte le schede video integrate nella CPU. E anche se avete una scheda video aggiuntiva AMD o Nvidia sul vostro PC, Resolve parte solo se la vostra scheda video è abbastanza costosa… E se avete installato i driver proprietari. 3) La potenza e la complessità del programma sono sovradimensionate per la stragrande maggioranza degli utenti, 4) la versione gratuita per Linux accetta solo video codificati in prores o DNxHD. Se montate video per hobby o per lavoro, ma non dovete lavorare su clip a 10 o più bit e alla color grading di un film o di un cortometraggio, artistici, prodotti ufficialmente, in uscita in sala o su una piattaforma nazionale o internazionale di streaming, davvero tutto quello che fanno Kdenlive e Shotcut basta e avanza.
  • Flowblade – Solo per Linux, stava diventando sempre più completo e stabile. Se la gioca con ShotCut, aveva qualcosa in più e qualcosa in meno, non era potente come Kdenlive, ed esistendo solo per Linux rendeva un po’ difficile trovare tutorial o guide in italiano. Poi con la pandemia non ci sono più stati aggiornamenti, fino a luglio di quest’anno, quand’è uscita una nuova release. Provatelo e fatemi sapere.
  • Avidemux, Handbrake, Handbrake CLI, MKV ToolNix GUI, DuME e Shutter Encoder sono degli encoder e/o dei muxer, cioè programmi che trasformano un formato video in un altro e/o permettono di estrarre o unire singoli flussi audio e video e altre informazioni. (Avidemux è un vecchio programma ormai non più sviluppato anche se recentemente un gruppo di nostalgici sta tornando a mantenerlo, quindi se avete a che fare con vecchissimi DivX e roba del genere, o ci siete abituati, esiste ancora)

Per l’installazione di questi programmi, andate sulla mia guida Installazione di Ubuntu 24.04 supercompleta. Una volta installato il necessario, seguite questa guida.

N.B. Questa guida è testata su Ubuntu 24.04.

Produzione video con Linux

DaVinci Resolve

Installazione

Scaricato il file dal sito della Blackmagic Design, occorre scompattarlo, estrarre il file .run e trasformarlo in un pacchetto di installazione deb.
Per fare questa trasformazione, bisogna scaricare questo script:
https://www.danieltufvesson.com/makeresolvedeb
Estrarlo, dargli i permessi di esecuzione, metterlo nella stessa cartella del .run e lanciarlo per esempio così:
./makeresolvedeb_1.7.2_multi.sh DaVinci_Resolve_Studio_19.0.1_Linux.run
dopo parecchio tempo verrà creato un file deb, per esempio:
davinci-resolve-studio_19.0.1-mrd1.7.2_amd64.deb
che si installerà così:
sudo dpkg -i davinci-resolve-studio_19.0.1-mrd1.7.2_amd64.deb
Poi, solo su Ubuntu 24.04, occorre installare alcune librerie e poi rifare dei collegamenti ad alcune librerie vecchie a cui daVinci fa ancora riferimento:
sudo apt install libapr1t64 libaprutil1t64 libxcb-cursor0
for lib in libglib-2.0.so.0 libgio-2.0.so.0 libgmodule-2.0.so.0 libgobject-2.0.so.0 libgstreamer-1.0.so.0 libgstsdp-1.0.so.0 libgstwebrtc-1.0.so.0 libgstrtp-1.0.so.0 libgstpbutils-1.0.so.0 libgstbase-1.0.so.0 libgstvideo-1.0.so.0 libgstaudio-1.0.so.0 libgsttag-1.0.so.0 liborc-0.4.so.0; do sudo ln -sf /usr/lib/x86_64-linux-gnu/$lib /opt/resolve/libs/; done

Ma non è finita… Se usate una scheda Nvidia ibrida, sia su 22 che su 24, ogni volta dovete lanciare Resolve così:
__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia __VK_LAYER_NV_optimus=NVIDIA_only /opt/resolve/bin/resolve
Oppure attraverso Alacarte modificate il collegamento (sotto “Command”) così:
env __NV_PRIME_RENDER_OFFLOAD=1 env __GLX_VENDOR_LIBRARY_NAME=nvidia env __VK_LAYER_NV_optimus=NVIDIA_only /opt/resolve/bin/resolve

Trasformare le clip della telecamera in clip per DaVinci Resolve Free

Portatevi nella cartella che contiene tutte le clip, tasto destro “Apri il terminale qui” e digitate:
rm -Rf per_davinci_clip; mkdir per_davinci_clip; for i in *.*; do ffmpeg -i "$i" -c:v prores_ks -map_metadata 0 -movflags use_metadata_tags -profile:v 3 -qscale:v 9 -acodec pcm_s16le "per_davinci_clip/${i%.*}.mov"; done
Vi creerà una cartella “per_davinci_clip” contenente tutte le clip che Resolve riuscirà ad aprire tranquillamente.

Anche per l’audio, stessa cosa. Mettete tutte le clip audio in una cartella, ci andate dentro col terminale e scrivete:
rm -Rf per_davinci_audio; mkdir per_davinci_audio; for i in *.*; do ffmpeg -i "$i" -c:a pcm_s16le "per_davinci_audio/${i%.*}.wav"; done

Backup da un altro PC

Per ripristinare i progetti che avete da qualche altra parte, è sufficiente aprire il file manager, premere ctrl+h per attivare la visualizzazione dei file nascosti, e salvare questa cartella: .local → share → DaVinciResolve → Resolve Project Library → Resolve Projects → Users → guest → Projects

Kdenlive

Dicevo: prima di tutto seguite la mia guida per Ubuntu 24.04 supercompleta. Mi raccomando installate Kdenlive da flatpak. E installate Flatseal.

Poi dobbiamo configurare Kdenlive.

[Creazione dei profili di codifica per sistemi con schede AMD e Intel – Passaggio facoltativo]

Questa procedura crea due nuovi profili di esportazione che funzionano meglio con schede Intel e AMD, in accelerazione grafica. Non so quanto possano essere utili in quanto il metodo “esportazione lossless + codifica seguendo la pagina di codifica di questo sito” alla fine occupa meno tempo, ma se avete poco spazio su disco e/o il vostro progetto consiste in una o due semplici clip, i due profili aggiuntivi possono venire utili.

Aprite il terminale e digitate:

sudo geany /var/lib/flatpak/app/org.kde.kdenlive/x86_64/stable/active/files/share/kdenlive/export/profiles.xml

Vi si apre il file dei profili. Con le frecce della tastiera scorrete fino in fondo, andate all’inizio dell’ultima riga e battete invio, così create una riga vuota prima dell’ultima riga. Qui ci incollate questo testo:


<group name="Hardware Accelerated (Stefano)" renderer="avformat" type="av">
<profile name="VAAPI + aac" extension="mp4"
qualities="1,28" defaultquality="18"
audiobitrates="320,180" defaultaudiobitrate="192"
args="f=mp4 vaapi_device=/dev/dri/renderD128 vf=’format=nv12,hwupload’ vcodec=h264_vaapi qp=%quality acodec=aac ab=%audiobitrate+'k'"/>
<profile name="VAAPI + wav" extension="mov"
qualities="1,28" defaultquality="18"
args="f=mov vaapi_device=/dev/dri/renderD128 vf=’format=nv12,hwupload’ vcodec=h264_vaapi qp=%quality acodec=pcm_s16le"/>
<profile name="VAAPI H265 + wav" extension="mov"
qualities="4,36" defaultquality="22"
args="f=mov vaapi_device=/dev/dri/renderD128 vf=’format=nv12,hwupload’ vcodec=hevc_vaapi qp=%quality acodec=pcm_s16le"/>
<profile name="NVENC H265 lossless" extension="mkv"
args="acodec=flac f=matroska tune=lossless vcodec=hevc_nvenc"/>
</group>

Salvate e uscite

Quando in Kdenlive farete Progetto → Esporta vi ritroverete una sezione in più con due profili (VAAPI + wav e aac). Se gli sceglierete, vi esporterà il progetto utilizzando la scheda grafica Intel o AMD invece della CPU, e l’audio che vorrete voi (aac compresso ma di ottima qualità, wav senza perdita). Per regolare la qualità perfetta per Youtube, premerete su “Altre opzioni” e toglierete la spunta a “Qualità personalizzata”. Ma lo vedremo dopo, nella sezione sull’esportazione del progetto.

Creazioni dei profili proxy esterni per telecamere e per i proxy generati con questa guida

Se la vostra telecamera supporta i proxy esterni, o se li volete usare creandoli con la pagina di transcodifica di questa guida (che vedrete più sotto), chiudete Kdenlive e aprite questo file:

sudo geany /var/lib/flatpak/app/org.kde.kdenlive/x86_64/stable/active/files/share/kdenlive/externalproxies.rc

Vi si apre un file con le preimpostazioni dei proxy. Andate fino alla fine con le frecce della tastiera, e incollate questo testo (ricordatevi che per incollare nel terminale dovete usare il tasto destro → Incolla oppure usare Ctrl+Shift+V):

Sony ZV-1=../SUB;;S03.MP4;../CLIP;;.MP4
Ste-noGPU (mov -proxy.avi)=../PROXY;;-proxy.avi;../CLIP;;.mov
Ste-GPU (mp4 -proxy.mp4)=../PROXY;;-proxy.mp4;../CLIP;;.mov

Salvate e chiudete.

Ho aggiunto come esempio la telecamera Sony ZV-1 (ma credo che sia uguale per quasi tutte le compatte Sony). Guardando il file dovreste capire come modificarlo per aggiungere la vostra telecamera, ma nel caso chiedete pure che vi cerco di aiutare. Gli altri due profili sono quelli che userete se vorrete utilizzare la mia pagina di transcodifica che vedremo più tardi, nel caso che vogliate generare preventivamente i proxy.

Modifica del generatore automatico di proxy per schede AMD

Se avete una scheda Intel o Nvidia siete a posto, andate al prossimo paragrafo.

Progetto → Impostazioni del progetto → Clip rappresentativa, selezionate “Abilita le clip rappresentative” e premete sull’ultima icona a destra nella riga “Profilo di codifica” (quella a destra dell’icona del cerchietto con la “i” dentro). Selezionate dall’elenco x264-vaapi-scale.

Non ho idea di come si possa proporre agli sviluppatori il mio set di opzioni, che funziona bene su AMD, ma quello che al momento viene messo su Kdenlive non funziona con AMD. Ecco come cambiarlo perché funzioni: premete l’icona della matita, e sostituite il testo con:

-init_hw_device vaapi=foo:/dev/dri/renderD128 -hwaccel vaapi -hwaccel_output_format vaapi -hwaccel_device foo -i -filter_hw_device foo -vf format=nv12|vaapi,hwupload,scale_vaapi=%width:h=-2 -codec:v h264_vaapi -g 1 -bf 0 -qp 26 -acodec ac3 -ab 128k

Premete su “Salva”, poi “Chiudi”, quindi in “Profilo di codifica” scegliete “x264-vaapi-scale” e impostate “Ridimensiona il video (larghezza) della clip rappresentativa su un valore che sia sempre MAGGIORE o uguale alla risoluzione che userete nell’anteprima (se il proxy è piccolo e voi ingrandite la vista, va tutto a scatti). Su uno schermo FullHD io uso al massimo 960pixel quando lavoro nelle schede “Effects” e “Color”.

Transcodifica e Importazione dei video

Prima di usare i video con Kdenlive, Shotcut, Openshot o DaVinci Resolve, ma in generale con qualsiasi programma di video edit, dovete effettuare la transcodifica in un formato che facilita il lavoro al programma di video edit.

In questa pagina vi ho scritto dei comandi che transcodificano tutti i file in una cartella:

La pagina funziona così:

– Guardate se il vostro PC supporta l’accelerazione grafica (Kdenlive → Impostazioni → Esegui la procedura guidata di configurazione)
– Se la supporta, scegliete “con accelerazione grafica” e scegliete se avete una scheda Intel o AMD o Nvidia
– Se non la supporta, o volete usare la versione gratuita di DaVinci Resolve per Linux che accetta solo materiale DNxHD, scegliete DNxHR
– Scegliete eventuali parametri che vi spiego nei paragrafi successivi, copiate il comando, aprite il terminale nella cartella in cui ci sono le clip da transcodificare, incollate, e attendete.

N.B.: Mi raccomando usate la versione di Ffmpeg presente in Ubuntu 22.04. Se usate quella di versioni precedenti nulla funzionerà.

File video

Prima decidete a quanti fotogrammi al secondo sarà il vostro filmato finale. Questo dipende solamente dal numero di fotogrammi al secondo delle clip originali. Se sono tutte a 24, usate 24, se sono tutte a 25 usate 25.

Anche se siete obbligati a girare a 24fps, vi consiglio, se siete in Europa o in Asia (escluso Giappone) di girare comunque a 25fps, altrimenti la prima luce elettrica che filmerete vi creerà un fastidioso effetto di flickering. Rallenterete poi a 24fps in fase di transcodifica, senza che nessuno se ne accorga.

Ovviamente se avete clip originali con un numero di fotogrammi al secondo vario, dovrete trasformare i fotogrammi al secondo di quelle clip nel numero di fotogrammi al secondo del video finale. Questo comporterà o un rallentamento, o una velocizzazione, o una perdita di fluidità delle clip originali. Non c’è algoritmo che tenga: a parte il passaggio da 25 a 24 e viceversa, un problema ci sarà sempre. Cercate di partire da fonti con lo stesso numero di fotogrammi al secondo!

Per farvi capire meglio tutta la problematica, qui vi spiegherò il metodo che uso io per filmare e poi effettuare la transcodifica. Voi adatterete tutto alle vostre esigenze, ovviamente.

Io faccio le riprese tendenzialmente con una Sony ZV-1, impostata 25fps. Odio i frame rate maggiori di 25 perché fanno l’effetto “TV anni ’90” o anche “videogame”: il cinema va a 24fps dal 1930 e quindi preferisco stare lì attorno come fotogrammi al secondo. La Sony va da dio, ha una qualità pazzesca, in genere la imposto in UltraHD 4k, con una guida sul display che mi fa vedere dove si taglia se si vuole un aspetto di forma super cinematografico, stile Cinemascope, a 2,35:1. Nonostante la Sony abbia una sua buona stabilizzazione, preferisco usare un gimbal. Però uso anche il cellulare talvolta – non sempre ho con me la Sony! – ma esso registra solo a 24 (o 30, frame rate che scarto) fotogrammi al secondo. C’è anche l’opzione 25fps, ma non funziona. Inoltre devo registrare in 4k con il cellulare: solo in 4k in effetti il cellulare usa un sensore migliore, e quindi se registro in 4k e poi riduco a FullHD ottengo una qualità infinitamente superiore al registrare direttamente in FullHD. Sia con la Sony che col cellulare poi, se userò la stabilizzazione software, questa farà inevitabilmente un piccolo zoom, sgranando un po’ la risoluzione originale: tanto meglio, così non butterò via troppi dati quando faccio tornare tutto in FullHD. Poi c’è un altro fattore di cui tenere conto: quando uso il cellulare, capita che in condizioni di scarsa illuminazione il frame rate si abbassi, non sia più fisso, diventi variabile. Mi occorre qualcosa che transcodifichi direttamente riportando i fotogrammi al secondo a 24 fissi, e che non perda la sincronia con l’audio. Inoltre voglio che la conversione da un fps all’altro sia fluida: preferisco l’effetto “filmato impercettibilmente velocizzato/rallentato” che l’effetto “filmato poco fluido che salta per l’interpolazione dei fotogrammi”. Quindi, quando uso la Sony, transcodifico tutto dicendogli semplicemente “transcodifica tutto, stabilizza ulteriormente se ce n’è bisogno, e taglia sopra e sotto fino a raggiungere una ratio di 2,40:1”, mentre quando uso il cellulare, registro con OpenCamera con queste impostazioni: 24fps, maschera ratio a 2,40:1, non stabilizzare (la stabilizzazione fatta al computer è migliore). Poi in sede di transcodifica gli dico: stabilizza, taglia sopra e sotto, porta tutto a 24fps rallentando o velocizzando eventualmente e sincronizzando l’audio. Per entrambi i dispositivi può succedere che alcune clip non le voglia tagliare sopra e sotto, e alcune non le voglia stabilizzare, o che mi servano due versioni, una stabilizzata e una no, della stessa clip. Quindi divido le clip in cartelle e poi applico alle cartelle i comandi per la transcodifica. Il progetto poi lo faccio in 4k, ma il render finale lo farò in FullHD: è infatti utile mantenere in fase di montaggio tutta la risoluzione, così si possono aggiungere zoom in post produzione senza perdere di risoluzione.

Quindi prima divido in cartelle le mie clip:
1- quelli che hanno gli fps giusti e non vanno tagliati sopra e sotto o rallentati o velocizzati o stabilizzati
2- quelli che hanno fps variabile o non stabile (tipicamente quelli fatti col cellulare)
3- quelli in generale da stabilizzare
4- quelli in 4k da tagliare sopra e sotto per portarli a una ratio 2,40:1 (tipicamente registrati in 4k con il cellulare con l’applicazione OpenCamera e la maschera 2,40:1).
5- quelli che sono sia da stabilizzare che da tagliare sopra e sotto

Ecco a cosa servono i parametri della pagina di transcodifica.

Rallentare in maniera fluida alcune clip

Se vogliamo rallentare in maniera fluida un video registrato a velocità normale, dobbiamo usare un software che interpola, cioè che visiona una scena e immagina, crea di sana pianta dei fotogrammi intermedi tra un fotogramma e l’altro, cercando di indovinare attraverso complicati algoritmi che individuano zone simili del video e cerca di capire quanto si spostano da un fotogramma all’altro. È una funzione che trovate integrata in DaVinci, ma l’algoritmo usato non è un gran che mentre il suo algoritmo proprietario migliore è basato su una intelligenza artificiale brevettata dalla BlackMagic e quindi è disponibile solo nella versione a pagamento. Quello che possiamo fare noi, è utilizzare l’algoritmo canonico ma aggiungere la nostra intelligenza per ottenere risultati anche migliori di quelli dell’IA. Per far ciò occorre usare un’applicazione libera che si chiama Slowmovideo.

Non importa installarlo, basta scaricare la appimage da qui: https://github.com/slowmoVideo/slowmoVideo/releases

Una volta importate le clip, individuate quelle che volete velocizzare e rallentare, magari estraete solo il pezzo da velocizzare/rallentare (“Estrazione area”, paragrafo precedente) dopodiché aprite slowmoUI.

– File → Nuovo
– Dategli una cartella vuota come cartella di progetto
– Inserite un nome a caso per il progetto
– Come video, dategli quello che avete appena estratto o individuato per essere rallentato/velocizzato.

A questo punto siete in un grafico: il film parte in basso a sinistra e termina dove c’è la riga grossa in mezzo, il tempo sono le ordinate e la velocità sono le ascisse. Quindi se il video rimanesse invariato dovreste tracciare una linea diagonale a 45°. Se la linea tracciata va sotto i 45° il video rallenta, se va tra 45° e 90° si velocizza. Se va in giù invece di andare in su (-45°) il video va al contrario. È tutto ben spiegato qui: Documentazione di SlowmoVideo

In genere basta tracciare una linea a 22,5° (la metà di 45, cioè per due caselle sulla x corrisponde una casella sulla y) per avere l’effetto che va bene nel 90% dei casi, cioè un ralenty con il raddoppio di durata della clip. Per raddrizzare bene le linee a velocità standard potete andarci sopra col tasto destro e impostare velocità doppie o dimezzate. Per cancellare i punti, tasto destro e “cancella”.

Salvate ancora il progetto e andate su File → Render. mettete gli stessi frame al secondo del progetto di Kdenlive su cui state lavorando, mettete “Dimensione piccola” le prime volte per dare un’occhiata a come verrà e quando siete sicuri mettete pure “dimensione originale”, andate su Uscita, selezionate una cartella e mettetegli come nome quello che volete ed estensione .mp4 e come codec mettete mpeg4

Attendente l’elaborazione e guardate il risultato. Per eliminare gli artefatti usate l’editor dal menu e guardate queste istruzioni:
http://www.youtube.com/watch?feature=player_embedded&v=aLtIvEiDD2k

Esportazione

A mio parere è molto meglio esportare il progetto in un file enorme non compresso, o compresso il minimo indispensabile. Questo file, che chiameremo master, rimarrà archiviato per sempre e saranno poi le esigenze del momento a farcelo trasformare in questo o in quel formato utilizzando sempre i migliori programmi che passa il convento.

a) Nel caso che la vostra scheda video non supporti l’accelerazione grafica, esportate sempre così: Senza perdita/HD → Huffyuv + flac
Questo vi produce un file enorme, ma velocemente. Questo file poi è anche molto veloce da elaborare successivamente per creare un master compresso ma senza perdita, un file per Android o Chromecast, un file per Youtube e altro.

b) Nel caso che la vostra scheda supporti l’accelerazione grafica, esportate con il profilo creato in precedenza: vaapi + wav impostando il valore di compressione su 1.
Questo è già un master compresso senza perdita, che potete archiviare. Da qui ricaveremo i file per Android o Chromecast, quelli per Youtube e altro

Ora che avete il vostro file, andate qui:

Ricordatevi che:
– un conto è avere il PC abilitato all’accelerazione grafica, un conto è che il file sia leggibile dalla scheda video in hardware. In sostanza se non avete esportato con l’opzione vaapi, togliete il check a “Il file è decodificabile con una scheda grafica:”.
– Per Youtube va benissimo vaapi con qp=18, larghezza 1920
– YTS è il nome di una crew di pirati chiamata un tempo “YIFY” prima che li sgominassero, famosa per le codifiche straordinariamente di qualità in relazione alla piccolezza dei file, per i video a 1080p e 4k. Non intendo assolutamente promuoverne l’attività illegale, ma ne riporto i parametri per il miglior rapporto qualità/leggerezza

Le mie produzioni con Linux

Sul mio Canale YouTube tutto è realizzato con Kdenlive, o Shotcut, o DaVinci Resolve e altri programmi come Blender, Inkscape eccetera, sempre rigorosamente su Linux.

Qualche trucco

Importare una PNG sequence

Se la clip che dovete importare è fatta con Blender per esempio ed è una sequenza di immagini, spesso di tipo PNG, per importarla come video è semplicissimo, ci sono due modi:

Da dentro Kdenlive
– Tasto destro nell’elenco di clip → Aggiungi clip presentazione
– Immettere il percorso della cartella in cui sono contenute le immagini
– Selezionare il tipo di immagine (jpg, png, ecc.)
– Sotto “Durata dei fotogrammi” impostare: 00:00:00:01

Da ffmpeg
– Aprite il terminale e dirigetevi nella cartella che contiene le immagini, quindi digitate:
ffmpeg -framerate 24/1 -pattern_type glob -i '*.png' -c:v dnxhd -profile:v dnxhr_hqx -pix_fmt yuv422p10le out.mov
dove il 24 è il framerate (i fotogrammi al secondo). Se dovete importare il video in un progetto a 30 fotogrammi al secondo ovviamente scriverete 30/1

Troppa poca RAM? Usiamo i melt script e aumentiamo la swap!

Se renderizzate (“Esporta…”) un filmato in 4k con effetti vari, e il vostro PC non ha 16GB di RAM o una scheda video con almeno 6GB di memoria dedicata, è possibilissimo che il processo di esportazione non vada a buon fine. Per l’edit non avete avuto problemi di RAM perché avete usato i proxy, ma poi alla fine il PC deve fare il render sui filmati originali e lì la poca RAM si sente tutta. Se avete installato poi qualche applicazione che richiede lo sblocco dei limiti dei memoria, come Ardour, e avete modificato i file di configurazione di Linux per sbloccare il limite della memoria, allora è quasi certo che Kdenlive crasherà: il processo di esportazione terminerà con gli errori più disparati e criptici, in genere perché vi finisce la RAM e pure la memoria di swap, e Linux non dovendo più rispettare un limite di RAM continua a chiederne.

Per ovviare a questo problema utilizziamo tre trucchi: il primo è quello ovviamente di rimettere il limite alla RAM, e per quello basta fare a ritroso le istruzioni che avete seguito (non metto in questa guida né come sbloccare/ribloccare la RAM dato che ho visto che comunque anche programmi che protestano molto come Ardour vanno benissimo col limite ancora attivato). Il secondo trucco è di ridurre la RAM usata dalle applicazioni che non fanno render, il terzo è quello di aumentare la memoria virtuale. Vediamo questi ultimi due.

Ridurre la RAM usata dalle altre applicazioni

A fare il render in realtà non è Kdenlive, ma un altro programma, che si chiama Melt e che funziona da riga di comando. L’idea quindi è quella di creare uno script per far fare il render solo a Melt, dopo aver ridotto la RAM di tutte le altre applicazioni.

Quindi finito e salvato il lavoro, dopo aver scelto i parametri di render, nella finestra di esportazione invece di premere su “Esporta in un file”, premete su “Genera uno script”.

Per questo esempio useremo come nome temp:

A questo punto potete chiudere Kdenlive, e anzi addirittura riavviare il computer, così sarete certi che qualsiasi altra applicazione non starà usando della RAM. Poi aprite il file manager e andate dove Kdenlive vi ha salvato il file temp.mlt, che se non avete cambiato la directory di default del progetto in genere è nella vostra Home, nella cartella Video, nella sottocartella kdenlive-renderqueue (eventualmente se non la trovate, cercate kdenlive-renderqueue nella vostra Home nel File Manager). Entrate nella cartella kdenlive-renderqueue, con il tasto destro in una zona vuota della finestra scegliete “Apri nel terminale”, e se avete installato Kdenlive da Flatpak come suggerito in questa guida, avviate il render così:

/var/lib/flatpak/app/org.kde.kdenlive/current/active/files/bin/melt temp.mlt

Ovviamente invece di temp.mlt scrivete il nome che avete dato allo script se non avete seguito l’esempio.
Se non avete installato Kdenlive da Flatpak ma da PPA il comando sarà semplicemente:

melt temp.mlt

(occhio a non lanciare l’ultimo comando se avete installato Kdenlive da Flatpak: funzionerà lo stesso ma starete usando una versione di Melt diversa da quella usata per creare il montaggio, quindi i risultati saranno probabilmente disastrosi).

Se anche in questo modo il processo esce a un certo punto con la laconica scritta “Ucciso”, non vi resta che aumentare le dimensioni del file di swap.

Aumentare le dimensioni del file di swap

Lo swap è una memoria che il computer crede che sia RAM, ma in realtà è un file contenuto nel vostro disco di sistema. Il PC lo usa quando finisce la RAM (e non solo, anzi si può decidere con quanta frequenza usarlo e molti altri parametri, ma è un’altra storia e ci sono molte guide un bel po’ più tecniche che vi spiegano tutto su questo classico dell’informatica). Fino a poco tempo fa invece di un file, Linux usava un’intera partizione, ma poi da quando è stato introdotto il sistema “Systemd” per centralizzare la gestione di Linux, la memoria di swap è diventata un file. Su Ubuntu, questo file è di soli 2GB e nel nostro caso non basta. Dobbiamo fare in modo che le dimensioni del file di swap, sommate a quelle della RAM, diano almeno 16GB, il minimo per trattare i video in 4k. Quindi se la vostra RAM è di 8GB, io proverei subito con una nuova dimensione del file di swap di altri 8GB.

Il problema è che non si può aumentare la dimensione di un file che il vostro sistema sta usando credendo che sia RAM, sarebbe come aprire il PC e togliergli un banco di RAM a PC acceso (non è tecnicamente così, nella realtà, ma l’idea ci si approssima bene), quindi dovremo prima disattivare il file di swap, cancellarlo, crearne uno più grande al suo posto, attivarlo e riavviare il PC.

Per vedere quant’è grande il file di swap, digitate:

sudo swapon --show

Su Ubuntu 22.04 il default è di 2GB. A questo punto disattiviamo il file di swap e lo cancelliamo:

sudo swapoff -a
sudo rm /swapfile

Poi ne creiamo uno uguale ma di 8GB, gli diamo i permessi, diciamo al sistema che è un file di swap e lo attiviamo:

sudo fallocate -l 16G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

Infine, riavviamo.
sudo reboot

Kdenlive crasha al caricamento di un progetto con moltissime clip? Probabilmente c’è la soluzione

Se Kdenlive vi crasha durante il caricamento di un progetto con molte clip e avete già aumentato il file di swap, provate a lanciare Kdenlive da terminale (se avete installato Kdenlive da Flatpak il comando per avviarlo è flatpak run org.kde.kdenlive). Se l’ultima cosa che il terminale scrive prima del crash è “too many open files” c’è una soluzione: aumentare temporaneamente il numero di file apribili contemporaneamente dal sistema.

Di default su Ubuntu il limite è 1024, per aumentarlo a 2048 scrivere nel terminale:
ulimit -n 2048

“ulimit” però è un comando che vive e muore nella shell (finestra del terminale) che aprite, quindi dopo averlo lanciato occorre lanciare Kdenlive nello stesso terminale per fare in modo che Kdenlive parta con quel limite di file aperti. Se crasha ancora con lo stesso messaggio, chiudete il terminale, apritene un altro, provate con 4096, lanciate Kdenlive nello stesso terminale e così via.

 


Guida creata l’8 dicembre 2009
Ultimo aggiornamento: 29 settembre 2024
Licenza: © Stefano Droghetti 2024, Creative Commons BY-NC

18 Risposte a “Produzione Video con Linux”

  1. con xubuntu e con kdenlive non funzionano le transazioni ed effetti. nessuna. Sembrerebbe un problema di grafica. come si puo’ risolvere? il resto funziona inserisco foto e filmati e le unisce ma nemmeno una semplice dissolvenza! forse è xcfe di xubuntu? cosa dovrei scaricare?

    1. Le istruzioni qui sono per Xubuntu e infatti con xfce le transizioni funzionano perfettamente. E comunque il desktop environment è del tutto ininfluente sul render. Inoltre come scritto nella guida le domande tecniche si fanno sul forum di Ubuntu. Hai seguito esattamente la guida? Anche quella per l’installazione di Xubuntu? Stai usando una LTS? Hai installato i restricted extras? Hai convertito i file prima dell’import in Kdenlive? Faccelo sapere sul forum di Ubuntu, sezione Multimedia, così rispondiamo in tanti e può crescere tutta la comunità.

  2. anche io con xubuntu non vanno le transazioni ed effetti, solo dissolvenza al nero e scivola al nero, senza un “merge” con la foto successiva. Penso sia un problema dovuto ai driver proprietari della scheda video nell’ambiente xfce. Ho un ati radeon 128mb

  3. oops sono io che mi do le risposte da solo. cmq ho fatto tutto quello che hai scritto sopra. Ho seguito la guida, sto usando una lts, h oinstallato i restricted areas, ho convertito i file, nada e non riesco a trovare nulla sui forum.

    1. Mah, può darsi che non hai l’accelerazione hardware… Chissà. Rimani l’unico caso che conosco. Dovresti chiedere sul forum di Ubuntu, come scritto nella guida, così qualcuno che ha la tua stessa scheda video può provare a riprodurre il problema.

  4. Salve Stefano, ho bisogno del suo aiuto.
    Da qualche tempo il pc, sopratutto in fase di rendering con kdenlive ma anche con qualche pagina in internet, si blocca e poi riavvia. Ho aggiornato i driver della scheda video (zotac geforce 970), ho montato sistema di raffreddamento cpu piu grande.
    Update regolare senza errori, attualmente ho Ubuntu 18.04 ma succedeva anche con 16.04…
    Grazie per la risposta. Giacomo

  5. ho un problema che mi fa impazzire ho linux 18.04 ho da scaricare dei video avi-dv ed ho bisogno di far visualizzare sul video data ed ora delle registrazione ma tramite linux non ho ancora trovato la soluzione ha dei suggerimenti? grazie

    1. Come puoi leggere in questa guida, per questo genere di assistenza c’è il forum di Ubuntu. A cui sarò lieto di partecipare e a cui rispondo se mi scriverai il link della discussione che aprirai.
      Mettere un watermark è semplicissimo e già leggendo questa guida si può intuire come farlo.

        1. Scusa ma non era molto chiaro quello che volevi… Fammi riassumere: il video ha incorporato come metadati ora e data, e tu vuoi qualcosa che legga questi metadati e li imprima sul video, giusto?
          Nella domanda che hai fatto su Chiedi Ubuntu non hai specificato il formato del video, la telecamera usata e quant’altro, e inoltre non hai scritto chiaramente quello che vuoi (“editare l’ora e la data” non è chiaro) quindi è molto difficile che qualcuno ti risponda. I metadati sono in formato SMTPE code? Kdenlive permette di aggiungere un timecode al video, con l’effetto “testo dinamico”.

          1. Si cerco qualcosa che legga e imprima la data sul video con windows xp avevo dei programmi tipo windows movie maker e qualche altro. La telecemera è relativa sempre con il cavo ieee 1394 per scaricare.
            Sono ancora poco pratico con windows bastava flagare sul programma e non c’erano molte alternative, ora non so se i meta dati che formato hanno, dipende anche con quale programma scarico, di solito in avi-dv( molto pesanti) se non ho gia fatto imprimere la data e libero di decidere del formato.
            Chiedo scusa se sono impreciso sono ancora poco pratico.
            grazie per il consiglio di Kdenlive.

  6. Ciao Stefano, molto interessanti le tue guide, che da tempo leggo. Complimenti per la competenza.
    Questo il mio problema: visto il periodo (coronavirus) mi trovo a fare piccoli video con mezzi di fortuna ed in particolare ho il problema della stabilizzazione perché riprendo a mano libera.
    Ho provato con kdenlive ma non mi pare di vedere miglioramenti; ho provato con ffmpeg e funziona ma con perdita di qualità su contrasto e tonalità.
    Aiuto.
    Fotocamera sony A7, 50fps progressivo, max qualità.
    Converto i file MTS in prores (ffmpeg).

    Grazie

    1. Perdi qualità durante la stabilizzazione o dopo l’esportazione? Vedi i colori falsati già nell’anteprima o solo nel risultato finale? I file prores hanno già il problema dei colori?
      La stabilizzazione non è eccezionale in effetti, è una vecchia libreria che non stabilizza bene come DaVinci Resolve. Però non dovrebbe perdere qualità. Se perdi qualità nella fase di esportazione, in che formato esporti?
      Insomma dovresti capire prima in quale fase noti il cambiamento di colori.

  7. Salve, è grazie per l’articolo. Sono in difficoltà subito all’inizio : vorrei ‘smontare’ e rimontare un file AVI già acquisito (molto grande) e perciò è in un unica clip. Come si può suddividere questo file in diverse scene/clips automaticamente ? Si può importare in KDENLIVE e contemporaneamente suddividerlo in clips? (Questo procedimento lo facevo con altri programmi =Pinnacle, Magic Deluxe=) grazie

  8. Buonasera Stefano, premesso che ho appena installato Xubuntu 24 LTS e che il mio pc è un I3 con 16gb di Ram, ho seguito la tua guida per aumentare il file di swap ed al termine, dopo aver riavviato, mi scrive quello che leggi qui sotto. Ho sbagliato qualcosa? Grazie ancora e complimenti per la tua competenza.

    [sudo] password di carlo:
    NAME TYPE SIZE USED PRIO
    /swap.img file 4G 0B -2
    /swapfile file 16G 0B -3

    P.S. Cosa ne pensi di Ubuntu Pro?

    1. Buonasera! Non ho ancora provato lo swap su 24.04, ma da quello che scrivi probabilmente dalla 22 è cambiato il nome del file di swap, e quindi seguendo le istruzione per la 22 invece di modificare il vecchio file ne hai creato uno nuovo, e quindi te ne ritrovi due. Ti consiglio però, come scritto nella guida, di chiedere sul forum di Ubuntu perché è importante condividere le conoscenze, nello spirito di Linux, senza contare che sul forum trovi persone che ne sanno davvero molto di più 🙂
      Di Ubuntu Pro penso abbastanza bene: è un modo trasparente per finanziarsi, senza ricorrere a brevetti e limitazioni particolari. Certo preferisco sistemi completamente liberi.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.