멀티미디어
fMP4
다른 이름: Fragmented MP4 , frag-MP4 , .m4s , CMAF
정의
Fragmented MP4. ISO BMFF 기반 스트리밍 최적화 컨테이너. 단일 moov(초기화 세그먼트) + 다수 moof+mdat(미디어 세그먼트) 구조. HLS, DASH, CMAF 표준 포맷. TS 대비 효율적, HDR/멀티오디오 지원
상세 설명
기술 스펙
- 초기화 세그먼트: ftyp + moov (코덱, 타임스케일 정보)
- 미디어 세그먼트: moof(Movie Fragment) + mdat(Media Data)
- moof 구조: mfhd(Fragment Header), traf(Track Fragment)
- tfhd(Track Fragment Header): track_ID, default sample 정보
- trun(Track Fragment Run): 샘플 크기, 오프셋, 타임스탬프
- sidx(Segment Index Box): 선택적, 세그먼트 인덱스
- emsg(Event Message): 타이밍 메타데이터 (광고 삽입 등)
실무 활용
- HLS: iOS 10+ 권장 포맷 (.m4s, .mp4)
- DASH: 표준 세그먼트 포맷
- CMAF: HLS+DASH 통합 포맷
- MSE(Media Source Extensions): 브라우저 ABR 플레이어
장점
- TS 대비 효율: 5~10% 더 작은 파일
- 풍부한 메타데이터: 챕터, 자막, 다국어 오디오
- HDR 지원: HDR10, Dolby Vision, HLG
- 랜덤 액세스: sidx로 빠른 탐색
단점 및 제약
- 레거시 호환: 구형 HLS 플레이어 TS만 지원
- 복잡한 구조: TS 대비 파싱 복잡도 높음
- 초기화 세그먼트: 추가 요청 필요
호환성
iOS 10+, Safari 10+, Chrome, Firefox, Edge, Android 4.4+, HLS.js, dash.js, Shaka Player
표준 정보
표준화 기구: ISO/IEC 14496-12 (ISO BMFF)
출시 연도: 2009년