지원되는 미디어 형식

이 문서에서는 Android 플랫폼에서 제공하는 미디어 코덱, 컨테이너 및 네트워크 프로토콜 지원에 관해 설명합니다.

아래 표는 Android 플랫폼에 내장된 미디어 형식 지원을 설명합니다. '예'는 모든 Android 버전을 실행하는 휴대기기와 태블릿에서 사용 가능한 형식을 의미합니다. 특정 Android 플랫폼이 지정된 경우, 해당 버전 및 모든 이후 버전을 실행하는 핸드셋과 태블릿에서 형식을 사용할 수 있습니다. 이전 버전에서도 이 형식을 사용할 수 있지만 보장되지는 않습니다. 핸드셋과 태블릿을 제외한 폼 팩터에서는 미디어 형식 지원이 다를 수 있습니다.

특정 휴대기기가 이 표에 나열되지 않은 추가 형식 또는 파일 형식을 지원할 수도 있습니다. 또한 MediaCodec을 직접 사용하면 지원되는 파일 형식 및 컨테이너 형식과 관계없이 사용 가능한 모든 미디어 형식에 액세스할 수 있습니다.

오디오 지원

형식 인코더 디코더 세부정보 파일 형식
컨테이너 형식
AAC LC 표준 샘플링 레이트가 8~48kHz인 모노/스테레오/5.0/5.1 콘텐츠 지원 • 3GPP (.3gp)
• MPEG-4 (.mp4, .m4a)
• ADTS 원본 AAC (.aac, Android 3.1 이상에서 디코딩, Android 4.0 이상에서 인코딩, ADIF 지원되지 않음)
• MPEG-TS (.ts, 탐색 불가, Android 3.0 이상)
HE-AACv1(AAC+) Android 4.1 이상
HE-AACv2(향상된 AAC+)   표준 샘플링 레이트가 8~48kHz인 스테레오/5.0/5.1 콘텐츠 지원
xHE-AAC   Android 9+ 표준 샘플링 레이트가 8~48kHz인 최대 8ch 콘텐츠 지원
AAC ELD(개선된 저지연 AAC) Android 4.1 이상 Android 4.1 이상 표준 샘플링 레이트가 16~48kHz인 모노/스테레오 콘텐츠 지원
AMR-NB 8kHz에서 샘플링된 4.75~12.2kbps • 3GPP (.3gp)
• AMR (.amr)
AMR-WB 16kHz에서 샘플링된 6.60kbit/초~23.85kbit/초 9레이트
FLAC Android 4.1 이상 Android 3.1 이상 모노/스테레오(다중 채널 없음) 최대 48kHz의 샘플링 레이트(48~44.1kHz 다운샘플러에는 저역 통과 필터가 없으므로 44.1kHz 출력 기기에서는 최대 44.1kHz가 권장됨). 16비트 권장됨(24비트에는 디더가 적용되지 않음) • FLAC (.flac)
• MPEG-4 (.mp4, .m4a, Android 10 이상)
MIDI   MIDI 유형 0 및 1. DLS 버전 1 및 2. XMF 및 모바일 XMF. 벨소리 형식 RTTTL/RTX, OTA 및 iMelody 지원 • 유형 0 및 1 (.mid, .xmf, .mxmf)
• RTTTL/RTX (.rtttl, .rtx)
• OTA (.ota)
• iMelody (.imy)
MP3   모노/스테레오 8-320Kbps 상수(CBR) 또는 가변 비트 전송률(VBR) • MP3 (.mp3)
• MPEG-4 (.mp4, .m4a, Android 10 이상)
• Matroska (.mkv, Android 10 이상)
Opus Android 10+ Android 5.0 이상 • Ogg (.ogg)
• Matroska (.mkv)
PCM/WAVE Android 4.1 이상 8비트 및 16비트 선형 PCM(최대 하드웨어 제한 레이트) 8,000Hz, 16,000Hz, 44,100Hz에서 원시 PCM 녹음 샘플링 레이트 WAVE(.wav)
Vorbis     • Ogg (.ogg)
• Matroska (.mkv, Android 4.0 이상)
• MPEG-4 (.mp4, .m4a, Android 10 이상)

동영상 지원

동영상 형식

형식 인코더 디코더 세부정보 파일 형식
컨테이너 형식
H.263 Android 7.0 이상에서는 H.263 지원이 선택사항 • 3GPP (.3gp)
• MPEG-4 (.mp4)
• Matroska (.mkv)
H.264 AVC
기준 프로필 (BP)
Android 3.0+ • 3GPP (.3gp)
• MPEG-4 (.mp4)
• MPEG-TS (.ts, AAC 오디오만 해당, 탐색 불가, Android 3.0 이상)
• Matroska (.mkv)
H.264 AVC
기본 프로필 (MP)
Android 6.0 이상 디코더가 필수, 인코더 권장됨
H.265 HEVC Android 5.0 이상 휴대기기용 기본 프로필 레벨 3, Android TV용 기본 프로필 레벨 4.1 • MPEG-4 (.mp4)
• Matroska (.mkv)
MPEG-4 SP     3GPP(.3gp)
VP8 Android 4.3 이상 Android 2.3.3 이상 Android 4.0 이상에서만 스트리밍 가능 WebM (.webm)
• Matroska (.mkv, Android 4.0 이상)
VP9 Android 4.4 이상 WebM (.webm)
• Matroska (.mkv)
AV1 Android 14 이상 Android 10+ Android 14부터 인코더와 디코더가 필수입니다. • MPEG-4 (.mp4)
• Matroska (.mkv)

동영상 인코딩 권장사항

아래 표에는 H.264 기준 프로필 코덱을 사용한 재생에 권장되는 Android 미디어 프레임워크 동영상 인코딩 프로필과 매개변수가 나열되어 있습니다. 동일한 권장사항이 Android 6.0 이상에서만 사용 가능한 기본 프로필 코덱에도 적용됩니다.

  SD(낮은 화질) SD(고화질) HD 720p(모든 기기에서 해당 사항 없음)
동영상 해상도 176x144px 480x360px 1280x720px
동영상 프레임 속도 12fps 30fps 30fps
동영상 비트 전송률 56Kbps 500Kbps 2Mbps
오디오 코덱 AAC-LC AAC-LC AAC-LC
오디오 채널 1(모노) 2(스테레오) 2(스테레오)
오디오 비트 전송률 24Kbps 128Kbps 192Kbps

아래 표에는 VP8 미디어 코덱을 사용하여 재생하기 위해 권장되는 Android 미디어 프레임워크 동영상 인코딩 프로필과 매개변수가 나열되어 있습니다.

  SD(낮은 화질) SD(고화질) HD 720p(모든 기기에서 해당 사항 없음) HD 1080p(모든 기기에서 해당 사항 없음)
동영상 해상도 320x180px 640x360px 1280x720px 1920x1080px
동영상 프레임 속도 30fps 30fps 30fps 30fps
동영상 비트 전송률 800Kbps 2Mbps 4Mbps 10Mbps

동영상 디코딩 권장사항

기기 구현은 모든 VP8, VP9, H.264, H.265 코덱의 동일한 스트림 내에서 표준 Android API를 통해 실시간으로 동적 동영상 해상도와 프레임 속도 전환을 지원하고 기기의 각 코덱이 지원하는 최대 해상도까지 지원해야 합니다.

Dolby Vision 디코더를 지원하는 구현은 다음 가이드라인을 따라야 합니다.

  • Dolby Vision을 지원하는 추출기를 제공해야 합니다.
  • 기기 화면이나 표준 동영상 출력 포트 (예: HDMI)에 Dolby Vision 콘텐츠를 올바르게 표시합니다. 합니다(MUST).
  • 결합된 Dolby Vision 레이어의 트랙 색인과 이전 버전과 호환되는 기본 레이어(있는 경우)의 트랙 색인을 동일하게 설정합니다.

동영상 스트리밍 요구사항

HTTP 또는 RTSP를 통해 스트리밍되는 동영상 콘텐츠에는 추가 요구사항이 있습니다.

  • 3GPP 및 MPEG-4 컨테이너의 경우 moov Atom은 모든 mdat Atom 앞에 있어야 하지만 ftyp Atom 뒤에 있어야 합니다.
  • 3GPP, MPEG-4 및 WebM 컨테이너의 경우 동일한 시차에 상응하는 오디오 및 동영상 샘플의 크기는 각각 500KB일 수 있습니다. 오디오/동영상 드리프트를 최소화하려면 작은 청크 크기로 오디오와 동영상을 인터리빙하는 것을 고려하세요.

이미지 지원

형식 인코더 디코더 세부정보 파일 형식
컨테이너 형식
BMP     BMP(.bmp)
GIF     GIF(.gif)
JPEG 기본+프로그레시브 JPEG(.jpg)
PNG   PNG(.png)
WebP Android 4.0 이상
무손실: Android 10 이상
투명성: Android 4.2.1 이상
Android 4.0 이상
무손실: Android 4.2.1 이상
투명성: Android 4.2.1 이상
Android 10에서는 100 품질을 사용하여 손실 없는 인코딩을 구현할 수 있습니다. WebP(.webp)
HEIF   Android 8.0 이상   HEIF(.heic, .heif)
AVIF (기준 프로필) Android 14 이상 Android 14 이상 Android 14부터 인코더와 디코더가 필수입니다. AVIF (.avif)

네트워크 프로토콜

다음 네트워크 프로토콜이 오디오 및 동영상 재생에 지원됩니다.

  • RTSP(RTP, SDP)
  • HTTP/HTTPS 프로그레시브 스트리밍
  • HTTP/HTTPS 실시간 스트리밍 임시 프로토콜:
    • MPEG-2 TS 미디어 파일 전용
    • 프로토콜 버전 3 Android 4.0 이상
    • 프로토콜 버전 2 Android 3.x
    • Android 3.0 이전에는 지원되지 않음

참고: HTTPS가 Android 3.1 이전에는 지원되지 않습니다.

HDR 동영상 형식

OEM은 Android HDR 아키텍처를 통해 선택한 모든 HDR 형식을 사용 설정할 수 있으며, 이 아키텍처는 10비트 버퍼, 메타데이터 (정적, 동적 및 없음), 전송 함수, 색공간 처리 등 HDR 형식의 핵심 요구사항을 제공합니다.

개발자를 위한 일관성을 보장하고 주요 HDR 사용 사례를 처리하기 위해 OEM은 HDR을 지원하는 기기에서 다음과 같은 몇 가지 기본 형식을 지원해야 합니다.

  • 영화 스트리밍과 같은 전문 콘텐츠 재생에는 HDR10이 필요합니다.
  • 사용자 제작 콘텐츠 캡처 및 재생의 경우 HLG10이 모든 Android 기기에서 일관된 환경을 제공해야 합니다.

HDR 지원을 추가하는 OEM은 이러한 형식을 지원해야 하지만 HDR10+ 또는 Dolby Vision과 같은 추가 형식도 지원할 수 있습니다.

형식 전송 함수 Metadata 코덱 비트 심도
HLG10 HLG 아니요 공조시스템 10비트
HDR10 실점 정적 공조시스템 10비트
HDR10+ 실점 정적 공조시스템 10비트
Dolby Vision 8.4 HLG 동적 공조시스템 10비트

형식 처리 권장사항

캡처 형식 업로드 형식 전송 형식
HLG 앱 백엔드에서 HDR HLG 지원 HDR (HLG)을 지원하는 기기:

HLG

기기가 HDR을 지원합니다 (HLG는 PQ만 지원하지 않음).

SDR (HLG에서 백엔드의 SDR로 톤 매핑)

HDR을 지원하지 않는 기기: SDR (HLG에서 백엔드의 SDR로 톤 매핑)

사용 사례 2: 기본 카메라 캡처 또는 사용자 갤러리에서 가져오기 (앱 백엔드는 HDR을 지원함)

캡처 형식 업로드 형식 전송 형식
HLG HLG 인앱 캡처 사용 사례와 동일
HDR10+ HLG

Transformer API를 사용하여 업로드하기 전에 HDR10+ (PQ)에서 HLG로 톤 매핑

인앱 캡처 사용 사례와 동일
DV8.4 HLG

(DV8.4는 HLG를 사용하고 비트스트림은 HLG로 작동하므로 톤 매핑이 필요하지 않음)

인앱 캡처 사용 사례와 동일

사용 사례 3: 앱 백엔드가 HDR을 지원하지 않음

캡처 형식 업로드 형식 전송 형식
모든 형식 SDR

Transformer API를 사용하여 업로드하기 전에 HLG에서 SDR로 톤 매핑

SDR