CodeGym /Cours /Python SELF FR /Ajouter du texte, des sous-titres et des génériques dans ...

Ajouter du texte, des sous-titres et des génériques dans la vidéo : configurer les polices, les couleurs et les positions

Python SELF FR
Niveau 47 , Leçon 4
Disponible

1. Introduction au monde du texte avec MoviePy

Alors, prépare-toi à plonger dans le monde magique de l'édition vidéo en ajoutant du texte. Imagine que tu es réalisateur, et ta mission, ce n'est pas seulement de faire parler les personnages, mais aussi de contrôler les mots qui s'affichent à l'écran. Oui, c'est bien ça, la magie des sous-titres et des génériques !

Avant de commencer, il est important de comprendre une chose simple : MoviePy n'est pas juste une autre bibliothèque pour manipuler des vidéos. C'est ton designer vidéo personnel, prêt à apporter une touche de glamour et d'informativité à ton projet. Tu maîtrises déjà les bases de l'édition vidéo : couper, assembler, un soupçon d'effets spéciaux — passons au niveau supérieur.

Pourquoi ajouter du texte ?

Le texte dans une vidéo joue un rôle clé — ce sont des messages d'information, des génériques stylés, et surtout des sous-titres salvateurs pour ceux qui regardent ton travail tard dans la nuit, quand leurs voisins dorment. MoviePy permet de faire cela de manière élégante et pratique.

2. Travailler avec le texte

Commençons avec des éléments textuels simples. Pour cela, MoviePy offre une super fonction TextClip, qui permet d'ajouter du texte à tes clips.

Créer un clip textuel

La configuration de base d'un clip textuel ressemble à ceci :


from moviepy.editor import VideoFileClip, TextClip, CompositeVideoClip

# On ouvre le fichier vidéo
video = VideoFileClip("sample_video.mp4")

# On crée un clip textuel
txt_clip = TextClip("Salut, monde !", fontsize=70, color='white')

# On définit la durée du clip textuel
txt_clip = txt_clip.set_duration(video.duration)

# On règle la position du texte
txt_clip = txt_clip.set_position('bottom')

# On compose la vidéo avec le texte
video_with_text = CompositeVideoClip([video, txt_clip])

# On sauvegarde le résultat
video_with_text.write_videofile("output_video_with_text.mp4", fps=24)

Configurer les polices et la couleur

Tu peux facilement personnaliser la couleur, la police et la taille du texte. Dans l'exemple ci-dessus, la couleur du texte est blanche, mais tu peux choisir une autre couleur, par exemple :


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

De même, tu peux changer la police, à condition que la police requise soit installée sur ton système.

3. Positionner le texte à l'écran

Le positionnement du texte peut être configuré à l'aide de la méthode set_position(), qui accepte des valeurs textuelles (par exemple, 'center', 'bottom'), ainsi que des coordonnées.

Placer le texte à différentes positions


# Texte placé en haut
text_top = TextClip("Texte en haut", fontsize=30, color='blue').set_position(('center', 'top')).set_duration(5)

# Texte placé en bas
text_bottom = TextClip("Texte en bas", fontsize=30, color='green').set_position(('center', 'bottom')).set_duration(5)

# Texte placé aux coordonnées (x=100, y=100)
text_coords = TextClip("Texte aux coordonnées", fontsize=30, color='red').set_position((100, 100)).set_duration(5)

# Superposition de tous les textes sur la vidéo
final_video = CompositeVideoClip([video, text_top, text_bottom, text_coords])
final_video.write_videofile("video_with_positioned_text.mp4")

Voici :

  • ('center', 'top'): Place le texte au centre en haut.
  • ('center', 'bottom'): Place le texte au centre en bas.
  • (100, 100): Définit la position du texte avec des coordonnées spécifiques.

Texte dynamique

Ne te contente pas d'ajouter du texte, fais-le bouger — c'est ce qui rend la vidéo vraiment captivante. Essayons d'animer le texte.


def move_text(t):
    return 10, 100 * t  # Faire descendre le texte avec le temps

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

4. Travailler avec les sous-titres

Les sous-titres sont du texte synchronisé avec des moments spécifiques de la vidéo. On peut les importer depuis des fichiers ou les créer manuellement.

Ajouter des sous-titres manuellement

Commençons avec un exemple simple où nous ajoutons des sous-titres à une vidéo. Il faut créer un clip textuel et définir le moment de son apparition :


# Créons des sous-titres
subtitles = [
    {"text": "Salut, monde !", "start": 0, "end": 2},
    {"text": "Ceci est un sous-titre !", "start": 2.5, "end": 5}
]

# Composons la vidéo avec les sous-titres
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)

Importer des sous-titres depuis un fichier

Si tu as un fichier de sous-titres au format SRT, tu peux facilement les importer. MoviePy permet d'importer ces fichiers facilement, rendant le processus beaucoup plus simple.

Les sous-titres sont généralement créés aux formats SRT ou VTT, qui contiennent le texte des sous-titres et les intervalles de temps indiquant quand chaque segment de texte doit apparaître et disparaître. Par exemple, voici à quoi peut ressembler un fichier .srt :


1
00:00:01,000 --> 00:00:04,000
Salut, ceci est un exemple de sous-titre.

2
00:00:05,000 --> 00:00:08,000
Ce sous-titre apparaît un peu plus tard.

Chaque section contient :

  • Un numéro de ligne du sous-titre.
  • Un intervalle de temps au format heure:minute:seconde,millisecondes.
  • Le texte du sous-titre.

Installer les bibliothèques nécessaires

MoviePy ne supporte pas directement le chargement des fichiers .srt, mais c'est possible en utilisant la bibliothèque pysrt. Elle permet de charger et de traiter les fichiers .srt, qui peuvent ensuite être convertis en clips textuels pour être ajoutés à la vidéo.

Installe les bibliothèques nécessaires :

Bash

pip install moviepy pysrt

``` *(Translation continues throughout the rest of the document, ensuring all text mirrors the original structure.)*
1
Опрос
Notions de base du montage vidéo avec MoviePy,  47 уровень,  4 лекция
недоступен
Notions de base du montage vidéo avec MoviePy
Notions de base du montage vidéo avec MoviePy
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION