| 구분 | 설명 | 예시 |
|---|---|---|
| 코덱 (codec) | Coder-Decoder. 비·오디오 데이터를 압축(Encoding)→ 전송/저장 ↔ 해제(Decoding)→ 재생/후처리 | AAC · MP3 · Opus · Speex · Vorbis · H.264/AVC · H.265/HEVC |
| 컨테이너 (container / file format) | 여러 트랙(오디오·비디오·자막 등)을 하나로 래핑해주고, 메타•타임스탬프 관리 | MP4 · fMP4 · WebM · Matroska(MKV) · Ogg · MPEG-TS |
| 구조 | 특징 |
|---|---|
Init segment = ftyp + moovMedia segment = moof + mdat 반복 | - 네트워크로 “조각” 단위 전송 → MSE, DASH, HLS(CMAF) 에서 사용 - MP4 규격이라 광범위한 플레이어·CDN 호환 |
CMAF(공통 미디어 포맷)는 실질적으로 “HLS/DASH용 fMP4” 표준이라고 보면 됨.
https://thompsonng.blogspot.com/2010/11/mp4-file-format.html
| 항목 | Speex | Opus (Speex + CELT 계열의 진화형) |
|---|---|---|
| 개발 주체 | Xiph.org (2002) | IETF 표준 RFC 6716, Xiph.org + Mozilla + Google |
| 최적화 대역폭 | 8 / 16 / 32 kHz (좁은·넓은·초광대역) 음성 전용 | 48 kHz 고정 (내부 resample) 음성·음악 겸용 |
| 지연(Latency) | 30 ms+ (프레임 20 ms· 온전한 패킷 필요) | 2.5 ~ 60 ms 설정 가능 → WebRTC Low-latency |
| 압축 효율 | 2–24 kbps : 음성엔 OK, 음악 품질 ↓ | 8 ~ 128 kbps ↔ 동일 비트레이트에서 Speex ↑ |
| 라이선스 | BSD-style, 특허 無 (이미 만료) | 완전 로열티 free |
| 지원 현황 | 구형 VoIP(에코캔슬), 임베디드 MCU | WebRTC·Discord·Zoom, Android / iOS(AVFoundation 불가), FFmpeg, GStreamer |
| 브라우저 네이티브 | Ogg·WebM 컨테이너 전용 decodeAudioData 가능fMP4 불가 | Ogg·WebM·(fMP4 제한적) Chrome 94+ 일부 지원 |
| 장점 | ‣ 저사양 CPU OK ‣ 폭넓은 음성 연구자료 | ‣ 고음질 / 저지연 ‣ 음악도 품질 우수 ‣ 미래 표준(AV1+aac) |
| 단점 | ‣ 사장(死藏) 코덱 : 메인터넌스 중단 ‣ 새 브라우저·SDK엔 미탑재 | ‣ fMP4와 미묘한 호환성 (Safari·iOS는 수신만) ‣ 구형 디바이스 HW 디코더 부재 |
| 목적 | 추천 조합 | 비고 |
|---|---|---|
| 웹 재생(MSE/HTML5) | WebM/Opus ⟶ Chrome·Firefox·Edge MP4/H.264+AAC ⟶ Safari 포함 전브라우저 | WebM Opus > 재생 시 FFmpeg wasm 필요 無 |
| 실시간 L-Low Latency | fMP4/Opus (CMAF, MSE) | WebRTC와 동일 코덱, 단 Safari 14- 는 Audio Only 제한 |
| 파일 다운로드(저장) | MP4/AAC, MP4/H.264 (범용) WebM/Opus (저용량) | iOS 기본 Player = MP4 전용 |
| 무손실 아카이브 | WAV(PCM) or FLAC | WAV는 JS Blob 생성·스트리밍 난해, 용량 ↑ |
| 컨테이너 | 오디오 | 비디오 | 비고 |
|---|---|---|---|
| MP4 | AAC | H.264 | 가장 안전 |
| WebM | Opus | VP8/VP9/AV1 | iOS 사파리 미지원(AVFoundation X) |
| CMAF (HLS/DASH) | AAC or Opus(실험) | H.264/H.265/AV1 | 점차 통합 표준 |
| 검토 항목 | ✔︎ 장점 | ✖︎ 이슈·대안 |
|---|---|---|
| 스트리밍 지연 | ‘fragment’ 덕분에 < 1 초도 가능 | 동일 실시간 성능은 WebM Chunked, LL-HLS도 달성 |
| CDN·플레이어 지원 | HLS(DASH) 인프라 그대로 활용 | 오디오 전용 Opus → Safari·iOS 재생 실패 시 fallback 필요 |
| 후처리(편집·Waveform) | MP4 파서·ISO BMFF 툴 풍부 | Opus 트랙 상위 호환 도구 적음 → Remux 필요 |
| 표준화 방향 | CMAF Audio (ISO/IEC 23000-19) 초안에 Opus 포함 | 아직 모든 디바이스가 수용하진 못함 |