User Story
브랜드 하위의 매장들의 장비에 적용할 화면 에셋을 등록, 조회한다.
•
위치 : 토스플레이스 브랜드 파트너스 → 가맹점 관리 → 우측 상단 “프론트 배경화면” 선택
•
제약사항 :
◦
에셋 최대 등록 수량 : 20개(이미지 및 동영상 무관, 총합)
•
지원 에셋 스펙 :
◦
이미지 :
▪
용량 : 5MB
▪
비율 : 맞지 않는 경우 여백 검정색 레터박스 처리
▪
최대해상도 : 800 * 1280 px
◦
동영상 :
▪
용량 : 15MB
▪
시간 : 3 ~ 30초 제한
▪
비율 : 맞지 않는 경우 여백 검정색 레터박스 처리
•
미리보기 지원
◦
1개 선택시
▪
동영상 무한반복
▪
이미지 반복없이 계속적으로 노출
◦
N개 선택시
▪
동영상은 동영상의 길이(시간)만큼 재생, 이미지는 3초 노출
▪
선택된 순서대로 롤링 미리보기 지원
▪
이후 다음 순서의 에셋으로 이동
▪
마지막 에셋의 재생 이후 처음 에셋부터 재생
다수의 영상 혹은 이미지 에셋을 등록하고, 이를 매장에 적용한다.
•
지원 장비 :
◦
프론트
◦
프론트뷰
•
제약사항 :
◦
매장에서 개별로 수정 불가능(토브파에서만 수정 허용)
◦
장비당 최대 적용 수량 : 최대 10개를 선택 가능
▪
순서 지정 가능
▪
영상 및 이미지 혼합 지정 가능
▪
이미지는 롤링시 3초 유지 정책
매장에 어느 배경화면이 적용되어 있는지 확인이 가능하다.
•
미리보기 :
◦
row 호버링시 “미리보기” 버튼 노출 →
◦
클릭시 적용된 배경화면을 확인 가능(미리보기 모달)
•
수정하기 :
◦
row 호버링시 “수정하기” 버튼 노출 →
◦
클릭시 해당 매장에 적용된 프론트 배경화면들이 선택된 화면 호출
Encoding Spec
프론트에서 재생할 동영상은 아래 사양에 맞추어 인코딩되어야 합니다.
테스트시, 실장비에 대한 화면 변경을 하지 않도록 유의해주세요.
비디오
•
해상도: 800 x 1280 (5:8 비율)
•
프레임레이트: 최대 30fps
•
영상 길이: 최대 30초
•
코덱: HEVC (H.265) Main Profile Level 5.0
오디오
추후 정책변경에 대비해서 오디오 코덱을 명시했지만, 매장에서 불편하지 않도록 프론트 배경화면에서는 소리를 재생하지 않습니다.
•
코덱: AAC
•
비트레이트: 128kbp 이하
•
샘플레이트: 48kHz 이하
•
채널: Mono
컨테이너
•
포맷: MP4
•
파일크기: 최대 15MB
•
Fragmented MP4 (Fragment 크기 2초)
변환 예시
# 기본 예제 (고품질 설정)
ffmpeg -i input.mp4 \
-c:v libx265 \
-preset slow \
-profile:v main \
-level:v 5.0 \
-crf 20 \
-vf "fps=fps=30,crop=iw:iw*1.6:0:(ih-iw*1.6)/2,scale=800:1280" \
-b:v 3M \
-maxrate 4.5M \
-bufsize 6M \
-g 60 \
-keyint_min 60 \
-pix_fmt yuv420p \
-x265-params "bframes=8:b-adapt=2:rc-lookahead=60:aq-mode=3:aq-strength=1.0:deblock=-1,-1:psy-rd=2.0:psy-rdoq=1.0" \
-c:a aac \
-b:a 128k \
-ar 44100 \
-ac 1 \
-movflags faststart+frag_keyframe+empty_moov+default_base_moof \
-frag_duration 2000000 \
-t 30 \
output.mp4
Shell
복사
옵션 설명
# 코덱 및 프로파일
-c:v libx265 # HEVC (H.265) 코덱
-preset slow # 고품질 인코딩 (느리지만 품질 우수)
-profile:v main # Main Profile
-level:v 5.0 # Level 5.0
# 화질 및 비트레이트
-crf 20 # CRF 모드 (18-23이 고품질)
-b:v 3M # 타겟 비트레이트 3Mbps
-maxrate 4.5M # 최대 비트레이트 4.5Mbps
-bufsize 6M # 버퍼 크기 6M
# 비디오 필터 (해상도 및 FPS)
-vf "fps=fps=30,crop=iw:iw*1.6:0:(ih-iw*1.6)/2,scale=800:1280"
# fps=30: 프레임레이트를 30fps로 제한
# crop: 5:8 비율로 센터 크롭
# scale: 800x1280으로 리사이즈
# GOP 설정 (2초 키프레임 간격)
-g 60 # GOP 크기 (30fps * 2초)
-keyint_min 60 # 최소 키프레임 간격
# 픽셀 포맷
-pix_fmt yuv420p # YUV 4:2:0
# x265 고급 옵션
-x265-params "bframes=8:b-adapt=2:rc-lookahead=60:aq-mode=3:aq-strength=1.0:deblock=-1,-1:psy-rd=2.0:psy-rdoq=1.0"
# 오디오 설정
-c:a aac # AAC 코덱
-b:a 128k # 비트레이트 128kbps
-ar 44100 # 샘플레이트 44.1kHz (48kHz 이하)
-ac 1 # Mono (1채널)
# Fragmented MP4 설정
-movflags faststart+frag_keyframe+empty_moov+default_base_moof
# faststart: 빠른 재생 시작
# frag_keyframe: 키프레임마다 fragment 생성
# empty_moov: 스트리밍 최적화
# default_base_moof: fragment 오프셋 최적화
-frag_duration 2000000 # Fragment 크기 2초 (마이크로초 단위)
# 영상 길이 제한
-t 30 # 최대 30초
Plain Text
복사
