abcVideo 플레이어 소스 (client / server / shared / pythonsource / docs / .claude). .gitignore 적용으로 node_modules·storage·samplevideo·미디어 등 대용량 일괄 제외. 103 files, ~964K. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
28 lines
1.4 KiB
Markdown
28 lines
1.4 KiB
Markdown
# 동영상 로드 실패 (서버 중지) 복구
|
||
|
||
**이슈**: #0
|
||
**소요 시간**: 10분
|
||
**Context 사용량**: input 45k / output 3k tokens
|
||
|
||
## 증상
|
||
좌측 동영상 목록에서 항목 클릭 시 "로드할 수 없음" 에러.
|
||
|
||
## 원인
|
||
- 백엔드 서버(pm2 프로세스 `abcVideo`, 포트 55173)가 **stopped 상태**였음.
|
||
- 프론트엔드와 API가 동일 포트(노드 정적 서빙)에서 동작하므로, 서버가 죽으면 `/api/stream/:videoId` 요청이 전부 실패 → 영상 로드 불가.
|
||
- pm2 error 로그상 과거 `EADDRINUSE`(포트 3030 충돌)로 재시작 실패 이력이 있었고 stopped로 남아 있었음.
|
||
- 코드(URL 인코딩, Range Request, 한글·괄호 포함 파일명 처리)는 정상.
|
||
|
||
## 조치
|
||
1. `pm2 restart abcVideo --update-env` → online 복구
|
||
2. 검증
|
||
- `GET /api/videos` → `하행)회덕-대전조차장.MP4` 반환
|
||
- `GET /api/stream/...` (Range 0–1MB) → HTTP 206, 1MB 수신
|
||
- `GET /api/meta/...` → HTTP 200
|
||
3. `pm2 save`로 프로세스 목록 저장
|
||
|
||
## 후속 참고
|
||
- `FFmpeg not found in PATH` 경고 → HLS 변환/프레임 추출은 FFmpeg 설치 후 동작 (즉시 재생은 영향 없음).
|
||
- `client/vite.config.ts` 프록시 타깃이 `localhost:3030`인데 실제 서버 포트는 55173.
|
||
프로덕션 정적 서빙에는 무관하나, Vite 개발 서버(`npm run dev`) 사용 시 API 프록시 불일치로 동작 안 함 → 개발 모드 사용 시 포트 정정 필요.
|