[python] 파이썬 moviepy로 동영상 밝기 조정하면서 페이드 인/아웃 효과 적용하기

이번 글에서는 파이썬의 moviepy 라이브러리를 사용하여 동영상의 밝기를 조정하면서 페이드 인과 페이드 아웃 효과를 적용하는 방법에 대해 알아보겠습니다.

moviepy란?

moviepy는 파이썬으로 동영상 편집을 할 수 있는 라이브러리입니다. 영상의 재생, 자르기, 회전, 크기 조절 등 다양한 작업을 할 수 있습니다.

설치하기

moviepy를 설치하기 위해서는 pip를 사용할 수 있습니다. 다음 명령어를 터미널에 입력해주세요.

pip install moviepy

밝기 조정하기

먼저, moviepy를 사용하여 동영상의 밝기를 조정하는 방법부터 알아보겠습니다. 다음은 간단한 예제 코드입니다.

from moviepy.editor import VideoFileClip

# 동영상 파일 경로
video_path = "input.mp4"

# 비디오 클립 가져오기
video_clip = VideoFileClip(video_path)

# 밝기 조정 (0.5 : 반전, 1 : 원본, 2 : 2배 밝게)
brightness_adj_clip = video_clip.fl_image(lambda image: image.brighten(2))

# 조정된 비디오 클립을 파일로 저장
brightness_adj_clip.write_videofile("output.mp4")

위 코드에서는 VideoFileClip을 사용하여 동영상 파일을 가져옵니다. 그리고 fl_image 메서드를 사용하여 이미지의 밝기를 조정합니다. brighten 메서드는 입력된 값에 따라 밝기를 조정하는데, 1보다 작은 값은 반전, 1은 원본, 2보다 큰 값은 2배 밝게 조정됩니다.

마지막으로, 조정된 비디오 클립을 새로운 파일로 저장하는데, write_videofile 메서드를 사용합니다.

페이드 인/아웃 효과 적용하기

이제 페이드 인과 페이드 아웃 효과를 적용하는 방법을 알아보겠습니다. 다음은 예제 코드입니다.

from moviepy.editor import VideoFileClip, concatenate_videoclips

# 동영상 파일 경로
video_path = "input.mp4"

# 비디오 클립 가져오기
video_clip = VideoFileClip(video_path)

# 페이드 인 효과
fade_in_duration = 1  # 페이드 인 지속 시간 (초)
fade_in_clip = video_clip.fadein(fade_in_duration)

# 페이드 아웃 효과
fade_out_duration = 2  # 페이드 아웃 지속 시간 (초)
fade_out_clip = video_clip.fadeout(fade_out_duration)

# 페이드 인과 페이드 아웃이 적용된 비디오 클립
final_clip = concatenate_videoclips([fade_in_clip, fade_out_clip])

# 최종 비디오 클립을 파일로 저장
final_clip.write_videofile("output.mp4")

위 코드에서는 fadein 메서드와 fadeout 메서드를 사용하여 페이드 인과 페이드 아웃 효과를 각각 적용합니다. fadeinfadeout 메서드의 인자로는 효과가 지속되는 시간을 초 단위로 입력합니다.

그리고 concatenate_videoclips 함수를 사용하여 페이드 인과 페이드 아웃이 적용된 비디오 클립들을 하나로 합칩니다.

최종적으로 합쳐진 비디오 클립은 write_videofile 메서드를 사용하여 파일로 저장합니다.

마무리

위에서 설명한 방법들을 조합하여 동영상의 밝기 조정과 페이드 인/아웃 효과를 동시에 적용할 수도 있습니다. moviepy는 다양한 기능을 제공하므로, 더 많은 작업을 해보고 싶다면 공식 문서를 참고하시기 바랍니다.

이상으로 파이썬 moviepy를 사용하여 동영상의 밝기 조정과 페이드 인/아웃 효과를 적용하는 방법에 대해 알아보았습니다.