압축된 DASH 매니페스트 - AWS Elemental MediaPackage

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

압축된 DASH 매니페스트

AWS Elemental MediaPackage에서는 DASH 매니페스트를 압축하여 VOD 및 라이브용 저전력 장치의 성능 및 처리를 개선하는 기능을 사용할 수 있습니다.

MediaPackage의 기본 DASH 매니페스트는 각 표현(트랙)에 대한 중복 데이터를 포함합니다. 일부 플레이어의 경우 이 모든 데이터가 포함된 매니페스트를 처리하기가 어렵고 느립니다. 부담을 좀 줄이기 위해 MediaPackage가 Representation 객체에서 AdaptationSet 객체로 일부 속성을 이동하여 매니페스트를 압축할 수 있습니다. 이런 식으로, 매니페스트의 표현마다 속성을 정의하기 보다는 상위 수준에서 한 번 속성이 정의됩니다. 그러면 표현이 적응 세트에서 이 속성을 상속합니다.

예 기본 DASH 매니페스트

다음 예제에서 SegmentTemplate 객체와 그 모든 요소가 Representation.마다 나열됩니다. 매니페스트의 적응 세트마다 이 레이아웃이 동일하게 적용됩니다.

<AdaptationSet mimeType="video/mp4" segmentAlignment="true" subsegmentAlignment="true" startWithSAP="1" subsegmentStartsWithSAP="1" bitstreamSwitching="true"> <Representation id="1" width="640" height="360" frameRate="30/1" bandwidth="749952" codecs="avc1.640029"> <SegmentTemplate timescale="30000" media="index_video_1_0_$Number$.mp4?m=1543947824" initialization="index_video_1_0_init.mp4?m=1543947824" startNumber="1"> <SegmentTimeline> <S t="62000" d="60000" r="9"/> </SegmentTimeline> </SegmentTemplate> </Representation> <Representation id="2" width="854" height="480" frameRate="30/1" bandwidth="1000000" codecs="avc1.640029"> <SegmentTemplate timescale="30000" media="index_video_3_0_$Number$.mp4?m=1543947824" initialization="index_video_3_0_init.mp4?m=1543947824" startNumber="1"> <SegmentTimeline> <S t="62000" d="60000" r="9"/> </SegmentTimeline> </SegmentTemplate> </Representation> <Representation id="3" width="1280" height="720" frameRate="30/1" bandwidth="2499968" codecs="avc1.640029"> <SegmentTemplate timescale="30000" media="index_video_5_0_$Number$.mp4?m=1543947824" initialization="index_video_5_0_init.mp4?m=1543947824" startNumber="1"> <SegmentTimeline> <S t="62000" d="60000" r="9"/> </SegmentTimeline> </SegmentTemplate> </Representation> </AdaptationSet>
예 압축된 DASH 매니페스트

이 예제에서 SegmentTemplate 객체와 그 모든 요소가 하나로 축소되고 AdaptationSet로 옮겨집니다. 이 적응 세트의 각 표현에 다음 템플릿이 동일하게 사용된다는 것을 재생 디바이스가 이해합니다.

<AdaptationSet mimeType="video/mp4" segmentAlignment="true" subsegmentAlignment="true" startWithSAP="1" subsegmentStartsWithSAP="1" bitstreamSwitching="true"> <SegmentTemplate timescale="30000" media="index_video_$RepresentationID$_0_$Number$.mp4?m=1543947824" initialization="index_video_$RepresentationID$_0_init.mp4?m=1543947824" startNumber="1"> <SegmentTimeline> <S t="62000" d="60000" r="9"/> </SegmentTimeline> </SegmentTemplate> <Representation id="1" width="640" height="360" frameRate="30/1" bandwidth="749952" codecs="avc1.640029"/> <Representation id="2" width="854" height="480" frameRate="30/1" bandwidth="1000000" codecs="avc1.640029"/> <Representation id="3" width="1280" height="720" frameRate="30/1" bandwidth="2499968" codecs="avc1.640029"/> </AdaptationSet>

DASH 매니페스트 압축에 대한 자세한 내용은 AWS Elemental MediaPackage에서 매니페스트를 압축하는 방법을 참조하십시오.

AWS Elemental MediaPackage에서 매니페스트를 압축하는 방법

AWS Elemental MediaPackage 콘솔에서 DASH 매니페스트를 압축하려면 DASH 엔드포인트의 매니페스트 레이아웃에서 압축을 선택합니다. 적시에 트랙을 사용할 수 있도록 MediaPackage에서는 소스 콘텐츠의 프레임 속도와 오디오 샘플링 속도를 확인하여, 매니페스트를 압축할 수 있는지 결정합니다.

참고

캡션 트랙에 항상 같은 속도가 사용되므로 MediaPackage는 항상 캡션으로 적응 세트를 압축합니다.

MediaPackage에서는 다음과 같은 작업을 수행합니다.

  • 적응 세트의 모든 표현에서 속도가 동일하면 MediaPackage가 모든 SegmentTemplate 객체를 하나로 축소하고 AdaptationSet 수준으로 옮깁니다. 이런 식으로, 템플릿의 정보가 매니페스트에서 반복되지 않습니다. 재생 디바이스가 모든 표현에 같은 템플릿 정보를 사용할 수 있도록 MediaPackage가 $RepresentationID$ 변수를 mediainitialization 요청 URL에 추가합니다. 재생 디바이스가 이 변수를 현재 요청 중인 표현의 ID로 바꿉니다. 또한 MediaPackage가 ContentProtection 요소를 적응 세트로 이동합니다(있을 경우).

  • 전체 표현에서 속도가 다르면 MediaPackage가 가장 빈번한 속도로 SegmentTemplate을 압축하고 AdaptationSet로 이동합니다. 속도가 다른 표현은 세그먼트 템플릿을 유지합니다. 표현의 속도가 적응 세트의 속도보다 우선합니다.

  • 비디오 적응 세트 하나에 사용 중인 프레임 속도가 2개일 경우 MediaPackage에서 다음과 같이 압축합니다.

    • 24와 48이 사용되면 압축된 템플릿에서 프레임 속도에 48, 시간 기준에 48000이 사용됩니다.

    • 25와 50이 사용되면 압축된 템플릿에서 프레임 속도에 50, 시간 기준에 50000이 사용됩니다.

    • 29.97과 59.94가 사용되면 압축된 템플릿에서 프레임 속도에 59.95, 시간 기준에 60000이 사용됩니다.

    • 30과 60이 사용되면 압축된 템플릿에서 프레임 속도에 60, 시간 기준에 60000이 사용됩니다.

    사용 중인 비디오 프레임 속도가 2개지만 위의 이중 패턴 중 하나가 아닐 경우 이 세트를 압축할 수 없습니다.

  • 적응 세트에서 전체 표현에 중복 속도가 없으면 이 세트를 압축할 수 없습니다.