1. Introducción al mundo del texto en MoviePy
Vamos a sumergirnos en el mágico mundo de la edición de vídeo con la adición de texto. Imagina que eres un director y tienes la tarea de no solo hacer hablar a los personajes, sino también gestionar las palabras que aparecen en pantalla. ¡Sí, sí, la magia de los subtítulos y los créditos!
Antes de empezar, es importante entender una cosa simple: MoviePy no es solo otra biblioteca para trabajar con vídeos. Es tu diseñador de vídeo personal, que puede ayudarte a añadir un poco de glamour e información a tu proyecto. Ya has aprendido los conceptos básicos de edición de vídeo: cortar, juntar, un poco de efectos especiales... ahora es el momento de pasar al siguiente nivel.
¿Por qué añadir texto?
El texto en un vídeo juega un papel clave: mensajes informativos, créditos estilizados y, por supuesto, los salvadores subtítulos para aquellos que ven tus trabajos de noche, cuando los vecinos duermen. MoviePy permite hacer esto de manera cómoda y estilosa.
2. Trabajando con texto
Empecemos con elementos simples de texto. Para esto, MoviePy nos proporciona la maravillosa función TextClip, que permite añadir texto a tus clips.
Creando un clip de texto
La configuración básica de un clip de texto se ve más o menos así:
from moviepy.editor import VideoFileClip, TextClip, CompositeVideoClip
# Abrimos el archivo de vídeo
video = VideoFileClip("sample_video.mp4")
# Creamos el clip de texto
txt_clip = TextClip("Hola, mundo!", fontsize=70, color='white')
# Establecemos la duración del clip de texto
txt_clip = txt_clip.set_duration(video.duration)
# Indicamos la posición del texto
txt_clip = txt_clip.set_position('bottom')
# Componemos el vídeo con el texto
video_with_text = CompositeVideoClip([video, txt_clip])
# Guardamos el resultado
video_with_text.write_videofile("output_video_with_text.mp4", fps=24)
Configuración de fuentes y colores
Puedes fácilmente ajustar el color, la fuente y el tamaño del texto. En el ejemplo anterior, el color del texto es blanco, pero puedes elegir cualquier otro, por ejemplo:
txt_clip = TextClip("Hola, mundo!", fontsize=70, font='Amiri-bold', color='yellow')
De manera similar, puedes cambiar la fuente, asegurándote previamente de que la fuente deseada esté instalada en tu sistema.
3. Posicionando texto en la pantalla
Puedes configurar la posición del texto usando el parámetro set_position(), que acepta valores de texto (por ejemplo, 'center', 'bottom') así como coordenadas.
Colocando texto en diferentes posiciones
# Texto colocado en la parte superior
text_top = TextClip("Texto superior", fontsize=30, color='blue').set_position(('center', 'top')).set_duration(5)
# Texto colocado en la parte inferior
text_bottom = TextClip("Texto inferior", fontsize=30, color='green').set_position(('center', 'bottom')).set_duration(5)
# Texto colocado en coordenadas específicas (x=100, y=100)
text_coords = TextClip("Texto en coordenadas", fontsize=30, color='red').set_position((100, 100)).set_duration(5)
# Combinando todos los textos en el vídeo
final_video = CompositeVideoClip([video, text_top, text_bottom, text_coords])
final_video.write_videofile("video_with_positioned_text.mp4")
Aquí:
('center', 'top'): Coloca el texto en el centro en la parte superior.('center', 'bottom'): Coloca el texto en el centro en la parte inferior.(100, 100): Establece la posición del texto en coordenadas específicas.
Actualizando texto dinámicamente
Agregar texto está bien, pero animarlo lo hace realmente impresionante. Probemos a animar el texto.
def move_text(t):
return 10, 100 * t # Movemos el texto hacia abajo con el tiempo
txt_clip = txt_clip.set_pos(move_text).set_duration(3)
GO TO FULL VERSION