매니페스트 필터링 - AWS Elemental MediaPackage

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

매니페스트 필터링

매니페스트 필터링을 사용하면 AWS Elemental MediaPackage은(는) 재생 요청에 추가된 쿼리에서 지정한 파라미터를 기반으로 클라이언트 매니페스트를 동적으로 생성합니다. 이를 통해 프리미엄 4K HEVC 콘텐츠에 대한 최종 사용자 액세스를 제한하거나 특정 장치 유형 및 오디오 샘플 레이트 범위를 대상으로 하는 등의 작업을 단일 엔드포인트에서 수행할 수 있습니다. 이전에는 이 동작을 수행하려면 여러 엔드포인트를 구성해야 했습니다. MediaPackage 이제 동일한 엔드포인트에서 다양한 클라이언트 매니페스트를 동적으로 생성할 수 있는 비용 효율적인 방법을 제공합니다.

매니페스트 필터 작업

매니페스트 필터를 사용하면 쿼리에서 지정한 특성과 일치하는 오디오 및 비디오 스트림만 결과 매니페스트에 포함됩니다. 매니페스트 필터가 사용되지 않으면 수집된 모든 스트림이 엔드포인트 출력 스트림에 있습니다. 엔드포인트에 대한 스트림 필터(예: 최소 비디오 비트레이트)를 설정한 경우는 예외입니다. 이 경우 매니페스트 필터는 스트림 필터 다음에 적용되므로 출력이 스큐될 수 있어 권장되지 않습니다.

매니페스트 필터링은 다음에서 지원하는 모든 엔드포인트 유형에서 사용할 수 있습니다. MediaPackage

  • Apple HLS

  • DASH-ISO

  • Microsoft Smooth Streaming

  • CMAF

매니페스트 필터링을 사용하려면 재생 요청에 aws.manifestfilter 쿼리 파라미터를 추가하십시오. MediaPackage MediaPackage 쿼리를 평가하고 해당 쿼리 매개변수를 기반으로 클라이언트 매니페스트를 제공합니다. 매니페스트 쿼리는 대소문자를 구분하지 않으며 최대 1024자까지 사용할 수 있습니다. 쿼리의 형식이 잘못되었거나 쿼리 파라미터와 일치하는 스트림이 없는 경우, MediaPackage 은(는) 불완전하거나 빈 매니페스트를 반환합니다. 쿼리 구문에 대해서는 다음 단원을 참조하십시오.

참고

Apple HLS 또는 CMAF 엔드포인트를 사용하는 경우 특별한 조건이 적용됩니다. 이러한 조건에 대한 자세한 내용은 HLS 및 CMAF 매니페스트에 대한 특별 조건 단원을 참조하십시오.

쿼리 구문

기본 쿼리 파라미터는 aws.manifestfilter이며, 그 뒤에는 선택적 파라미터 이름과 값 페어가 옵니다. 쿼리를 ?aws.manifestfilter= 구성하려면 MediaPackage 엔드포인트 URL 끝에 매개 변수 이름과 값을 차례로 추가합니다. 사용 가능한 모든 파라미터 목록은 매니페스트 필터 쿼리 파라미터 단원을 참조하십시오.

Apple HLS 필터 쿼리는 다음과 같을 수 있습니다.

https://example-mediapackage-endpoint.mediapackage.us-west-2.amazonaws.com/out/v1/examplemediapackage/index.m3u8?aws.manifestfilter=audio_sample_rate:0-44100;video_bitrate:0-2147483647;video_codec:h265;audio_language:fr,en-US,de

쿼리 구문은 다음 표에 나열되어 있습니다.

쿼리 문자열 구성 요소 설명
? 쿼리의 시작을 표시하는 제한된 문자입니다.
aws.manifestfilter= 뒤에 이름과 값 페어로 구성된 파라미터가 오는 기본 쿼리입니다. 사용 가능한 모든 파라미터 목록은 매니페스트 필터 쿼리 파라미터 단원을 참조하십시오.
: 파라미터 이름을 값과 연결하는 데 사용됩니다. 예를 들어 parameter_name:value입니다.
; 여러 파라미터를 포함하는 쿼리에서 파라미터를 구분합니다. 예를 들어 parameter1_name:value;parameter2_name:minValue-maxValue입니다.
, 값 목록을 구분합니다. 예를 들어 parameter_name:value1,value2,value3입니다. 목록에서 쉼표로 구분된 값은 OR 관계를 의미합니다.
- 파라미터의 최소 - 최대 값 범위를 정의하는 데 사용됩니다. 예를 들어 audio_sample_rate:0-44100입니다. 범위에 숫자 값이 사용되는 경우, 범위 정의에 포함됩니다. 즉, 스트림은 최소값보다 크거나 같고 최대값보다 작거나 같아야 합니다. 범위에서는 최소값과 최대값이 필수입니다. 지원되는 범위 값은 0 - 2147483647입니다.
참고

Amazon을 CloudFront CDN으로 사용하는 경우 추가 구성을 설정해야 할 수 있습니다. 자세한 내용은 모든 엔드포인트에 대한 캐시 동작 구성을 참조하십시오.

매니페스트 필터 쿼리 파라미터

MediaPackage 다음 쿼리 파라미터를 지원합니다.

범주 명칭 설명
오디오 audio_bitrate
  • 초당 오디오 비트레이트(비트)입니다.

  • 허용되는 값: 포함 범위를 정의하는 대시로 집계된 2개의 정수. 지원되는 범위 값은 0 - 2147483647입니다.

stream.mpd?aws.manifestfilter=audio_bitrate:0-2147483647
오디오 audio_channels
  • 오디오 채널의 수입니다.

  • 허용되는 값: 포함 범위를 정의하는 대시로 집계된 2개의 정수. 지원되는 범위 값은 1 - 32767입니다.

stream.mpd?aws.manifestfilter=audio_channels:1-8
오디오 audio_codec
  • 오디오 코덱 유형입니다.

  • 허용되는 값: AACL, AACH, AC-3, EC-3. AC-3EC-3의 경우 -을 포함시켜야 합니다.

    값은 대소문자를 구분하지 않습니다.

stream.mpd?aws.manifestfilter=audio_codec:AACL,AC-3
오디오 audio_language
  • 인코더 패스스루에서 파생된 오디오 언어 또는 기능 코드입니다.

  • 허용되는 값: 2개 또는 4개의 문자 ISO-639-1 언어 코드와 같은 임의의 문자열. 인코더에 설정된 것과 동일한 언어 문자열을 사용해야 합니다.

    값은 대소문자를 구분하지 않습니다.

stream.mpd?aws.manifestfilter=audio_language:fr,en-US,de
오디오 audio_sample_rate
  • 오디오 샘플 비율(Hz)입니다.

  • 허용되는 값: 포함 범위를 정의하는 대시로 집계된 2개의 정수. 지원되는 범위 값은 0 - 2147483647입니다.

stream.mpd?aws.manifestfilter=audio_sample_rate:0-44100
자막 subtitle_language
  • 인코더 패스스루에서 파생된 자막 언어 또는 기능 코드입니다.

  • 허용되는 값: 2개 또는 4개의 문자 ISO-639-1 언어 코드와 같은 임의의 문자열. 인코더에 설정된 것과 동일한 언어 문자열을 사용해야 합니다.

    값은 대소문자를 구분하지 않습니다.

stream.mpd?aws.manifestfilter=subtitle_language:en-US, hi
비디오 trickplay_height
  • 트릭 플레이 이미지의 높이(픽셀)입니다. I-프레임 전용 트릭 플레이와 이미지 기반 트릭 플레이 모두에 적용됩니다.

    참고

    이 파라미터를 I-프레임 전용 트릭 플레이에 사용하는 경우 trickplay_heightvideo_height 값은 비슷해야 합니다. 값이 같지 않으면 I-프레임 전용 트랙이 매니페스트에서 제거될 수 있습니다.

  • VOD에서 DASH를 타일링하기 전에 trickplay_height 필터가 적용됩니다.

  • 허용되는 값: 포함 범위를 정의하는 대시로 집계된 2개의 정수. 지원되는 범위 값은 1 - 2147483647입니다.

stream.mpd?aws.manifestfilter=trickplay_height:200-1200
비디오 trickplay_type
  • 트릭 플레이 트랙 유형입니다. I-프레임 또는 이미지 트릭 플레이 트랙을 필터링하거나 none 값을 사용하여 모든 트릭 플레이 트랙(I-프레임 및 이미지 모두)을 필터링할 수 있습니다.

  • 허용되는 값: iframe, image, none.

    값은 대소문자를 구분하지 않습니다.

stream.mpd?aws.manifestfilter=trickplay_type:iframe
비디오 video_bitrate
  • 초당 비디오 비트레이트(비트)입니다.

    참고

    이 파라미터를 사용하는 경우 video_bitrate 필터 파라미터만 사용하여 비디오 비트레이트를 설정하는 것이 좋습니다. 또한 콘솔이나 콘솔을 통해 최소 및 최대 비디오 비트레이트를 설정하지 마세요. MediaPackage AWS CLI video_bitrate 필터는 엔드포인트에서 생성된 비디오 비트레이트 설정에 적용됩니다. 파라미터를 사용하고 콘솔 또는 AWS CLI에서 비트레이트를 설정하면 출력이 스큐될 수 있습니다.

  • 허용되는 값: 포함 범위를 정의하는 대시로 집계된 2개의 정수. 지원되는 범위 값은 0 - 2147483647입니다.

  • 참고

    트릭 플레이 스트림에는 이 파라미터를 사용할 수 없습니다.

stream.mpd?aws.manifestfilter=video_bitrate:0-2147483647
비디오 video_codec
  • 비디오 코덱 유형입니다.

  • 허용되는 값: H264, H265.

    값은 대소문자를 구분하지 않습니다.

stream.mpd?aws.manifestfilter=video_codec:h264
비디오 video_dynamic_range
  • 비디오 동적 범위입니다.

  • 허용되는 값: hdr10, hlg, sdr.

    값은 대소문자를 구분하지 않습니다.

stream.mpd?aws.manifestfilter=video_dynamic_range:hdr10
비디오 video_framerate
  • NTSC 형식의 비디오 프레임 속도 범위입니다.

  • 허용되는 값: 포함 범위를 정의하는 대시로 집계된 2개의 부동 소수점 숫자. 각 숫자는 최대 3개의 선택적 분수 값을 가질 수 있습니다. 예: 29.97 또는 29.764. 지원되는 범위 값은 1 - 999.999입니다.

stream.mpd?aws.manifestfilter=video_framerate:23.976-30
비디오 video_height
  • 비디오의 높이(픽셀 단위)입니다.

    참고

    이 파라미터를 I-프레임 전용 트릭 플레이에 사용하는 경우 trickplay_heightvideo_height 값은 비슷해야 합니다. 값이 같지 않으면 I-프레임 전용 트랙이 매니페스트에서 제거될 수 있습니다.

  • 허용되는 값: 포함 범위를 정의하는 대시로 집계된 2개의 정수. 지원되는 범위 값은 1 - 32767입니다.

stream.mpd?aws.manifestfilter=video_height:720-1080

매니페스트 필터링 예

매니페스트 필터링 예입니다.

예 1: AVC 및 44.1k 오디오 샘플 레이트를 지원하는 플레이어를 대상으로 함

최종 사용자가 AVC 및 44.1k 오디오 샘플 레이트만 지원할 수 있는 장치에서 콘텐츠를 재생하고 있습니다. 이러한 요구 사항에 맞지 않는 스트림을 필터링하도록 video_codecaudio_sample_rate를 설정하십시오.

?aws.manifestfilter=audio_sample_rate:0-44100;video_codec:h264

예 2: 4k HEVC 콘텐츠 제한

4K HEVC 스트림은 15Mbps이고, 다른 모든 스트림은 9Mbps 미만입니다. 스트림 집합에서 4K 스트림을 제외하려면 초당 9,000,000비트의 임계값을 설정하여 높은 비트레이트를 필터링합니다.

?aws.manifestfilter=video_bitrate:0-9000000

예 3: 초당 23.976에서 30프레임 사이의 비디오 포함

특정 프레임 속도 범위 내에서만 비디오를 포함시키려면 video_framerate를 사용합니다. 이 파라미터는 최대 3개의 선택적 10진수 값을 가진 부동 소수점 숫자를 허용합니다.

?aws.manifestfilter=video_framerate:23.976-30

HLS 및 CMAF 매니페스트에 대한 특별 조건

HLS 또는 CMAF 매니페스트를 사용하는 경우 이러한 특별 조건이 적용됩니다.

  • HLS 매니페스트의 경우, 필터링된 오디오 스트림과 멀티플렉싱된 비디오 스트림이 제거되지 않도록 오디오 변환 그룹을 사용하는 것이 좋습니다. 변환 그룹에 대한 자세한 내용은 AWS Elemental MediaPackage의 변환 그룹 참조 단원을 참조하십시오.

  • HLS 및 CMAF 매니페스트에서는 오디오 샘플 레이트 신호가 전송되지 않으므로 이 설정에 대한 원본 또는 필터링된 매니페스트를 시각적으로 확인하는 것이 쉽지 않습니다. 오디오 샘플 레이트를 확인하려면 인코더 레벨 및 출력 레벨에서 오디오 샘플 레이트를 확인하십시오.

  • HLS 및 CMAF 매니페스트에서 변형에 대한 BANDWIDTH 속성은 비디오 트랙과 멀티플렉싱되었는지 또는 비디오 트랙에서 참조하는 오디오 변환 트랙인지 여부에 관계없이 오디오 트랙의 대역폭을 비디오 트랙과 연결합니다. 따라서 원본 및 필터링된 매니페스트를 시각적으로 검사하여 video_bitrate 필터가 작동하는지 확인할 수 없습니다. 필터를 확인하려면 인코더 레벨 및 출력 레벨에서 비디오 비트레이트를 확인하십시오.

  • HLS 및 CMAF 매니페스트의 경우, 비트레이트 재생 목록 또는 세그먼트에 추가된 요청 파라미터로 인해 HTTP 400 오류가 발생합니다.

오류 조건

다음 표에는 일반적인 오류 조건이 나열되어 있습니다.

오류 조건 HTTP 상태 코드
목록 파라미터를 찾을 수 없으며, 제한된 목록의 일부가 아닙니다. ?aws.manifestfilter=audio_language:dahlia 200
스트림에는 자막 스트림만 있습니다. ?aws.manifestfilter=audio_sample_rate:0-1;video_bitrate=0-1 200
중복 필터 파라미터 ?aws.manifestfilter=audio_sample_rate:0-48000;aws.manifestfilter=audio_sample_rate:0-48000 400
잘못된 파라미터 ?aws.manifestfilter=donut_type:rhododendron 400
잘못된 범위 파라미터 ?aws.manifestfilter=audio_sample_rate:300-0 400
잘못된 범위 값(INT_MAX보다 큼) ?aws.manifestfilter=audio_sample_rate:0-2147483648 400
형식이 잘못된 쿼리 문자열 ?aws.manifestfilter=audio_sample_rate:is:0-44100 400
파라미터 문자열이 1024자보다 깁니다. ?aws.manifestfilter=audio_language:abcdef.... 400
HLS 또는 CMAF 비트레이트 매니페스트의 쿼리 파라미터 index_1.m3u8?aws.manifestfilter=video_codec:h264 400
세그먼트 요청의 쿼리 파라미터 ..._1.[ts|mp4|vtt..]?aws.manifestfilter=video_codec:h264 400
반복 쿼리 파라미터 ?aws.manifestfilter=audio_sample_rate:0-48000;aws.manifestfilter=video_bitrate:0-1 400
필터를 적용하면 빈 매니페스트가 생성됩니다(내용에 쿼리 문자열에 정의된 조건을 충족하는 스트림이 없음). ?aws.manifestfilter=audio_sample_rate:0-1;video_bitrate=0-1 400