프로젝트

일반

사용자정보

Actions

요구사항정의서

동영상 플레이어 앱 요구사항 정의서 (SRS)

항목 내용
프로젝트명 BBPlayer
프로그램명 BBPlayer
문서 버전 v1.0
작성일 2026년 03월 24일
작성자 페후 (이태훈)
상태 초안 (Draft)

1. 프로젝트 개요

1.1 목적

기존 동영상 플레이어의 자막 오류 및 소리 문제를 개선하고, Windows 데스크탑과 Android 모바일 환경 모두에서 동작하는 크로스플랫폼 동영상 플레이어 앱을 개발한다.

1.2 범위

  • 지원 플랫폼: Windows 10 이상 (데스크탑), Android 8.0 이상 (APK)
  • 개발 기술: Flutter (Dart), media_kit (FFmpeg 기반 코덱 처리)
  • 주요 기능: 동영상 재생, 자막, 플레이리스트, 제스처 제어, 키보드 단축키

1.3 용어 정의

용어 설명
media_kit FFmpeg 기반의 Flutter 크로스플랫폼 미디어 재생 라이브러리
SRT / ASS 자막 파일 포맷 (SubRip / Advanced SubStation Alpha)
A-B 반복 사용자가 지정한 구간을 반복 재생하는 기능
PIP Picture in Picture: 다른 앱 사용 중 영상을 작은 창으로 재생
Always on Top 플레이어 창이 항상 다른 창 위에 표시되는 기능

2. 기능 요구사항

2.1 재생 컨트롤

ID 기능명 상세 설명 플랫폼
FR-01 재생 / 일시정지 영상을 재생하거나 일시정지한다. 컨트롤 바 버튼 및 단축키로 토글 가능 Windows / Android
FR-02 10초 앞으로 / 뒤로 버튼 클릭 시 현재 재생 위치에서 정확히 10초 이동 Windows / Android
FR-03 재생 진행바 영상 전체 길이 대비 현재 위치를 표시하며, 드래그하여 원하는 위치로 탐색 가능 Windows / Android
FR-04 재생 속도 조절 0.25x ~ 2.0x 범위에서 재생 속도 선택 가능 (0.25x 단위) Windows / Android
FR-05 화면 비율 변경 16:9 / 4:3 / 화면 맞춤 / 전체화면 모드 선택 가능 Windows / Android
FR-06 항상 위 (Always on Top) 플레이어 창을 다른 모든 창 위에 항상 표시 Windows 전용
FR-07 이어보기 앱 종료 후 재실행 시 마지막 재생 위치부터 자동으로 이어서 재생 Windows / Android
FR-08 A-B 구간 반복 사용자가 시작점(A)과 종료점(B)을 지정하면 해당 구간을 무한 반복 재생 Windows / Android

2.2 자막

ID 기능명 상세 설명 플랫폼
FR-09 자막 파일 불러오기 SRT, ASS 형식의 외부 자막 파일을 수동으로 불러와 적용 Windows / Android
FR-10 자막 싱크 조절 자막 표시 시간을 ±0.1초 단위로 수동 조정 가능 Windows / Android
FR-11 자막 ON/OFF 자막 표시 여부를 토글로 즉시 전환 가능 Windows / Android
FR-12 자막 스타일 커스터마이징 자막 글자 크기, 색상, 배경색을 사용자가 직접 설정 가능 Windows / Android
FR-13 자막 자동 검색 재생 중인 파일명을 기준으로 외부 자막 사이트에서 자막을 자동 검색하여 다운로드 제안 Windows / Android

2.3 오디오

ID 기능명 상세 설명 플랫폼
FR-14 볼륨 조절 0~100% 범위의 볼륨을 슬라이더 또는 제스처/단축키로 조절 Windows / Android
FR-15 음소거 볼륨을 즉시 0으로 전환하며, 재토글 시 이전 볼륨으로 복원 Windows / Android
FR-16 오디오 트랙 선택 MKV 등 다중 오디오 트랙이 포함된 파일에서 원하는 트랙을 선택 Windows / Android

2.4 플레이리스트

ID 기능명 상세 설명 플랫폼
FR-17 파일 추가 파일 탐색기를 통해 개별 파일 또는 폴더 단위로 영상 파일을 플레이리스트에 추가 Windows / Android
FR-18 드래그 앤 드롭 파일 탐색기에서 앱으로 파일을 드래그하여 추가 가능 Windows 전용
FR-19 이전 / 다음 영상 이동 플레이리스트 내 이전 또는 다음 영상으로 이동 Windows / Android
FR-20 반복 재생 모드 전체 반복 / 한 곡 반복 / 셔플 중 선택하여 재생 순서 제어 Windows / Android
FR-21 최근 재생 목록 최근 재생한 파일 히스토리를 저장하여 빠르게 다시 열기 가능 Windows / Android
FR-22 진행바 썸네일 미리보기 진행바에 마우스를 올리면 해당 위치의 영상 썸네일을 팝업으로 표시 Windows 전용

2.5 제스처 제어 (Android 전용)

모바일 환경에서 직관적인 조작을 위해 아래와 같은 터치 제스처를 지원한다.

영역 제스처 동작
전체 화면 좌 → 우 스와이프 재생 위치 앞으로 이동 (스와이프 거리에 비례)
전체 화면 우 → 좌 스와이프 재생 위치 뒤로 이동 (스와이프 거리에 비례)
화면 왼쪽 절반 아래 → 위 스와이프 화면 밝기 증가
화면 왼쪽 절반 위 → 아래 스와이프 화면 밝기 감소
화면 오른쪽 절반 아래 → 위 스와이프 볼륨 증가
화면 오른쪽 절반 위 → 아래 스와이프 볼륨 감소
화면 중앙 싱글 탭 재생 / 일시정지 토글

제스처 조작 중에는 화면 중앙에 오버레이 UI를 표시하여 현재 값을 즉시 피드백한다.

2.6 키보드 단축키 (Windows 전용)

PC 환경에서 마우스 없이도 빠르게 조작할 수 있도록 아래의 단축키를 지원한다.

단축키 동작 비고
Space 재생 / 일시정지
5초 앞으로
5초 뒤로
Shift + → 10초 앞으로
Shift + ← 10초 뒤로
볼륨 증가 5% 단위
볼륨 감소 5% 단위
F / F11 전체화면 토글
Esc 전체화면 해제
M 음소거 토글
N 다음 영상
P 이전 영상
S 자막 ON / OFF
A A-B 구간 반복 시작 / 종료 지정 1회: A 지점, 2회: B 지점
Ctrl + O 파일 열기

2.7 PIP (Picture in Picture)

ID 기능명 상세 설명 플랫폼
FR-23 PIP 모드 전환 다른 앱을 사용하는 동안 영상을 작은 플로팅 창으로 재생. Android 시스템 PIP API 활용 Android 전용

3. 비기능 요구사항

구분 항목 내용
성능 재생 지연 파일 열기 후 재생 시작까지 2초 이내
성능 탐색 응답 진행바 드래그 탐색 후 화면 반영까지 0.5초 이내
호환성 Windows Windows 10 이상 (64bit)
호환성 Android Android 8.0 (API 26) 이상
지원 포맷 동영상 MP4, MKV, AVI, MOV, FLV, WMV (FFmpeg 지원 포맷 전체)
지원 포맷 자막 SRT, ASS/SSA
UI/UX 다크 모드 기본 다크 테마 적용, 라이트 모드 선택 가능
UI/UX 반응형 레이아웃 화면 크기에 따라 컨트롤 바 및 레이아웃 자동 조정
데이터 재생 기록 저장 이어보기 및 최근 재생 목록을 로컬 DB에 저장

4. 기술 스택

구분 기술 / 라이브러리 용도
개발 언어 Dart Flutter 앱 개발 언어
프레임워크 Flutter Windows / Android 크로스플랫폼 UI 프레임워크
미디어 재생 media_kit FFmpeg 기반 코덱 처리 및 영상 재생
미디어 재생 media_kit_video 영상 렌더링 위젯
자막 subtitle_view 자막 파싱 및 표시
파일 선택 file_picker 파일 탐색기 연동
로컬 저장소 sqflite 재생 히스토리 및 설정 저장

5. 개발 우선순위

단계 구분 포함 기능
Phase 1 핵심 재생 기능 재생/일시정지, 진행바, 볼륨, 파일 열기, 전체화면
Phase 2 자막 & 오디오 자막 불러오기, 싱크 조절, 스타일, 오디오 트랙 선택
Phase 3 플레이리스트 파일 추가, 이전/다음, 반복 모드, 최근 재생 목록, 이어보기
Phase 4 편의 기능 A-B 반복, 재생 속도, 단축키, 제스처 제어, Always on Top
Phase 5 고급 기능 썸네일 미리보기, 자막 자동 검색, PIP, 드래그 앤 드롭

6. 변경 이력

버전 일자 작성자 변경 내용
v1.0 2026-03-24 페후 (이태훈) 최초 작성

이태훈이(가) 약 한달 전에 변경 · 1 revisions