본문 바로가기

카테고리 없음

exoplayer 지원되는 형식

728x90
반응형

지원되는 형식

ExoPlayer가 지원하는 형식을 정의 할 때 "미디어 형식"은 여러 수준에서 정의된다는 점에 유의해야합니다. 최저 수준에서 최고 수준까지 다음과 같습니다.

  • 개별 미디어 샘플의 형식 (예 : 비디오 프레임 또는 오디오 프레임). 이들은 샘플 형식 입니다. 일반적인 비디오 파일에는 적어도 두 가지 샘플 형식의 미디어가 포함됩니다. 하나는 비디오 (예 : H.264)와 다른 하나는 오디오 (예 : AAC)입니다.
  • 미디어 샘플 및 관련 메타 데이터를 포함하는 컨테이너의 형식입니다. 이들은 컨테이너 형식 . 미디어 파일에는 일반적으로 파일 확장자로 표시되는 단일 컨테이너 형식 (예 : MP4)이 있습니다. 일부 오디오 전용 형식 (예 : MP3)의 경우 샘플 및 컨테이너 형식이 동일 할 수 있습니다.
  • DASH, SmoothStreaming 및 HLS와 같은 적응 형 스트리밍 기술. 이는 미디어 형식이 아니지만 ExoPlayer가 제공하는 지원 수준을 정의해야합니다.

다음 섹션에서는 가장 높은 수준에서 가장 낮은 수준까지 각 수준에서 ExoPlayer의 지원을 정의합니다. 마지막 두 섹션에서는 독립형 자막 형식 및 HDR 비디오 재생에 대한 지원에 대해 설명합니다.

적응 형 스트리밍

대시

ExoPlayer는 여러 컨테이너 형식으로 DASH를 지원합니다. 미디어 스트림은 디 먹싱되어야합니다. 즉, 비디오, 오디오 및 텍스트가 DASH 매니페스트의 개별 AdaptationSet 요소에 정의되어야합니다 (CEA-608은 아래 표에 설명 된 예외 임). 포함 된 오디오 및 비디오 샘플 형식도 지원되어야합니다 (자세한 내용은 샘플 형식 섹션 참조).

특색지원코멘트

컨테이너    
FMP4 Demuxed 스트림 만
WebM Demuxed 스트림 만
Matroska Demuxed 스트림 만
MPEG-TS 아니 계획된 지원 없음
선택 캡션 / 자막    
TTML 원시 또는 ISO / IEC 14496-30에 따라 FMP4에 내장
WebVTT 원시 또는 ISO / IEC 14496-30에 따라 FMP4에 내장
CEA-608 FMP4 비디오 스트림에 포함 된 SEI 메시지에 전달
메타 데이터    
EMSG 메타 데이터 FMP4에 포함
콘텐츠 보호    
Widevine "cenc"체계 : API 19+; "cbcs"체계 : API 25+
PlayReady SL2000 Android TV, "cenc"방식 만
ClearKey API 21+, "cenc"체계 만
라이브 재생    
정기적 인 라이브 재생  
대기 시간이 매우 짧은 CMAF 라이브 재생  

SmoothStreaming

ExoPlayer는 FMP4 컨테이너 형식으로 SmoothStreaming을 지원합니다. 미디어 스트림은 디 먹싱되어야합니다. 즉, 비디오, 오디오 및 텍스트는 SmoothStreaming 매니페스트의 고유 한 StreamIndex 요소에 정의되어야합니다. 포함 된 오디오 및 비디오 샘플 형식도 지원되어야합니다 (자세한 내용은 샘플 형식 섹션 참조).

특색지원코멘트

컨테이너    
FMP4 Demuxed 스트림 만
선택 캡션 / 자막    
TTML FMP4에 포함
콘텐츠 보호    
PlayReady SL2000 Android TV 만
라이브 재생    
정기적 인 라이브 재생  

HLS

ExoPlayer는 여러 컨테이너 형식으로 HLS를 지원합니다. 포함 된 오디오 및 비디오 샘플 형식도 지원되어야합니다 (자세한 내용은 샘플 형식 섹션 참조). 여기에 설명 된대로 HLS 콘텐츠 제작자가 고품질 HLS 스트림을 생성 할 것을 적극 권장 합니다 .

특색지원코멘트

컨테이너    
MPEG-TS  
FMP4 / CMAF  
ADTS (AAC)  
MP3  
선택 캡션 / 자막    
CEA-608  
WebVTT  
메타 데이터    
ID3 메타 데이터  
콘텐츠 보호    
AES-128  
샘플 AES-128 아니  
Widevine API 19 + ( "cenc"체계) 및 25 + ( "cbcs"체계)
PlayReady SL2000 Android TV 만
서버 제어    
델타 업데이트  
재생 목록 새로 고침 차단  
예압 힌트로드 차단 길이가 정의되지 않은 바이트 범위 제외
라이브 재생    
정기적 인 라이브 재생  
저 지연 HLS (Apple)  
저 지연 HLS (커뮤니티) 아니  

프로그레시브 컨테이너 형식

다음 컨테이너 형식의 스트림은 ExoPlayer에서 직접 재생할 수 있습니다. 포함 된 오디오 및 비디오 샘플 형식도 지원되어야합니다 (자세한 내용은 샘플 형식 섹션 참조).

컨테이너 형식지원코멘트

MP4  
M4A  
FMP4  
WebM  
Matroska  
MP3 일부 스트림은 고정 비트 전송률 검색을 통해서만 검색 가능 **
오그 Vorbis, Opus 및 FLAC 포함
WAV  
MPEG-TS  
MPEG-PS  
FLV 찾을 수 없음 *
ADTS (AAC) 고정 비트 레이트 검색을 사용해서 만 검색 가능 **
FLAC 코어 라이브러리 에서 FLAC 확장 또는 FLAC 추출기 사용 ***
AMR 고정 비트 레이트 검색을 사용해서 만 검색 가능 **
JPEG 모션 사진 MP4 콘텐츠 만 추출됩니다.

* 미디어 플레이어가 효율적인 방식으로 검색을 수행 할 수 있도록 컨테이너가 메타 데이터 (예 : 샘플 인덱스)를 제공하지 않기 때문에 검색이 지원되지 않습니다. 검색이 필요한 경우 더 적절한 컨테이너 형식을 사용하는 것이 좋습니다.

** 이러한 추출기에는 FLAG_ENABLE_CONSTANT_BITRATE_SEEKING일정한 비트 전송률 가정을 사용하여 근사 검색을 활성화하는 플래그가 있습니다. 이 기능은 기본적으로 활성화되어 있지 않습니다. 이 기능을 지원하는 모든 추출기에 대해이 기능을 활성화하는 가장 간단한 방법 DefaultExtractorsFactory.setConstantBitrateSeekingEnabled은 여기에 설명 된대로 사용하는  입니다.

*** FLAC 확장 추출기는 모든 API 레벨에서 프레임 워크에서 처리 할 수있는 원시 오디오를 출력합니다. 코어 라이브러리 그래서 FLAC의 FLAC 오디오 프레임 출력을 추출하고 (예를 들어, A A FLAC 디코더를 갖는 의존 MediaCodec ) 핸들 FLAC (API 레벨 (27)로부터 요구되는 디코더 또는 FFmpeg를 확장 FLAC으로 사용).  DefaultExtractorsFactory응용 프로그램이 내장되어있는 경우 확장 추출기를 사용 FLAC 확장 . 그렇지 않으면 코어 라이브러리 추출기를 사용합니다 .

RTSP

ExoPlayer는 실시간 및 주문형 RTSP를 모두 지원합니다. 지원되는 형식 및 네트워크 유형은 다음과 같습니다.

지원되는 형식

  • H264
  • AAC (ADTS 비트 스트림 포함)
  • AC3

지원되는 네트워크 유형

  • UDP 유니 캐스트를 통한 RTP (멀티 캐스트는 지원되지 않음)
  • 인터리브 된 RTSP, TCP를 사용하는 RTSP를 통한 RTP

샘플 형식

기본적으로 ExoPlayer는 Android의 플랫폼 디코더를 사용합니다. 따라서 지원되는 샘플 형식은 ExoPlayer가 아닌 기본 플랫폼에 따라 다릅니다. Android 장치에서 지원하는 샘플 형식은 여기 에 설명되어 있습니다 . 개별 장치는 나열된 형식 이외의 추가 형식을 지원할 수 있습니다.

Android의 플랫폼 디코더 외에도 ExoPlayer는 소프트웨어 디코더 확장을 사용할 수 있습니다. 이들은 수동으로 빌드하고이를 사용하려는 프로젝트에 포함해야합니다. 현재 AV1 , VP9 , FLAC , Opus  FFmpeg 용 소프트웨어 디코더 확장을 제공합니다 .

FFmpeg 확장

는 FFmpeg 연장 지지부는 서로 다른 오디오 샘플 다양한 형식을 디코딩. 확장의 README.md에 설명 된대로 확장을 빌드 할 때 포함 할 디코더를 선택할 수 있습니다 . 다음 표는 오디오 샘플 형식에서 해당 FFmpeg 디코더 이름으로의 매핑을 제공합니다.

샘플 형식디코더 이름

Vorbis 보비스
FLAC flac
ALAC Alac
PCM μ- 법칙 pcm_mulaw
PCM A- 법 pcm_alaw
MP1, MP2, MP3 mp3
AMR-NB Amrnb
AMR-WB amrwb
AAC aac
AC-3 ac3
E-AC-3 eac3
DTS, DTS-HD dca
TrueHD mlp truehd

독립형 자막 형식

ExoPlayer는 다양한 형식의 독립형 자막 파일을 지원합니다. 미디어 소스 페이지 에 설명 된대로 자막 파일을 사이드로드 할 수 있습니다 .

컨테이너 형식지원MIME 유형

WebVTT MimeTypes.TEXT_VTT
TTML / SMPTE-TT MimeTypes.APPLICATION_TTML
SubRip MimeTypes.APPLICATION_SUBRIP
SubStationAlpha (SSA / ASS) MimeTypes.TEXT_SSA

HDR 비디오 재생

ExoPlayer는 MP4의 Dolby Vision 및 Matroska / WebM의 HDR10 +를 포함하여 다양한 컨테이너에서 HDR (High Dynamic Range) 비디오 추출을 처리합니다. HDR 콘텐츠 디코딩 및 표시는 Android 플랫폼 및 장치의 지원에 따라 다릅니다. Android 버전에서 HDR 디코딩 / 디스플레이 기능 및 HDR 지원 제한 사항을 확인하는 방법에 대해 알아 보려면 HDR 비디오 재생  참조하십시오 .

특정 코덱 프로필에 대한 지원이 필요한 HDR 스트림을 재생할 때 ExoPlayer의 기본 MediaCodec선택기는 해당 프로필을 지원하지 않는 동일한 MIME 유형에 대한 다른 디코더가 상위에 표시 되더라도 해당 프로필을 지원하는 디코더 (사용 가능한 경우)를 선택합니다. 코덱 목록. 이로 인해 스트림이 동일한 MIME 유형에 대한 하드웨어 디코더의 기능을 초과하는 경우 소프트웨어 디코더를 선택할 수 있습니다.

728x90
반응형