ㅁ 개요
O 프로그램 소개
이번글은 이전글([프로젝트]chatGPT3.5로 자동으로 책 요약 후 아바타 숏츠만들기 > 5.1 ffmpeg로 영상을 작게 만들기)에 이은 11번재 마지막 글로 이전 글에서 만든 이미지, 아바타영상, 배경음악 등을 합쳐서 최종적으로 책을 요약해서 읽어 주는 아바타를 만드는 방버에 대하여 알아 보겠습니다.
**본 포스팅 글은 아래 유튜브 사이트(국내 파이썬 최고 실력자 중 한 분)의 내용을 참고하여 작성하였으며, 초보자들이 좀 더 쉽고, 잘 따라할 수 있도록 해당 내용을 세부적으로 잘게 쪼개서 설명한 글입니다. 자세한 내용은 아래 사이트를 참고하여 주시기 바랍니다.
[GPT-4] 책 요약해서 유튜브 쇼츠 영상으로 돈버는 인공지능 만들기|빵형의 개발도상국
https://www.youtube.com/watch?v=_TVyF_4JJgk&t=814shttps://www.youtube.com/watch?v=sLgYJIpqUJg
O 완성된 프로그램 실행 화면
1.프로그램 실행 시 아래와 같이 최종 비디오 영상(아바타)이 잘 만들어 진것을 볼 수 있습니다.
2. 탐색기에서 확인한 결과 'result.mp4' 파일이 생성 되었습니다.
3. 더블클릭하여 실행하면 아래와 같이 영상이 의도했던 대로 잘 실행되고 있습니다.
O 에러 발생시 조치 사항
아래와 같은 에러 발생 시 하기 단계에 따라 조치하시면 되겠습니다.(에러가 발생하지 않으신 분들은 이 부분을 건너 뛰셔도 됩니다.)
I. 에러 메시지 : "FileNotFoundError: [WinError 2] 지정된 파일을 찾을 수 없습니다"
1. 아래 사이트에 접속하여 ImageMagick을 다운로드 받습니다.
https://imagemagick.org/script/download.php
2. 적당한 곳에 압축을 풀고, 'magick.exe' 파일이 존재하는 전체 경로를 복사해 둡니다.
3. 파이썬을 설치한 위치에서 'Lib > site-packages > moviepy > config_defaults.py'를 엽니다.
4. 해당 파일에서 아래와 같이 'auto-detect' 가 있는 부분을 주석처리 하고,
'auto-detect' <-- 이 부분을 위의 2에서 복사해둔 내용으로 붙여넣기 해줍니다.
기존에 열려 있는 cmd를 닫고, 다시 실행 시켜 줍니다.
II. 에러 메시지 : 영상 실행 시 한글이 안나오거나 깨져 나오는 경우
1. 아래와 같이 print()문으로 자신의 PC에 설치된 폰트를 확인합니다.
2. 아래와 같이 나오면 여기서 적당한 한글폰트를 선택해 줍니다.
(저는 '휴먼명조'를 사용할 예정입니다.)
3. 아래와 같이 font = '휴먼명조'로 설정해 줍니다.
위의 과정을 거치셨다면 관련 에러는 발생하지 않을 것입니다.
ㅁ 세부 내용
O 완성된 소스
소스 : 6-2.py
from moviepy.editor import *
from moviepy.audio.io.AudioFileClip import AudioFileClip
# pip install --trusted-host pypi.python.org moviepy
from glob import glob
def editVideo():
avatar_clip = VideoFileClip('temp2/avatar170.mp4')
print(avatar_clip.duration)
#####################################################################
# 백그라운드 음악을 원본영상과 같은 길이로 만들어 줌
#####################################################################
audio_clip = AudioFileClip('temp2/bgm.mp3')
audio_clip = audio_clip.volumex(0.2)
audio_clip = audio_clip.set_duration(avatar_clip.duration)
print(audio_clip.duration)
#####################################################################
# 백그라운드 이미지 갯수와 영상길이 확인 후 이미지를 묶은 영상으로 만듦
#####################################################################
paper_imgs = sorted(glob('temp2/*.png'))
print(len(paper_imgs))
clips = [ImageClip(m).set_duration(avatar_clip.duration / len(paper_imgs)) for m in paper_imgs]
print(clips)
paper_clip = concatenate_videoclips(clips, method="compose")
paper_clip = paper_clip.set_duration(avatar_clip.duration)
print(paper_clip.duration)
#################################
# 아바타를 오른쪽 아래에 위치, 크기를 작게 만듦
#################################
w, h = paper_clip.size
print('Resize avatar clip and move position to bottom right')
avatar_clip = avatar_clip.set_pos(('right', 'bottom'))
print('Text animation')
t = u'소설책 1분 요약'.encode('utf-8')
txt = TextClip(t, color='white', font='휴먼명조', fontsize=30)
txt_col = txt.on_color(
size=(txt.w + 10, txt.h + 10),
color=(0, 0, 0),
pos=(6, 'center'),
col_opacity=0.6)
txt_mov = txt_col.set_pos(('center', h / 10))
txt_mov = txt_mov.set_duration(avatar_clip.duration)
print('Composite and write the video file')
result = CompositeVideoClip([paper_clip, avatar_clip, txt_mov])
result.write_videofile(
'result.mp4',
codec='libx264',
audio_codec='aac',
threads=32)
editVideo()
O 주요 내용
1.아래 소스코드의 주요 부분에 대해 간략히 설명 드리겠습니다.
대부분의 내용은 소스안의 주석으로 이미 설명이 되어 있으므로 이 부분을 참고하여 주시기 바랍니다.
1. 먼저 아바타 영상의 길이를 확인 후 배경음악의 길이를 영상의 길이와 동일하게 맞춰 줍니다.
(이는 영상, 배경음악, 이미지, 텍스트 등을 같은 길이로 보여주기 위해 필요합니다.)
2. 백그라운드 이미지 에니메이션을 만들기 위해 영상의 길이만큼 이미지 개수로 나누어 배경 이미지를 골고루 보여줄 수 있도록 설정합니다.
3. 아바타의 위치를 조정하고(오른쪽 하단), 영상에 간단한 텍스트를 보여주도록 설정합니다.
텍스트의 한글이 깨지거나, 안나오는 경우 위의 "에러 발생시 조치 사항"을 참고 하여 조치하여 주시기 바랍니다.
텍스트도 마찬가지로 영상의 길이만큼 보여주도록 설정하고, (line 65)
이제 이미지, 아바타, 텍스트가 모두 동일한 길이로 설정되었으므로 합쳐 줍니다.(line 69)
4. 위에 설정한 내용을 비디오 파일(result.mp4)로 만들어 줍니다. (line 76~83)
ㅁ 정리
O 우리가 배운 내용
> 2.영상, 배경음악, 이미지, 텍스트를 합칩니다.
> 3.위의 설정을 실제 비디오 파일로 만듭니다.
이것으로 길었던 chatGPT3.5로 자동으로 책 요약 후 아바타 숏츠만들기 프로젝트를 마칩니다.
댓글과 하트는 제가 이글을 지속할 수 있게 해주는 힘이 됩니다.
위의 내용이 유익하셨다면, 댓글과 하트 부탁드립니다.
감사합니다.
※ 추가적인 정보는 아래 유튜브 영상에서 해당 내용을 더욱 자세히 보실 수 있습니다.