CodeGym /Corso Java /Python SELF IT /Aggiungere testo, sottotitoli e titoli ai video: personal...

Aggiungere testo, sottotitoli e titoli ai video: personalizzazione di font, colore e posizione

Python SELF IT
Livello 47 , Lezione 4
Disponibile

1. Introduzione al mondo dei testi in MoviePy

Ok, prepariamoci a immergerci nel magico mondo del video editing con l'aggiunta di testo. Immagina di essere un regista e hai il compito di non solo far parlare i personaggi, ma anche di gestire le parole che appaiono sullo schermo. Eh sì, questa è la magia dei sottotitoli e dei titoli!

Prima di iniziare, è importante capire una cosa semplice: MoviePy non è solo un'altra libreria per lavorare con i video. È il tuo designer video personale che può aiutarti a dare un tocco di glamour e informatività al tuo progetto. Hai già imparato le basi del video editing: tagliare, unire, qualche effetto speciale qua e là – ora è il momento di passare al livello successivo.

Perché aggiungere testo?

Il testo nei video gioca un ruolo essenziale – dai messaggi informativi, ai titoli stilizzati e, ovviamente, ai salvifici sottotitoli per chi guarda i tuoi progetti tardi la notte, quando i vicini dormono. MoviePy ti permette di fare tutto questo in modo semplice e con stile.

2. Lavorare con i testi

Iniziamo con gli elementi di testo più semplici. Per questo, MoviePy offre una funzione fantastica chiamata TextClip, che permette di aggiungere testo ai tuoi video.

Creare un TextClip

La configurazione di base di un TextClip appare più o meno così:


from moviepy.editor import VideoFileClip, TextClip, CompositeVideoClip

# Apriamo il file video
video = VideoFileClip("sample_video.mp4")

# Creiamo un TextClip
txt_clip = TextClip("Ciao, mondo!", fontsize=70, color='white')

# Impostiamo la durata del TextClip
txt_clip = txt_clip.set_duration(video.duration)

# Impostiamo la posizione del testo
txt_clip = txt_clip.set_position('bottom')

# Componiamo il video con il testo
video_with_text = CompositeVideoClip([video, txt_clip])

# Salviamo il risultato
video_with_text.write_videofile("output_video_with_text.mp4", fps=24)

Personalizzazione di font e colore

Puoi facilmente personalizzare colore, font e dimensione del testo. Nell'esempio sopra, il colore del testo è bianco, ma puoi scegliere qualsiasi altro colore, ad esempio:


txt_clip = TextClip("Ciao, mondo!", fontsize=70, font='Amiri-bold', color='yellow')

Allo stesso modo, puoi cambiare il font, assicurandoti prima che il font desiderato sia installato sul tuo sistema.

3. Posizionamento del testo sullo schermo

Il posizionamento del testo può essere configurato utilizzando il parametro set_position(), che accetta sia valori testuali (ad esempio, 'center', 'bottom') sia coordinate.

Posizionare il testo in diverse aree


# Testo posizionato nella parte superiore
text_top = TextClip("Testo in alto", fontsize=30, color='blue').set_position(('center', 'top')).set_duration(5)

# Testo posizionato nella parte inferiore
text_bottom = TextClip("Testo in basso", fontsize=30, color='green').set_position(('center', 'bottom')).set_duration(5)

# Testo posizionato tramite coordinate (x=100, y=100)
text_coords = TextClip("Testo posizionato tramite coordinate", fontsize=30, color='red').set_position((100, 100)).set_duration(5)

# Sovrapposizione di tutti i testi al video
final_video = CompositeVideoClip([video, text_top, text_bottom, text_coords])
final_video.write_videofile("video_with_positioned_text.mp4")

Ecco:

  • ('center', 'top'): Posiziona il testo al centro nella parte superiore.
  • ('center', 'bottom'): Posiziona il testo al centro nella parte inferiore.
  • (100, 100): Imposta la posizione del testo in coordinate specifiche.

Aggiornamento dinamico del testo

Non solo aggiungere testo, ma anche animarlo – ecco cosa rende un video davvero accattivante. Proviamo ad animare il testo.


def move_text(t):
    return 10, 100 * t  # Spostamento del testo verso il basso nel tempo

txt_clip = txt_clip.set_pos(move_text).set_duration(3)

4. Lavorare con i sottotitoli

I sottotitoli sono testo sincronizzato con momenti specifici del video. Possiamo caricarli da file o crearli manualmente.

Aggiungere sottotitoli manualmente

Iniziamo con un esempio semplice, in cui aggiungiamo sottotitoli a un video. Per questo, bisogna creare un TextClip e definire il tempo in cui deve apparire:


# Creiamo i sottotitoli
subtitles = [
    {"text": "Ciao, mondo!", "start": 0, "end": 2},
    {"text": "Questo è un sottotitolo!", "start": 2.5, "end": 5}
]

# Componiamo il video con i sottotitoli
sub_clips = [TextClip(sub['text'], fontsize=50, color='white')
             .set_position(('center', 'bottom'))
             .set_start(sub['start'])
             .set_duration(sub['end'] - sub['start'])
             for sub in subtitles]

video_with_subtitles = CompositeVideoClip([video] + sub_clips)

video_with_subtitles.write_videofile("output_video_with_subtitles.mp4", fps=24)

Caricare sottotitoli da un file

Se hai un file di sottotitoli in formato SRT, puoi caricarlo molto più facilmente. MoviePy supporta il caricamento di questi file, semplificando notevolmente il processo.

I sottotitoli sono generalmente creati in formati SRT o VTT, che contengono il testo dei sottotitoli e i marker temporali che indicano quando ciascun segmento di testo deve apparire e scomparire. Ad esempio, ecco come potrebbe apparire un file .srt:


1
00:00:01,000 --> 00:00:04,000
Ciao, questo è un esempio di sottotitolo.

2
00:00:05,000 --> 00:00:08,000
Questo sottotitolo appare un po' più tardi.

Ogni sezione è composta da:

  • Numero della riga del sottotitolo.
  • Intervallo temporale in formato ora:minuto:secondo,millisecondi.
  • Testo del sottotitolo.
1
Опрос
Fondamenti di montaggio video con MoviePy,  47 уровень,  4 лекция
недоступен
Fondamenti di montaggio video con MoviePy
Fondamenti di montaggio video con MoviePy
Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION