1인 기업가로서 매일 블로그를 쓰고 유튜브 쇼츠 영상을 기획하는 일은 생각보다 엄청난 노동을 요구합니다. 블로그 글을 요약해 대본을 만들고, ElevenLabs로 목소리를 뽑고, AI 이미지를 배치한 뒤, 프리미어나 캡컷 같은 툴을 켜서 자막을 한 땀 한 땀 얹다 보면 반나절이 훌쩍 지나가기 일쑤였습니다.
"이 영상 편집 과정도 규격화해서 자동으로 렌더링해 주는 프로그램이 있으면 얼마나 좋을까?"
이 고민에서 탄생한 것이 바로 파인선생 AI 자동화랩의 핵심 렌더러인 make_shorts.py 프로그램입니다. 파이썬을 기반으로 이미지와 오디오를 받아 9:16 세로형 쇼츠 비디오로 결합하고, 자막 파일(.srt)까지 자동으로 계산해 생성해 주는 시스템입니다.

왜 프리미어 대신 파이썬인가?
단순히 영상을 합치는 것뿐이라면 시중에 좋은 영상 편집 툴이 많습니다. 하지만 1인 기업가에게는 '반복 업무의 제거'가 생명입니다. 매번 편집기를 켜고 소스를 불러와 타임라인에 배치하는 행위 자체가 리소스 낭비입니다.
파이썬 기반 자동 렌더러는 다음과 같은 압도적인 효율을 제공합니다.
- 원클릭 렌더링: 영상 편집 프로그램을 켜서 마우스질을 할 필요가 없습니다. 터미널 창에
python make_shorts.py한 줄만 치면 10초 만에 쇼츠 원본 영상이 탄생합니다. - 비율 자동 조절 (9:16 크롭): 어떤 가로세로 비율의 이미지(1:1, 16:9 등)가 들어와도 프로그램이 자동으로 이미지를 스캔하여 중앙부 기준 9:16 세로형(1080x1920) 비율로 스마트하게 크롭하고 패딩을 입혀줍니다.
- 자막 싱크 자동 분배: ElevenLabs 음성 대본의 글자 수를 기반으로, 음성의 총 길이에 비례해 각 줄의 자막 표시 시간을 수학적으로 계산하여
.srt자막 파일을 자동으로 뽑아냅니다.
make_shorts.py의 작동 메커니즘
이 파이프라인의 핵심은 파이썬의 비디오 처리 라이브러리인 MoviePy와 시스템 인프라 코더인 FFmpeg의 결합입니다.
- FFprobe를 통한 오디오 탐색: 먼저 시스템의
ffprobe엔진을 실행하여 ElevenLabs에서 생성해 둔voice.mp3파일의 재생 시간을 소수점 단위로 정밀하게 읽어옵니다. - 글자 수 비례 자막 생성: 읽어온 오디오 길이를 기반으로 대본 텍스트의 글자 수를 계산합니다. 예를 들어 전체 음성 길이가 30초이고 전체 대본이 300자라면, 30글자가 들어간 자막 한 줄은 3초 동안 노출되도록 시간축을 분배하는 방식입니다. 이 방식으로 싱크를 맞춘 뒤 바로 자막 파일(
output_short.srt)을 생성합니다. - 줌인/줌아웃 카메라 효과 (Ken Burns Effect): 정적인 이미지가 밋밋하게 뜨는 것을 방지하기 위해 각 이미지 클립에 서서히 확대되거나 축소되는 프레임 확대 연산을 수행합니다.
- FFmpeg 최종 비디오 결합: 오디오 트랙과 이미지 시퀀스를 하나로 결합하고, 모바일 및 일반 미디어 플레이어에서 완벽하게 재생될 수 있도록 픽셀 포맷 옵션(
-pix_fmt yuv420p)을 적용하여 짝수 해상도의 최종output_short.mp4비디오를 렌더링합니다.
# make_shorts.py의 핵심인 자막 노출 시간 비례 배분 공식
def generate_srt(voice_path, total_duration, lines, out_path):
char_counts = [max(len(l), 1) for l in lines]
total_chars = sum(char_counts)
current_time = 0.0
for idx, (line, count) in enumerate(zip(lines, char_counts)):
# 글자 수 비율에 맞춰 표시할 초(second)를 계산
duration = (count / total_chars) * total_duration
end_time = current_time + duration
# SRT 규격에 맞게 포맷팅 및 파일 저장 로직 수행
write_srt_block(idx, current_time, end_time, line)
current_time = end_time
시스템 안정을 위한 트러블슈팅
시스템을 개발하면서 윈도우 환경 특유의 호환성 버그와 맞닥뜨리기도 했습니다. FFmpeg이 빌드한 영상이 간혹 윈도우 미디어 플레이어에서 '재생할 수 없는 형식(에러코드: 0x80004005)'으로 뱉어지는 문제였습니다.
분석 결과, 동영상 해상도의 가로나 세로 픽셀 크기가 '홀수'일 때 코덱 압축이 풀리지 않아 생기는 현상이었습니다. 이를 방지하기 위해 이미지를 크롭할 때 무조건 2로 나누어떨어지는 짝수 크기로 자동 리사이징하는 가드 코드를 추가하여 모든 윈도우 및 모바일 환경에서 재생이 완벽히 지원되도록 뼈대를 강화했습니다.

완성된 파이프라인의 가치
이 렌더링 자동화 시스템 덕분에 쇼츠 영상 한 편을 만드는 데 드는 수작업 시간이 기존 1시간에서 5분 이내로 단축되었습니다.
ElevenLabs에서 오디오를 받아 폴더에 넣고 python make_shorts.py 명령어를 입력하면, 몇 초 뒤 고화질 줌 효과가 적용된 세로형 비디오와 자막 파일이 완성됩니다. 이제 이 결과물을 캡컷(CapCut)으로 가져가 자막 파일만 얹은 뒤, 강조할 부분의 색상과 배경음악만 추가해 내보내면 쇼츠 한 편이 그대로 끝납니다.
1인 기업가의 진정한 생산성은 예술적인 수작업이 아니라, 규격화된 파이프라인을 통한 시간 단축에서 옵니다.
다음 편에서는 이렇게 완성된 쇼츠 영상과 블로그 원고를 클릭 한 번으로 네이버 블로그, 티스토리, 유튜브 쇼츠에 동시에 일괄 업로드하고 관리하는 '1인 기업 멀티채널 자동 업로드 시스템' 구축 방법을 다뤄보겠습니다.
'AI 콘텐츠 자동화' 카테고리의 다른 글
| AI 영상 프롬프트 실패 사례 및 극복기 (0) | 2026.05.28 |
|---|---|
| AI 고양이 캐릭터 쁘디 제작 실패기 (0) | 2026.05.27 |