틱톡의 좋아요, 댓글 자동으로 스크롤되는 프로그램 만드는 프롬프트

당신은 Python 영상처리 전문가입니다.
아래 사양에 맞는 프로그램을 단일 Python 파일(overlay.py)로 만들어주세요.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■ 목적
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
9:16 쇼츠 영상에 TikTok 라이브 스트림 UI를 합성하여
"지금 이 영상이 엄청난 인기를 끌고 있다"는 느낌을 주는
output_with_overlay.mp4를 생성한다.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■ 입력 파일 (모두 실행 폴더에 위치)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
- input.mp4        : 원본 쇼츠 영상 (9:16)
- star.png         : 좋아요 하트/별 파티클 이미지
- reply.txt        : 줄 단위 댓글 텍스트 (무한 루프 사용)

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■ 라이브러리
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ffmpeg-python, Pillow, pydub, numpy
설치 커맨드를 코드 상단 주석에 명시할 것.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■ 화면 구성 (오버레이 레이어)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

[우측 사이드바 — 원본 TikTok 스타일]
- 하트 아이콘 + 숫자 (12.4만 → 실시간 증가, 매 0.3~1.2초마다 랜덤 +1~+30)
- 댓글 아이콘 + 숫자 (3.2천 → 실시간 증가)
- 북마크, 공유 아이콘
- 아이콘은 흰색 PNG 혹은 PIL로 직접 드로잉

[하단 댓글 스크롤 패널]
- 화면 하단 40% 영역에 반투명 검정 그라디언트 배경 (alpha=140)
- 댓글 3~4줄이 동시에 보이며 위로 스크롤
- 각 댓글 줄 구성:
    ① 프로필 원형 아바타 (랜덤 배경색 + 흰 이니셜 1글자)
    ② 닉네임 (랜덤 생성: 형용사+명사+숫자 조합, 예: BlueStar92)
    ③ 닉네임 색상: 랜덤 파스텔 컬러 (빨강/파랑/초록/오렌지 계열)
    ④ 댓글 텍스트 (reply.txt에서 순서대로, 끝나면 처음으로 루프)
    ⑤ 우측에 작은 하트 이모지 (50% 확률로 표시)
- 스크롤 속도: 55~80px/초 사이에서 랜덤 변화
- 새 댓글이 하단에서 올라오며 상단으로 사라짐
- 댓글 사이 간격은 8px
- 폰트: NanumGothic 또는 시스템 기본 한글 지원 폰트 자동 탐색

[좋아요 파티클 이펙트]
- star.png를 0.4~0.9 스케일로 랜덤 리사이즈
- 화면 우측 하단에서 스폰, 위로 떠오르며 좌우로 sin 곡선 이동
- 동시에 3~8개 활성, 올라가며 서서히 투명해짐 (fade out)
- 새 파티클 스폰 간격: 0.2~0.8초 랜덤

[상단 바 (선택)]
- 좌상단: 작은 LIVE 빨간 배지
- 시청자 수: 24.7만 (실시간 ±500 변동)
- 영상 길이만큼 유지

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■ 효과음 합성
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
- pydub로 다음 사운드를 프로그래밍적으로 생성 (외부 파일 불필요):
    · 좋아요 딩 소리: 800Hz 사인파 0.08초, 빠른 페이드아웃
    · 댓글 팝 소리: 440Hz 사인파 0.06초, 약간 낮게
    · 선물/특별 이벤트 소리: 1000→600Hz 슬라이드 다운 0.15초
- 타이밍: 영상 전체에 걸쳐 1~4초 간격으로 랜덤 배치
- 볼륨: 원본 오디오 대비 -12dB (배경에 자연스럽게 섞임)

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■ 처리 파이프라인
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1. ffmpeg-python으로 input.mp4에서 프레임 시퀀스 추출 (PNG)
2. 각 프레임에 PIL로 오버레이 드로잉 (위의 모든 요소)
3. 프레임 시퀀스를 ffmpeg로 다시 영상으로 합성
4. pydub로 효과음 믹싱 후 원본 오디오와 합쳐 최종 출력
5. 진행률을 tqdm 프로그레스바로 표시

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■ 코드 품질 요구사항
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
- 클래스 분리: CommentScroller, HeartParticle, SoundGenerator, OverlayRenderer
- 각 클래스는 update(frame_idx) + draw(img) 메서드 패턴
- 설정값(색상, 속도, 확률 등)은 파일 상단 CONFIG dict로 모아둘 것
- 임시 파일은 temp/ 폴더에 모으고 완료 후 자동 삭제
- argparse로 CLI 지원: python overlay.py --input input.mp4 --output out.mp4 --fps 30

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■ 출력 품질
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
- 해상도: 원본 유지 (보통 1080×1920)
- 코덱: H.264, AAC
- 비트레이트: 영상 6Mbps, 오디오 192kbps

완성 후 "사용법" 섹션을 README 형식으로 코드 하단 주석에 포함해주세요.

로드맵 요약

단계 핵심 작업 라이브러리
1. 입력 영상·이미지·텍스트 로딩 ffmpeg-python, PIL, argparse
2. UI 설계 반투명 패널, 사이드바 배치 PIL ImageDraw
3. 댓글 스크롤 무한 루프 + 닉네임 랜덤 생성 PIL, numpy
4. 파티클 star.png 하트 띄우기 + fade PIL, math(sin)
5. 효과음 알림음 프로그래밍 생성 + 믹싱 pydub, numpy
6. 출력 프레임 합성 → mp4 인코딩 ffmpeg-python

Similar Posts

답글 남기기