메모
MoviePy는 최근 v2.0으로 업그레이드되어 주요 변경 사항을 도입했습니다. 여기에서 마지막 v1 문서를 참조할 수 있지만 v1은 더 이상 유지되지 않는다는 점에 유의하세요. 코드를 v1에서 v2로 업데이트하는 방법에 대한 자세한 내용은 이 가이드를 참조하세요.
MoviePy(여기서 온라인 문서)는 잘라내기, 연결, 제목 삽입, 비디오 합성(비선형 편집이라고도 함), 비디오 처리 및 사용자 정의 효과 생성 등 비디오 편집을 위한 Python 라이브러리입니다.
MoviePy는 GIF를 포함하여 가장 일반적인 모든 오디오 및 비디오 형식을 읽고 쓸 수 있으며 Python 3.9+를 사용하여 Windows/Mac/Linux에서 실행됩니다.
이 예에서는 비디오 파일을 열고 10~20초 사이의 하위 클립을 선택한 다음 화면 중앙에 제목을 추가하고 결과를 새 파일에 씁니다.
from moviepy import VideoFileClip , TextClip , CompositeVideoClip
# Load file example.mp4 and keep only the subclip from 00:00:10 to 00:00:20
# Reduce the audio volume to 80% of its original volume
clip = (
VideoFileClip ( "long_examples/example2.mp4" )
. subclipped ( 10 , 20 )
. with_volume_scaled ( 0.8 )
)
# Generate a text clip. You can customize the font, color, etc.
txt_clip = TextClip (
font = "Arial.ttf" ,
text = "Hello there!" ,
font_size = 70 ,
color = 'white'
). with_duration ( 10 ). with_position ( 'center' )
# Overlay the text clip on the first video clip
final_video = CompositeVideoClip ([ clip , txt_clip ])
final_video . write_videofile ( "result.mp4" )
내부적으로 MoviePy는 미디어(비디오 프레임, 이미지, 사운드)를 가져오고 이를 Python 객체(numpy 배열)로 변환하여 모든 픽셀에 액세스할 수 있게 하고 단 몇 줄의 코드로 비디오 또는 오디오 효과를 정의할 수 있습니다(참조: 예를 들어 내장 효과가 있습니다.
또한 라이브러리는 클립을 함께 혼합하는 방법(연결, 클립을 나란히 또는 투명하게 겹쳐서 재생 등)을 제공합니다. 그런 다음 최종 클립은 mp4/webm/gif/etc로 다시 인코딩됩니다.
이는 데이터 가져오기/내보내기 작업이 더 많아 ffmpeg를 직접 사용하는 것보다 느리긴 하지만 MoviePy를 매우 유연하고 접근하기 쉽게 만듭니다.
pip install moviepy
사용하여 moviepy를 설치합니다. 사용자 정의 FFMPEG 또는 미리보기와 같은 추가 설치 옵션은 이 섹션을 참조하세요. 개발을 위해 해당 저장소를 로컬로 복제하고 pip install -e .
온라인 문서(여기)는 마스터 브랜치에 푸시할 때마다 자동으로 작성됩니다. 문서를 로컬로 빌드하려면 pip install moviepy[doc]
통해 추가 종속성을 설치한 다음 docs
폴더로 이동하여 make html
실행하세요.
MoviePy는 원래 Zulko가 작성하고 MIT 라이센스에 따라 출시된 오픈 소스 소프트웨어입니다. 프로젝트는 GitHub에서 호스팅되며, 누구나 기여하고 문제를 공개하거나 피드백을 제공할 수 있습니다. 기여 지침을 읽어보세요. 도움을 요청하거나 단순히 사용법과 예시에 대해 논의하려면 Reddit 채널을 사용하세요.
유지관리자를 원합니다! 이 라이브러리는 관리자의 참여에 의해서만 유지되었으며, 우리 중 어느 누구도 충분한 대역폭을 갖지 못할 때가 있습니다. 우리는 도움을 주고 일부 문제(특히 귀하에게 영향을 미치는 문제)를 해결하거나 끌어오기 요청을 검토하는 데 관심이 있는 개발자에 대해 듣고 싶습니다. 관심이 있으시면 이슈를 열거나 직접 문의해 주세요. 감사해요!