Android 용 네이티브 SDK를 사용한 HEVC 선택

이 항목에서는 Android 용 Brightcove Native SDK가 HEVC 소스 및 변환을 선택하는 방법에 대해 알아 봅니다.

개요

H.265라고도하는 HEVC (High-Efficiency Video Coding)는 비디오 파일 크기를 줄여 고품질 재생을 허용하는 비디오 압축 표준입니다.

Android 용 Brightcove Native SDK는 다음 HEVC 선택 프로세스를 사용합니다.

  1. HEVC 소스 선택
  2. HEVC 변환 선택

HEVC 소스 선택

HEVC 소스 선택 프로세스는 Brightcove를 사용하여 비디오를 요청한 후에 시작됩니다. Catalog .

계정 구성에 따라Catalog응답에는 HEVC 변환이 있거나없는 여러 소스가 포함될 수 있습니다. 다음은 예입니다.

 "sources": [
  {
    "type": "application/dash+xml",
    "src": "http://manifest.prod.boltdns.net/manifest/v1/dash/live-baseurl/clear/4800266849001/11023209-08e4-40d4-9a8b-25aa659421e2/2s/manifest.mpd?fastly_token=ZYZ",
    "profiles": "urn:mpeg:dash:profile:isoff-live:2011"
  },
  {
    "type": "application/dash+xml",
    "src": "https://manifest.prod.boltdns.net/manifest/v1/dash/live-baseurl/clear/4800266849001/11023209-08e4-40d4-9a8b-25aa659421e2/2s/manifest.mpd?fastly_token=XYZ",
    "profiles": "urn:mpeg:dash:profile:isoff-live:2011"
  },
  {
    "type": "application/dash+xml",
    "src": "http://manifest.prod.boltdns.net/manifest/v2/dash/live-baseurl/clear/avc1_hvc1_mp4a/4800266849001/11023209-08e4-40d4-9a8b-25aa659421e2/2s/manifest.mpd?fastly_token=XYZ",
    "profiles": "urn:mpeg:dash:profile:isoff-live:2011"
  },
  {
    "type": "application/dash+xml",
    "src": "https://manifest.prod.boltdns.net/manifest/v2/dash/live-baseurl/clear/avc1_hvc1_mp4a/4800266849001/11023209-08e4-40d4-9a8b-25aa659421e2/2s/manifest.mpd?fastly_token=XYZ",
    "profiles": "urn:mpeg:dash:profile:isoff-live:2011"
  }
]

이 예에는 4 개의 DASH 소스가 있습니다.

  • 비 HEVC HTTP 소스 1 개
  • 비 HEVC HTTPS 소스 1 개
  • HEVC HTTP 소스 1 개
  • HEVC HTTPS 소스 1 개

HEVC 소스에는 문자열이 포함되어 있습니다. hvc URL에서.

Android 소스 선택 기용 네이티브 SDK는 HEVC 소스를 선호합니다. 위의 예에서는 HEVC HTTPS 소스를 선택합니다.

Native SDK는에 정의 된 기본 선택 프로세스를 계속합니다. 기계적 인조 인간: 소스 선택문서:

  1. HTTP보다 HTTPS 선호
  2. HLS보다 DASH 선호
  3. 재생을 위해 HLS를 선택하는 경우 사용 가능한 가장 높은 버전의 HLS를 선호합니다.

HEVC 변환 선택

수집 구성에 따라 HEVC 소스가 다른 변환에 포함될 수 있습니다. 다음이있을 수 있습니다.

HEVC 변환 만

비디오 소스의 변환에 HEVC 코덱 만있는 경우 관련된 변환 선택이 없습니다. ExoPlayer는 장치 기능과 사용 가능한 대역폭을 고려하여 적절한 변환을 선택합니다.

HEVC 및 기타 코덱의 혼합

비디오 소스에 HEVC 및 기타 코덱 (예 : AVC)이 혼합 된 렌 디션이있는 경우 렌 디션 선택 프로세스가 호출됩니다. Native SDK가 소스를 ExoPlayer에로드하면 SelectionOverride비디오 변환이 다른 코덱보다 HEVC를 선호합니다.

장치에서 렌 디션 형식을 지원하는 비디오의 경우 렌 디션 프로세스는 다음과 같습니다.

  1. Native SDK는 모든 HEVC 변환을 선택합니다.
  2. 동일한 해상도로 기존 HEVC를 복제하는 비 HEVC 변환을 무시합니다.

이로 인해 ExoPlayer는 대부분의 경우 HEVC를 선호합니다. 다음은 두 가지 가능한 시나리오입니다.

코덱 혼합 복제

이 시나리오에서는 대부분의 HEVC 및 AVC 코덱 해상도가 중복됩니다. 예:

AVC <Representation bandwidth="453000" height="270" width="480">
AVC <Representation bandwidth="704000" height="360" width="640">
AVC <Representation bandwidth="903000" height="360" width="640">
AVC <Representation bandwidth="1202000" height="540" width="960">
AVC <Representation bandwidth="1989000" height="720" width="1280">
AVC <Representation bandwidth="2478000" height="720" width="1280">
AVC <Representation bandwidth="3458000" height="720" width="1280">
AVC <Representation bandwidth="3761000" height="720" width="1280">
HVC <Representation bandwidth="304000" height="270" width="480">
HVC <Representation bandwidth="548000" height="360" width="640">
HVC <Representation bandwidth="993000" height="432" width="768">
HVC <Representation bandwidth="1301000" height="576" width="1024">
HVC <Representation bandwidth="1605000" height="720" width="1280">
HVC <Representation bandwidth="2809000" height="720" width="1280">

위의 비디오 변환이 주어지면 Brightcove Natvie SDK는 다음 변환을 선택합니다.

AVC <Representation bandwidth="1202000" height="540" width="960">
HVC <Representation bandwidth="304000" height="270" width="480">
HVC <Representation bandwidth="548000" height="360" width="640">
HVC <Representation bandwidth="993000" height="432" width="768">
HVC <Representation bandwidth="1301000" height="576" width="1024">
HVC <Representation bandwidth="1605000" height="720" width="1280">
HVC <Representation bandwidth="2809000" height="720" width="1280">

해상도가 기존 HEVC 변환을 복제하지 않기 때문에 AVC 변환이 하나만 선택되었습니다.

반반

이 시나리오에는 AVC 코덱을 사용하는 저해상도 변환과 HVC 코덱을 사용하는 고해상도 변환이 있습니다. 예:

AVC <Representation bandwidth="453000" height="270" width="480">
AVC <Representation bandwidth="704000" height="360" width="640">
AVC <Representation bandwidth="903000" height="360" width="640">
AVC <Representation bandwidth="1202000" height="540" width="960">
AVC <Representation bandwidth="3761000" height="720" width="1280">
HVC <Representation bandwidth="1301000" height="576" width="1024">
HVC <Representation bandwidth="1605000" height="720" width="1280">
HVC <Representation bandwidth="2809000" height="720" width="1280">

이 경우 HEVC 변환을 복제하는 해상도가있는 AVC 코덱이 없기 때문에 Native SDK가 모든 변환을 선택하여 ExoPlayer가 사용 가능한 대역폭을 기반으로 변환을 선택할 수 있도록합니다.

Native SDK는이 시나리오의 모든 경우에 HEVC 선택을 강제하지 않으므로 최저 변환을 높은 비트 전송률 HEVC 변환으로 제한하지 않습니다. 이로 인해 네트워크 연결 상태가 좋지 않은 사용자 환경이 나빠질 수 있습니다.