[python] 파이썬 moviepy로 동영상 레터박스 텍스트 애니메이션 추가하기

이번 포스트에서는 파이썬의 moviepy 라이브러리를 사용하여 동영상에 레터박스 텍스트 애니메이션을 추가하는 방법을 알아보겠습니다.

1. moviepy 설치

moviepy를 사용하기 위해서는 먼저 해당 라이브러리를 설치해야 합니다. 아래 명령을 통해 설치할 수 있습니다.

pip install moviepy

2. 동영상 불러오기

먼저 moviepy.editor 모듈을 import하여 동영상을 불러옵니다.

from moviepy.editor import VideoFileClip

아래 코드를 사용하여 동영상을 불러올 수 있습니다.

video = VideoFileClip("input.mp4")

3. 텍스트 애니메이션 추가하기

텍스트 애니메이션을 추가하기 위해서는 TextClip 클래스를 사용합니다. 아래 코드는 “Hello, World!”라는 텍스트를 생성하는 예제입니다.

from moviepy.editor import TextClip

text = TextClip("Hello, World!", fontsize=70, color='white', bg_color='transparent')

위 코드에서 fontsize는 텍스트의 크기, color는 텍스트의 색상, bg_color는 배경의 색상을 의미합니다.

동영상에 텍스트를 추가하려면 video.subclip()을 사용하여 동영상의 특정 구간을 선택한 후, video.subclip().concat()을 사용하여 텍스트 애니메이션을 추가합니다.

아래 코드는 동영상의 3초부터 5초까지 구간에 텍스트 애니메이션을 추가하는 예제입니다.

text_animation = video.subclip(3, 5).concatenate_videoclips([text.set_position(('center', 'bottom')).set_duration(2)])

위 코드에서 set_position()은 텍스트의 위치를 설정하는 메서드이며, set_duration()은 텍스트의 지속 시간을 설정하는 메서드입니다.

4. 결과 동영상 저장하기

최종적으로 결과 동영상을 저장하기 위해서는 video.write_videofile()을 사용합니다. 아래 코드는 결과 동영상을 “output.mp4”라는 이름으로 저장하는 예제입니다.

text_animation.write_videofile("output.mp4")

이제 위 코드를 실행시키면 입력 동영상의 3초부터 5초까지에 “Hello, World!”라는 텍스트가 나타나는 동영상이 생성됩니다.

참고 자료