Articolo n.203: ffmpeg5.php
Sito: chifelio
Tema: 27 - Tecniche di programmazione informatica
Data: 2024-01-11
_______________________________
"Giornalismo è
diffondere ciò che qualcuno non vuole che si sappia. Il resto è propaganda."
Horacio Verbitzky
La proprietà letteraria degli scritti riportati in questo sito è di Claudio Chicco,
Via Roma, 30
PAESANA (CN), il quale ne permette la la citazione di brani, citando fonte
ed autore e NON ne permette il SUNTO, se non in una versione concordata con l'autore.
Per questo fine usare l'apposito form "
contatti".
Gli articoli pubblicati nel sito possono essere non attendibili. Non mi assumo alcuna responsabilità per contenuto
degli articoli di altri autori. La responsabilità dei testi e del loro contenuto è unicamente dei rispettivi autori.
Eventuali commenti postati sono a responsabilità di
chi li ha postati.
Questo sito NON viene aggiornato con regolarità periodica,
per cui NON può essere considerato una testata giornalistica di informazione. Quello che viene espresso
dall'autore
è libera opinione dello stesso autore, garantita come diritto dall'Art.21 della Costituzione Italiana.
ontinuo con la serie di esposizione dell'uso di comandi ffmpeg per l'elaborazione
dei video, in seguito alle ultime esperienze. In particolare, l'ultimo mio video che vedete a
destra, formato da una serie infinita di frammenti, rimaneggiati in eccesso in seguito ad una
serie di "prove ed errori", video venuto malissimo a causa di questa eccessiva
manipolazione, mi ha comunque fatto fare una grande esperienza che mi sono appuntato e vado
a riferirVi.
Il video in questione ha risentito nell'audio rovinato
da fruscii per l'eccesso di manipolazioni, trasformazioni e questo ci porta ad una prima regola
ferrea per la manipolazione dei video: conservare sempre, in una cartella a parte, i
video originali. Male che proceda, si potrà ripartire dal frammento originale integro!
Lo dico perché, soprattutto nei casi in cui i frammenti da lavorare
sono molti e le operazioni da fare sono tante, alla fine nella cartella di lavoro si ammucchiano
tantissimi files, ognuno frutto e figlio di una manipolazione, che si è quasi obbligati a
eliminare quelli che sono i passaggi intermedi, pena l'affollamento nella cartella di infiniti
video, che alla lunga non si sa più quale video si debba usare come input per fare una determinata
trasformazione.
Come esordio di questo articolo, vi metto nuovamente questo
comando (già inserito come incipit del primo articolo), comando che restituisce
un errore, ma può essere utile per conoscere i dati del file di input, che sono fondamentali
per le manipolazioni più complesse, che intendiamo fare su quel video. Per esempio
nel ritaglio (crop) del video: se immettiamo valori che vanno al di fuori delle dimensioni di
quel video, il filter ci darà errore e terminerà senza eseguire il lavoro di ritaglio
che intendevamo fare.
Quello che può esserci utile, lo rileviamo nel riquadro inferiore che contiene, nella prima riga
(evidenziato) il comando
immesso e nelle righe successive l'output della console, sono, per esempio i dati
dimensionali del video, ricavati dalla 12° riga: "1920x1080 [SAR 1:1 DAR 16:9], 30 fps"
anch'essa evidenziata.
Dunque dicevo che, facendo il primo video, ho fatto parecchie
manipolazioni, ma riporto nel secondo video soltanto l'esperienza della questione sottotitoli.
Oltre ovviamente alcuni consigli generali dettati dalla pratica.
Siccome in rete si trova praticamente di tutto ed io mi ero fissato di fare i sottotitoli colorati,
avevo già tentato in passato, senza risultato, ma il risultato negativo non era dovuto alla
mia incapacità di lavorare sul codice, ma ad un errore interno alla versione di ffmpeg
che ho installato sul mio sistema. In pratica mi ero amminchiato con il colore rosso
e la corretta immissione esadecimale di esso (#FF0000), mi dava il blu, il giallo dava
ciano, il ciano dava nero e così via. Il blu (#0000FF) finalmente mi dava il colore
rosso.
Se non ci si lascia scoraggiare da questi piccoli inconvenienti,
a lungo andare, con la pratica ed un poco di passione per quello che si sta facendo (come sul
sentiero di guerra è il modo di fare le cose per bene, nel senso inteso dai nativi
americani), con ffmpeg si riesce a fare praticamente tutto quello che si può fare con i video.
Sottotitoli
Ho già spiegato nel primo articolo come compilare un file.srt, per i sottotitoli al momento desiderato nel video. Ora invece voglio concentrarmi su come utilizzare il comando "force_style, per modificare lo stile di tutti i sottotitoli del video. Per sottotitoli con parole singole di colore diverso, utilizzeremo in seguito il file.ass che andremo a modificare in maniera opportuna, dopo averlo generato dal nostro file.srt, sempre come già spiegato in quel primo articolo.
Nel comando si è impostato
il colore blu, che dà sottotitoli in carattere rosso, per tutto il video.
Ora invece andremo a vedere come inserire colori diversi a singole parole
o frasi, come potete vedere dal secondo breve video sopra, quello da Ponta Sëlassa (2036),
nel quale potete ammirare un bellissimo panorama, dal maestoso Viso fino a molto lontano
verso sud.
Per procedere a fare questo bisognerà analizzare un
semplice file.ass, che si può generare sempre dal nostro file.srt, sempre
con il comando ffmpeg, come mostrato nel primo articolo.
Di seguito il file.ass
utilizzato per il video sunnominato.
Come potete vedere,
nell'ottava linea del file.ass evidenziata, sono definiti gli stili generali di default,
che sono validi per tutti i sottotitoli del video. La linea appena superiore a questa, evidenzia,
nello stesso ordine, separato da virgole, a che cosa si riferiscono i valori nella riga successiva.
Sapendo questo, diviene possibile modificare i valori su questa linea per avere dei sottotitoli
personalizzati per tutto il video. Modificando il Fontname potete scegliere un carattere
Serif al posto di Arial. Il terzo valore, Fontsize è intuitivo che
riguarda la grandezza dei caratteri. Il quarto valore PrimaryColour è quello del colore
del Font e così via, se la Vostra esigenza è quella di avere tutti i sottotitoli
personalizzati, ma tutti uguali. Una volta generato il file.ass create i Vostri sottotili
come spiegato nell'altro
articolo, sostituendo semplicemente nel comando, il nome del file.srt
con il nome del file.ass.
Volendo invece, come anticipato,
voler agire sui colori di singole parole o lettere, ci dobbiamo concentrare sulle linee del
file.ass che iniziano con Dialogue un poco più sotto, la prima delle quali
è evidenziata e che son le linee che riportano i sottotitoli veri e propri.
Se ci spostiamo sulla stessa linea troveremo delle istruzioni racchiuse
tra parentesi graffe del tipo {\c&HFFFF00}, che, se andiamo ad analizzarle, scimmiottano quelle che
sono, nello stesso linguaggio del file.ass, quelle che sono le istruzioni per bold oppure
underline, rispettivamente {\b1} e {\u1} e che hanno come terminazione rispettibamente
{\b0} e {\b0}. Allo stesso modo, la terminazione della istruzione colore sarà {\c},
che ho evidenziato nella prima linea dei sottotitoli.
Data la complessità della struttura dei files.ass, è assolutamente impensabile
editarli ex novo a mano. Mentre invece è assai facile comprendere la
struttura dei files.srt, quindi è consigliabile partire da questi ultimi, qualunque
sia il nostro progetto sottotitoli.
Considerazioni generali
Tutta la faccenda della manipolazione dei video, come si evince da questo articolo e dai precedenti,
è assai complessa, quindi giova prendere appunti sui comandi che sperimentate. È
oltremodo difficile venire a capo, per esempio, dell'invertimento dei colori evidenziato, se non per
puro caso, come successo a me. Spesso ci si intestardisce su determinate cose e questo causa
insuccesso (voglio i sottotitoli rossi!). Sperimentare è una specie di arte che richiede
pazienza unita ad ostinazione, bilanciate con la corretta lucidità ed apertura mentale.
Questo è vero sia nella programmazione di qualsivoglia tipo (web, video o di
qualunque altro tipo), sia nella vita. Forse più utile che lanciare comandi dalla
console, dei quali nel tempo, non rimarrà traccia in memoria ne' altrove,
credo sarebbe meglio fare dei piccoli script.sh bash, da salvare con nomi diversi per
ogni tentativo e variazione minima. Alla lontana potremo eliminare quelli che non danno risultati
e tenere buoni, anche a distanza di lungo tempo, se compilati con annotazioni efficaci, quelli
che conducono da qualche parte.
Precedenti articoli su ffmpeg:
ffmpeg4.php
ffmpeg3.php
ffmpeg.php
Vi saluto e vi abbraccio tutte e tutti
Se l'articolo (e il video) Vi è
piaciuto e Vi è stato utile, mettete dei commenti, qui sotto e sotto il video, e divulgate.
Vi ringrazio.
Claudio Chicco
Articolo n.203: ffmpeg5.php
Sito: chifelio
Tema: 27 - Tecniche di programmazione informatica
Data: 2024-01-11
_______________________________
Dopo aver premuto "INVIO", verrai reindirizzato ad una pagina
nella quale devi postare le lettere delle immagini che appaiono,
per dimostrare di non essere un robot.
Se tutto va a buon fine, verrai nuovamente reindirizzato
alla pagina che hai commentato, con in fondo,
dopo questo "form",
il tuo nuovo commento.
Tengo molto ad avere commenti e riscontri,
anche, soprattutto, da chi non concorda con quanto scrivo.
Il fatto di dover inserire la mail
non ti spaventi: NON SARAI PERSEGUITATO DA NESSUNA "MAILING LIST", ne' tantomeno, la tua mail sarà
venduta a scopo commerciale ne' pubblicata.
Ricordo brevemente le regole base di qualsiasi blog:
Niente insulti e volgarità (verranno cancellati commenti di questo tipo!).
Home page
Scrivere è esternare il proprio pensiero agli altri, al di là del tempo e dello spazio che ci separano.
Il pensiero non è un prodotto finito, ma un processo in divenire, sempre incompiuto e perfettibile.
Scrivere è un contributo a migliorare questo nostro Mondo.
Pensare un mondo migliore è un atto d'amore verso gli altri.
Pensare in tanti un mondo migliore è già un 50% della sua realizzazione.
Giovanni
La proprietà letteraria degli scritti riportati in questo sito è di Claudio Chicco,
Via Roma, 30
PAESANA (CN), il quale ne permette la la citazione di brani, citando fonte
ed autore e NON ne permette il SUNTO, se non in una versione concordata con l'autore.
Per questo fine usare l'apposito form "
contatti".
Gli articoli pubblicati nel sito possono essere non attendibili. Non mi assumo alcuna responsabilità per contenuto
degli articoli di altri autori. La responsabilità dei testi e del loro contenuto è unicamente dei rispettivi autori.
Eventuali commenti postati sono a responsabilità di
chi li ha postati.
Questo sito NON viene aggiornato con regolarità periodica,
per cui NON può essere considerato una testata giornalistica di informazione. Quello che viene espresso
dall'autore
è libera opinione dello stesso autore, garantita come diritto dall'Art.21 della Costituzione Italiana.