b23042andClaude Opus 4.8 e9052143d7 feat: 스테이션바 측점 정확도 개선 + 영상 컨트롤 UI 통합 + 종합 기술문서
스테이션바/측점(체이니지)
- 역 재진입 마커 누락 수정: 측점기준 탐지에 좌표근접(pxPassesTo) 합집합 보강(중복 24px 제거)
- kmExists 판정: 좌표 반경만으로 잡힌 통과는 측점값 라벨/검색에서 제외(마커 동그라미는 유지)
- 측점값 라벨 겹침 숨김(좌측 우선), 동일항목 브래킷 클러스터
- 측점 검색 순환(통과방향 다음→끝에서 처음), 마커 기준 후보 산출, 입력값 유지/blur 삭제
- 연속 체이니지 수직투영 유틸 분리(client/src/utils/chainage.ts), Minimap 컴포넌트 추가

영상 컨트롤 UI
- 선형/드론궤적/좌측패널 토글을 재생바로 통합(settingsStore 공유·persist)
- 드론 GPS·고도 HUD 상시 표시, 경로표고·투명도 항상 노출, 겹침제외 버튼 숨김
- 재생바 요소 재배치(좌측패널→선형→드론궤적→드론위치정보→시설등급), 활성색 amber 통일

문서/도구
- 종합 기술명세서(인계+특허 기초) md/html/pdf 3종, UI개선 보고서 3종
- md→html→pdf 변환 스크립트(scripts/md2docs.sh) + 스타일(docs/assets/report.css)
- 작업 히스토리 다수 추가(docs/history/)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-29 14:56:27 +09:00

abcvideo

2GB 이상 대용량 동영상을 웹 브라우저에서 안정적으로 재생하는 특화 기능 탑재 플레이어.

기능

  • 2GB+ 동영상 안정 재생 (로컬 파일 직접 재생 + 서버 Range Request/HLS)
  • 프레임 단위 추출 (Canvas 즉시 미리보기)
  • 키보드 단축키로 프레임/초/장면 단위 이동
  • 자막형 / 메모형 텍스트 오버레이 + VTT/SRT/JSON/CSV 내보내기
  • HLS 자동 변환 (FFmpeg 설치 시)

사전 요구사항

  • Node.js 20+ LTS
  • FFmpeg (HLS 변환 및 프레임 정확 추출 시 필요)

설치 및 실행

# 1. 의존성 설치
npm install

# 2. 환경변수 설정
cp server/.env.example server/.env

# 3. 개발 서버 실행 (클라이언트 + 서버 동시)
npm run dev

브라우저에서 http://localhost:5173 접속

개발 서버 포트

서비스 포트
클라이언트 (Vite) 5173
백엔드 API 3001

키보드 단축키

동작
Space 재생 / 일시정지
← / → 5초 뒤로 / 앞으로
J / L 10초 뒤로 / 앞으로
, / . 이전 / 다음 프레임 (일시정지 시)
[ / ] ±30초 이동
0 ~ 9 10% 단위 탐색
F 전체화면
M 음소거
+ / - 재생속도 조절
Shift+S 프레임 캡처
Shift+M 메모 추가
? 단축키 도움말

프로젝트 구조

abcvideo/
├── client/          # React 18 + Video.js 8 프론트엔드
├── server/          # Node.js + Express 백엔드
├── shared/          # 공유 TypeScript 타입
└── storage/         # 런타임 생성 (영상, HLS, 프레임)

환경변수 (server/.env)

변수 기본값 설명
PORT 3001 서버 포트
FFMPEG_PATH ffmpeg FFmpeg 실행 경로
MAX_UPLOAD_SIZE 21474836480 최대 업로드 크기 (20GB)
HLS_SEGMENT_TIME 6 HLS 세그먼트 길이 (초)
S
Description
No description provided
Readme
20 MiB
Languages
TypeScript 85.2%
Python 9.5%
SCSS 4.1%
CSS 0.6%
JavaScript 0.3%
Other 0.3%