소리꽃 KeyBloom 36
소리꽃 KeyBloom 바로가기 ↗
이 글은 소리꽃 KeyBloom 시리즈의 49번째 기록입니다. (총 49개)
오늘 한 일
어젯밤 좁혀 둔 프레임 깨짐을 편집툴 테스트로 확정해 고치고, 미뤄 뒀던 건반 입체감과 함께 0.1.8로 냈다.
- 추출 영상 프레임 깨짐 수정 — 하드웨어 인코더 출력을 원시 스트림으로 받은 뒤 MP4로 다시 감싸게 바꿨다. 재압축이 아니라 화질은 그대로다
- 이유: 인코더가 파일 머리에 넣는 설정과 영상 안에 넣는 설정이 달라서, 편집툴이 첫 키프레임 경계에서 기준 프레임을 놓쳤다
- 0.1.8 출시 — 건반 입체감(둥근 모서리·흰 건반 사이 틈·검은 건반 명암)과 위 수정
- 이유: 건반 하나로는 업데이트 알림을 띄울 값어치가 약해 미뤘는데, 영상 제작자에게 직접 걸리는 버그 수정이 붙었다
- 릴리스 노트 「고친 것」은 증상 한 줄로 줄이라고 했다 — 초안이 MP4·4초 부근·한 프레임까지 적어 사용자가 읽기엔 너무 자세했다
- 로그스톤 샵 제품 페이지 데모 건반을 새 모양으로 맞춰 달라고 앱 코드를 넘겼다
- 바흐 인벤션 8번 F장조 연주 영상을 올렸다 — 새 파티클과 새 건반 모양으로 만든 첫 영상이다
막힌 부분
- 제품 페이지 데모 건반이 옛 사각형 모양으로 남았다
- 원인: 제품 페이지의 움직이는 데모는 앱 그리기 코드를 옮겨 온 사본이라 앱을 바꿔도 따라가지 않는다. 파동 때 「바꾸면 데모 값도 보낸다」고 정해 놓고 모션에만 해당된다고 좁게 적어서, 건반을 바꾼 이번엔 빠뜨렸다. 샵이 먼저 짚었다
- 해결: 바뀐 건반 그리기 파일을 통째로 넘겼다. 건반이나 파티클 그리기를 바꾼 릴리스는 체크리스트에 「샵 데모 코드 전달」까지 넣었다
편집툴 테스트로 원인을 확정했다
어젯밤 만들어 둔 테스트 파일을 편집툴에서 열어 239프레임(두 번째 키프레임 직전)을 봤다.
- A 같은 데이터를 MP4로 다시 포장만 → 깨짐
- B 다른 인코더(x264)로 재압축 → 정상
- C 멀쩡한 B를 앱과 같은 AMD 설정으로 재압축 → 깨짐
- D A의 데이터는 그대로 두고 파일 머리 정보만 통일 → 정상
- E AMD 인코더에 B프레임 켜기 → 정상
479프레임(세 번째 키프레임 직전)은 전부 정상이었다. 데이터를 한 바이트도 안 바꾼 D가 멀쩡하니 원인은 파일 머리의 SPS(영상 전체 설정을 담은 정보)가 영상 안 SPS와 다른 것이다.
앱이 하드웨어 인코더를 쓰는 건 속도 때문이다. 소프트웨어로 압축하면 한 프레임에 100밀리초가 넘게 걸리던 게 몇 밀리초로 준다. 대신 칩 제조사마다 만든 인코더라 출력 구조가 표준에서 조금씩 벗어날 수 있고, 이번처럼 너그러운 도구에선 안 보이다가 엄격한 프로그램에서 드러난다. 속도를 얻은 만큼 호환성 확인이 따라붙는다.
D와 E 중에서 D 방식을 골랐다. E는 AMD 칩마다 B프레임 지원이 달라 다른 PC에서 실패할 수 있고, D는 인코더와 상관없이 머리만 정리한다.
- 해결: 인코더가 MP4 대신 원시 H.264 스트림을 쓰고, 추출이 끝나면 MP4로 다시 감싼다. 앱으로 다시 뽑은 영상이 편집툴에서 정상인 것까지 확인했다
원시 스트림을 감싸다 오디오가 통째로 빠졌다
원시 H.264 스트림에는 프레임마다 시각 정보가 없다. 이걸 오디오와 한 번에 MP4로 합치니 영상 길이를 0.38초로 잘못 읽어, 짧은 쪽에 맞춰 자르는 옵션(-shortest)이 오디오를 통째로 버렸다. 영상 트랙은 멀쩡하게 나와서 영상만 확인하면 놓친다.
시각을 만드는 옵션도 골라야 했다. -framerate로 주면 마이크로초 반올림이 쌓여 키프레임이 4초에 80µs씩 밀리고, 입력에 -r로 주면 정확히 떨어진다.
# 1) 원시 스트림 → 영상만 든 MP4 (시각은 입력 -r로)
ffmpeg -r 60 -i out.video.h264 -c:v copy out.video.mp4
# 2) 그 MP4에 오디오를 붙인다 (이제 영상 길이를 읽을 수 있다)
ffmpeg -i out.video.mp4 -i audio.wav -map 0:v -map 1:a -c:v copy -c:a aac -b:a 192k -shortest out.mp4
- 해결: 두 단계로 나눴다. 결과는 키프레임이 정확히 0/4/8초, 오디오가 0초에 같이 시작하고, 파일 머리와 영상 안의 SPS가 같다
- 남은 규칙: 출력 방식을 바꾸면 영상 한 장면만 보지 말고 결과 파일 전체(오디오 트랙·길이·시작 시각)를 확인한다
다음에 할 일
- 로그스톤 샵 제품 페이지 데모 건반을 화면으로 확인 — 샵이 새 코드로 바꿔 배포했다
- 가이드 영상 제작 — 소스는 확보했고 Final Cut Pro에서 편집한다. 자막은 영상에 구워 넣지 않고 자막 파일로 올려 유튜브 자동 번역이 붙게 한다
- 크로마키 출력 — 키 색과 파티클 색이 겹치는 문제부터. 무지개 모드는 모든 색조를 써서 어떤 키 색이든 겹치고, 발광은 반투명이라 경계가 물든다
- 9:16·1:1 비율 영상 추출
- 라이브 모드 영상 촬영 기획
- 분수·파동 등 상수 미세튜닝은 실기로 보며
Series: 소리꽃 KeyBloom
1 | 소리꽃 KeyBloom 2 | Rescene(리센느) ― Pretty Girl 3 | 히사이시 조 ― Spring 4 | 히사이시 조 ― 인생의 회전목마 5 | 히사이시 조 ― Summer 6 | LiSA ― 홍련화(귀멸의 칼날) 7 | DJ Okawari ― Flower Dance 8 | 안젤리크스페셜 ― The Queen 9 | 쇼팽 ― 녹턴 10 | 테일즈위버―Reminiscence 11 | D.Gray-man―14番目ノ子守歌 12 | 이루마―Kiss in the rain 13 | Bach―Invention No. 8 in F Major 14 | 소리꽃 KeyBloom 1 15 | 소리꽃 KeyBloom 2 16 | 소리꽃 KeyBloom 3 17 | 소리꽃 KeyBloom 4 18 | 소리꽃 KeyBloom 5 19 | 소리꽃 KeyBloom 6 20 | 소리꽃 KeyBloom 7 21 | 소리꽃 KeyBloom 8 22 | 소리꽃 KeyBloom 9 23 | 소리꽃 KeyBloom 10 24 | 소리꽃 KeyBloom 11 25 | 소리꽃 KeyBloom 12 26 | 소리꽃 KeyBloom 13 27 | 소리꽃 KeyBloom 14 28 | 소리꽃 KeyBloom 15 29 | 소리꽃 KeyBloom 16 30 | 소리꽃 KeyBloom 17 31 | 소리꽃 KeyBloom 18 32 | 소리꽃 KeyBloom 19 33 | 소리꽃 KeyBloom 20 34 | 소리꽃 KeyBloom 21 35 | 소리꽃 KeyBloom 22 36 | 소리꽃 KeyBloom 23 37 | 소리꽃 KeyBloom 24 38 | 소리꽃 KeyBloom 25 39 | 소리꽃 KeyBloom 26 40 | 소리꽃 KeyBloom 27 41 | 소리꽃 KeyBloom 28 42 | 소리꽃 KeyBloom 29 43 | 소리꽃 KeyBloom 30 44 | 소리꽃 KeyBloom 31 45 | 소리꽃 KeyBloom 32 46 | 소리꽃 KeyBloom 33 47 | 소리꽃 KeyBloom 34 48 | 소리꽃 KeyBloom 35 49 | 소리꽃 KeyBloom 36 읽는 중