Production line
야담 여섯 줄이, 32초짜리 영상이 됩니다
역을 누르면 그 자리로 갑니다 · 가만히 두면 스스로 한 바퀴 돕니다
준비 확인
- ✓Node.jsv24.14.1
- ✓ffmpeg8.1-full_build
- ✓ffprobe8.1-full_build
- ✓대본.txt있음
- ✓한국어 글꼴malgun.ttf
준비물은 둘뿐입니다 — Node.js와 ffmpeg. 키도, 카드도, 인터넷도 필요 없습니다. 이 다섯 줄이 초록이면 명령 한 줄로 첫 영상이 나옵니다. 체험판 ZIP에 이 단계와 첫 성공까지 들어 있습니다.
| # | 추정 시각 | 글자 | 장면 |
|---|---|---|---|
| 1 | 0.0s → 2.2s | 10 | 가을 새벽이었습니다. |
| 2 | 2.2s → 7.9s | 28 | 마당 흙이 아직 푸르스름한데, 사립문 밖에서 발소리가 났습니다. |
| 3 | 7.9s → 13.1s | 26 | 마을 사람들이 하나둘 갓 벤 볏단을 지고 말없이 들어섰습니다. |
| 4 | 13.1s → 19.1s | 30 | 볏단을 마당 한가운데 내려놓고는, 다시 나가 또 한 짐을 지고 왔습니다. |
| 5 | 19.1s → 23.4s | 21 | 볏단은 이내 사람 키를 넘어 작은 산이 되었습니다. |
| 6 | 23.4s → 30.9s | 38 | 사람들은 짐을 부리고 나서 마루 쪽을 향해 절을 한 번 하고, 그렇게 스무 집이 다녀갔습니다. |
대본.txt 여섯 줄(제 야담 채널 실제 대본의 첫 여섯 문장)을 문장 단위로 잘랐습니다. 시각은 글자 수로 짐작한 값입니다 — 프로그램이 스스로 «짐작»이라고 적어둡니다. STEP 4에서 진짜 소리가 나오면 이 숫자가 얼마나 틀렸는지 직접 보게 됩니다.






무료 그림 서버에 장면마다 한 장씩 부탁합니다. 보내는 건 «문장 + 화풍» 한 줄 — 화풍은 설정 파일에 semi-realistic anime illustration, soft digital painting, warm bright lighting, detailed hanbok, korean historical setting, expressive faces. 6장에 227.8초(실측), 실패 0. 그런데 — 여섯 장이 전부 «여자 얼굴»입니다. 새벽도, 마당도, 볏단을 진 마을 사람들도 한 장도 없습니다. 마지막 장은 한복도 아니고 고양이를 안고 있습니다. 문장은 한국어, 화풍은 영어였고 — 서버는 화풍만 들었습니다. 그대로 뒀습니다. STEP 7에서 다시 봅니다.

| · | 그림 있음 | 6개 |
| · | 카드로 채움 | 0개 |
| · | 글꼴 | malgun.ttf |
그림을 못 받은 장면이 있으면 이 카드로 자리를 메꿉니다. 남의 서버가 죽어도 영상은 나옵니다. 이번 판은 6장 다 받아서 카드가 0장 — 왼쪽은 보여드리려고 따로 구운 것입니다.
| # | 짐작 | 실제 | 차이 |
|---|---|---|---|
| 1 | 2.20s | 2.28s | +0.08s |
| 2 | 5.69s | 5.91s | +0.22s |
| 3 | 5.16s | 5.17s | +0.01s |
| 4 | 6.06s | 6.47s | +0.41s |
| 5 | 4.24s | 4.43s | +0.19s |
| 6 | 7.54s | 7.70s | +0.16s |
윈도우에 원래 들어 있는 목소리(Microsoft Heami)로 만들었습니다 — 무료. 짐작과 실제의 차이가 마지막 장면에서 +1.07초까지 벌어집니다. 앞은 맞고 뒤가 틀립니다. 그래서 자막을 다시 만들어야 합니다. 안 그러면 뒤로 갈수록 자막이 밀립니다.
자막 조각 12개 · 장면 6개. 조각이 장면보다 많은 건 긴 문장이 나뉜 것 — 정상입니다. 한 줄 22자 넘으면 «단어 한가운데»서 끊깁니다. 어디서 끊겼는지 프로그램이 줄마다 보여줍니다. 어색하면 사람이 고칩니다.
시킨 길이 31.96초 · 실제 길이 31.93초
✓ 길이가 맞습니다 (차이 0.03초)
볏단 진 마을 사람들 =
스무 집이 다녀갔습니다 =프로그램은 방금 «✓ 길이가 맞습니다 (차이 0.03초)»라고 했습니다. 맞는 말입니다. 길이는 맞습니다. 그런데 자막이 «볏단을 지고 들어선 마을 사람들»을 읽는 동안 화면엔 여자 얼굴이 떠 있고, «스무 집이 다녀갔습니다»엔 고양이를 안은 여자가 떠 있습니다. 여섯 장 전부 그렇습니다. 코드로는 안 보이는 게 화면에는 보입니다. 그래서 이 프로그램의 마지막 단계는 기계가 아니라 사람입니다. 자동화는 되지만, 무인은 아닙니다 — 이 책이 처음부터 끝까지 하는 말이 이겁니다. 그리고 그림 부품을 갈아끼우면 어디까지 가는지는 다음 역에 있습니다.






왼쪽은 장면 1 그림을 6초 움직이는 클립으로 만든 것입니다(소리 없음). 같은 여섯 줄 대본으로, 제가 실제로 쓰는 스튜디오(video-studio)가 그린 장면이 위 여섯 장입니다.
이 키트의 뼈대(대본 → 장면 → 그림 → 목소리 → 자막 → 영상)를 석 달 키운 게 제 스튜디오입니다. 달라진 건 부품입니다 — 그림은 유료 모델, 장면마다 인물을 지정, 그림을 6초 클립으로, 목소리·자막은 편집 프로그램에서. 갈아끼우는 자리는 키트에 이미 뚫려 있습니다(설정.mjs의 그림주소 함수 하나). 키트를 사면 이 그림이 나오는 게 아닙니다. 키트는 뼈대고, 이건 뼈대를 키운 결과입니다. 어디까지 키울지는 만드는 사람이 정합니다.