기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
GetDASHStreamingSessionURL
스트림의 MPEG 동적 적응형 스트리밍 over HTTP (DASH) URL 를 검색합니다. 그런 다음 미디어 URL 플레이어에서 를 열어 스트림 콘텐츠를 볼 수 있습니다.
StreamName
및 StreamARN
매개 변수는 모두 선택 사항이지만 이 API 작업을 호출할 StreamARN
때는 StreamName
또는 를 지정해야 합니다.
Amazon Kinesis 비디오 스트림은 -를 통해 MPEG 데이터를 제공하기 위한 다음과 같은 요구 사항을 충족합니다. DASH
-
데이터 보존이 0보다 커야 합니다.
-
각 프래그먼트의 비디오 트랙에는 H.264 형식 및 H.265 형식의 고급 비디오 코딩 (AVC) 코덱 전용 데이터가 포함되어야 합니다. HEVC 자세한 내용은 -4 사양/14496-15를 참조하십시오. MPEG ISO IEC
스트림 데이터를 지정된 형식으로 조정하는 방법에 대한 자세한 내용은 적응 플래그를 참조하십시오. NAL -
각 프래그먼트의 오디오 트랙 (있는 경우) 에는 AAC 형식 (AACISOIEC사양/13818-7
) 또는 MS Wave 형식의 코덱 전용 데이터가 포함되어야 합니다.
다음 절차는 Kinesis Video DASH Streams와 함께 MPEG -를 사용하는 방법을 보여줍니다.
-
를
GetDataEndpoint
API 호출하여 엔드포인트를 얻으십시오. 그런 다음GetDASHStreamingSessionURL
--endpoint-url 파라미터를 사용하여 이 엔드포인트로 요청을 전송합니다. -
-를 사용하여 검색합니다. MPEG DASH URL
GetDASHStreamingSessionURL
Kinesis Video Streams는 DASH - 프로토콜을 사용하여 MPEG 스트림의 콘텐츠에 액세스하는 데 사용할 DASH - 스트리밍 세션을 생성합니다MPEG.GetDASHStreamingSessionURL
세션의 MPEG - DASH manifest URL (-를 사용하여 스트리밍하는 데 필요한 루트 리소스) 에 대해 인증된 (암호화된 세션 토큰 포함MPEG) 을 반환합니다. DASH참고
승인되지 않은 주체가 액세스할 수 있는 곳에 이 토큰을 공유하거나 저장하지 마십시오. 토큰은 스트림 콘텐츠에 대한 액세스를 제공합니다. AWS 자격 증명에 사용하는 것과 동일한 방법으로 토큰을 보호하십시오.
매니페스트를 통해 사용할 수 있는 미디어는 요청된 스트림, 시간 범위 및 형식으로만 구성됩니다. 다른 미디어 데이터 (예: 요청된 창 밖의 프레임 또는 대체 비트레이트) 는 사용할 수 없습니다.
-
- 프로토콜을 지원하는 미디어 플레이어에 MPEG - DASH 매니페스트용 URL (암호화된 세션 토큰 포함) 를 MPEG 제공하십시오. DASH Kinesis Video Streams를 사용하면 매니페스트를 통해 초기화 프래그먼트와 미디어 프래그먼트를 사용할 수 있습니다. URL 초기화 프래그먼트에는 스트림의 코덱 전용 데이터와 비디오 또는 오디오 디코더 및 렌더러를 설정하는 데 필요한 기타 데이터가 포함되어 있습니다. 미디어 프래그먼트에는 인코딩된 비디오 프레임 또는 인코딩된 오디오 샘플이 포함됩니다.
-
미디어 플레이어는 인증된 데이터를 수신하고 스트림 메타데이터 URL 및 미디어 데이터를 정상적으로 요청합니다. 미디어 플레이어가 데이터를 요청하면 다음 액션을 호출합니다.
-
GetDASHManifest: 재생하려는 미디어의 메타데이터가 포함된 MPEG DASH 매니페스트를 검색합니다.
-
GetMP4InitFragment: 초기화 프래그먼트를 검색합니다. MP4 미디어 플레이어는 일반적으로 미디어 프래그먼트를 로드하기 전에 초기화 프래그먼트를 로드합니다. 이 프래그먼트에는 “" 및
fytp
"moov
" MP4 아톰과 미디어 플레이어 디코더를 초기화하는 데 필요한 하위 아톰이 포함되어 있습니다.초기화 프래그먼트는 Kinesis 비디오 스트림의 프래그먼트와 일치하지 않습니다. 여기에는 미디어 플레이어가 미디어 프레임을 디코딩하는 데 필요한 스트림 및 해당 트랙의 코덱 전용 데이터만 포함됩니다.
-
GetMP4MediaFragment: 미디어 프래그먼트를 검색합니다MP4. 이 프래그먼트에는 인코딩된 프래그먼트의 미디어 프레임과 MP4 타임스탬프가 들어 있는
mdat
"" 및 "" "아톰과 해당 하위 원자가 포함됩니다.moof
중요
각 프래그먼트에 포함된 코덱 전용 데이터 (CPD) 에는 프래그먼트를 올바르게 디코딩하는 데 필요한 프레임 속도, 해상도 및 인코딩 프로파일과 같은 코덱별 초기화 정보가 포함되어 있습니다. CPD스트리밍 세션 중에는 변경이 지원되지 않습니다. 쿼리된 미디어를 통해 일관성을 CPD 유지해야 합니다.
중요
트랙 변경은 지원되지 않습니다. 트랙은 쿼리된 미디어 전체에서 일관성을 유지해야 합니다. 스트림의 프래그먼트가 비디오만 포함되다가 오디오와 비디오를 모두 포함하는 것으로 변경되거나 오디오 트랙이 A-Law AAC 오디오 트랙으로 변경되면 스트리밍이 실패합니다.
이 작업으로 검색된 데이터에는 요금이 청구됩니다. 자세한 내용은 요금
을 참조하세요.
-
참고
MPEG- DASH 세션에 적용되는 제한 사항은 Kinesis Video Streams 할당량을 참조하십시오.
GetMP4MediaFragment.OutgoingBytes
Amazon CloudWatch 지표를 모니터링하여 미디어 플레이어가 소비하는 데이터의 양을 모니터링할 수 있습니다. Kinesis Video Streams를 모니터링하는 CloudWatch 데 사용하는 방법에 대한 자세한 내용은 Kinesis 비디오 스트림 모니터링을 참조하십시오. 요금 정보는 Amazon Kinesis Video Streams
에 대한 HLS 자세한 내용은 Apple 개발자 사이트의 HTTP
중요
Kinesis Video Streams 아카이브 미디어를 API 호출한 후 오류가 발생하는 경우 HTTP 상태 코드 및 응답 본문 외에도 다음과 같은 정보가 포함됩니다.
-
x-amz-ErrorType
HTTP헤더 - 상태 코드가 제공하는 내용 외에도 보다 구체적인 오류 유형을 포함합니다. HTTP -
x-amz-RequestId
HTTP헤더 — 지원 팀에 문제를 보고하려는 경우 요청 ID를 제공하면 문제를 더 잘 진단할 수 있습니다. AWS
HTTP상태 코드와 ErrorType 헤더를 모두 사용하여 오류를 재시도할 수 있는지 여부와 조건에 대해 프로그래밍 방식으로 결정할 수 있을 뿐만 아니라 클라이언트 프로그래머가 성공적으로 다시 시도하기 위해 취해야 할 조치에 대한 정보도 제공할 수 있습니다.
Request Syntax
POST /getDASHStreamingSessionURL HTTP/1.1
Content-type: application/json
{
"DASHFragmentSelector": {
"FragmentSelectorType": "string
",
"TimestampRange": {
"EndTimestamp": number
,
"StartTimestamp": number
}
},
"DisplayFragmentNumber": "string
",
"DisplayFragmentTimestamp": "string
",
"Expires": number
,
"MaxManifestFragmentResults": number
,
"PlaybackMode": "string
",
"StreamARN": "string
",
"StreamName": "string
"
}
URI요청 파라미터
요청에는 어떤 URI 매개변수도 사용하지 않습니다.
요청 본문
요청은 다음과 같은 JSON 형식의 데이터를 수락합니다.
- DASHFragmentSelector
-
요청된 프래그먼트의 시간 범위 및 타임스탬프의 소스
이 파라미터는 또는 인 경우
PlaybackMode
필수입니다.ON_DEMAND
LIVE_REPLAY
있는 경우 이 매개변수는 PlaybackMode 선택사항입니다LIVE
.PlaybackMode
LIVE
인 경우 는 설정할FragmentSelectorType
수 있지만TimestampRange
설정해서는 안 됩니다.ON_DEMAND
또는PlaybackMode
LIVE_REPLAY
인 경우 둘 다FragmentSelectorType
TimestampRange
설정해야 합니다.유형: DASHFragmentSelector 객체
필수 여부: 아니요
- DisplayFragmentNumber
-
프래그먼트는 세션의 시퀀스 번호를 기반으로 매니페스트 파일에서 식별됩니다. 로
ALWAYS
설정하면 Kinesis Video Streams 프래그먼트 번호가 속성 이름이 “kvs:fn”인 매니페스트 파일의 각 S 요소에 추가됩니다. DisplayFragmentNumber 이러한 프래그먼트 번호는 로깅에 사용하거나 다른 (예: 및) 와 함께 사용할 수 있습니다. APIsGetMedia
GetMediaForFragmentList
이러한 사용자 지정 MPEG 속성을 활용하려면 사용자 지정 DASH 미디어 플레이어가 필요합니다.기본 값은
NEVER
입니다.타입: 문자열
유효 값:
ALWAYS | NEVER
필수 여부: 아니요
- DisplayFragmentTimestamp
-
MPEG- DASH 사양에 따라 매니페스트 파일에 있는 프래그먼트의 상시 시간은 매니페스트 자체의 속성을 사용하여 도출할 수 있습니다. 하지만 MPEG 일반적으로 DASH 호환되는 미디어 플레이어는 미디어 타임라인의 격차를 제대로 처리하지 못합니다. Kinesis Video Streams는 매니페스트 파일의 미디어 타임라인을 조정하여 불연속성이 있는 미디어를 재생할 수 있도록 합니다. 따라서 매니페스트 파일에서 파생된 벽시계 시간이 정확하지 않을 수 있습니다. 로 설정하면 속성 이름이 “
ALWAYS
kvs:ts”인 매니페스트 파일의 각 S 요소에 정확한 프래그먼트 타임스탬프가 추가됩니다. DisplayFragmentTimestamp 이 사용자 지정 MPEG 속성을 활용하려면 커스텀 DASH 미디어 플레이어가 필요합니다.기본값은
NEVER
입니다. DASHFragmentSelectorSERVER_TIMESTAMP
인 경우 타임스탬프는 서버 시작 타임스탬프가 됩니다. 마찬가지로, DASHFragmentSelector is가PRODUCER_TIMESTAMP
되면 타임스탬프가 프로듀서 시작 타임스탬프가 됩니다.타입: 문자열
유효 값:
ALWAYS | NEVER
필수 여부: 아니요
- Expires
-
요청된 세션이 만료될 때까지의 시간 (초) 이 값은 300 (5분) 에서 43200 (12시간) 사이일 수 있습니다.
세션이 만료되면 해당 세션에 대해 새 전화를 걸거나 전화를 걸
GetMP4MediaFragment
수 없습니다.GetDashManifest
GetMP4InitFragment
기본값은 300(5분)입니다.
유형: 정수
유효 범위: 최소값은 300입니다. 최대 값은 43200입니다.
필수 여부: 아니요
- MaxManifestFragmentResults
-
MPEG- DASH 매니페스트에서 반환되는 최대 프래그먼트 수입니다.
인
PlaybackMode
경우 가장 최근의 프래그먼트가 이 값까지 반환됩니다.LIVE
is인 경우PlaybackMode
이ON_DEMAND
최대 개수까지 가장 오래된 프래그먼트가 반환됩니다.라이브 MPEG DASH 매니페스트에서 사용할 수 있는 프래그먼트 수가 많으면 비디오 플레이어가 재생을 시작하기 전에 콘텐츠를 버퍼링하는 경우가 많습니다. 버퍼 크기를 늘리면 재생 지연 시간은 늘어나지만 재생 중에 재버퍼링이 발생할 가능성은 줄어듭니다. 라이브 MPEG DASH 매니페스트에는 최소 3개의 프래그먼트와 최대 10개의 프래그먼트가 있는 것이 좋습니다.
기본값은
LIVE
또는 인 경우 5개 프래그먼트이고LIVE_REPLAY
, 일 경우PlaybackMode
1,000개입니다.PlaybackMode
ON_DEMAND
최대 값인 1,000개의 프래그먼트는 1초 프래그먼트가 있는 스트림의 경우 16분 이상의 비디오에 해당하고, 10초 프래그먼트가 포함된 스트림의 경우 2시간 반 이상의 비디오에 해당합니다.
타입: Long
유효 범위: 최소값 1. 최대값은 5000입니다.
필수 여부: 아니요
- PlaybackMode
-
실시간, 실시간 리플레이 또는 아카이브된 온디맨드 데이터 중 무엇을 검색할지 여부.
세 가지 유형의 세션의 특징은 다음과 같습니다.
-
LIVE
: 이 유형의 세션의 경우 MPEG - DASH 매니페스트는 사용 가능한 최신 프래그먼트로 계속 업데이트됩니다. 미디어 플레이어가 1초 간격으로 새 매니페스트를 검색하는 것이 좋습니다. 미디어 플레이어에서 이러한 유형의 세션을 재생하면 일반적으로 사용자 인터페이스에 “실시간” 알림이 표시되며, 이 알림은 재생 창에서 표시할 위치를 선택할 수 있는 스크러버 컨트롤이 없습니다.참고
LIVE
모드에서는 프래그먼트 사이에 간격이 있더라도 (즉, 프래그먼트가 없는 경우) 사용 가능한 최신 프래그먼트가 MPEG - DASH 매니페스트에 포함됩니다. 이와 같은 간격이 생기면 미디어 플레이어가 멈추거나 재생이 갑자기 중단될 수 있습니다. 이 모드에서는 플레이리스트의 최신 프래그먼트보다 오래된 프래그먼트는 MPEG - DASH 매니페스트에 추가되지 않습니다. 후속 프래그먼트가 매니페스트에 추가된 후 누락된 프래그먼트를 사용할 수 있게 되면 이전 프래그먼트는 추가되지 않고 빈 프래그먼트는 채워지지 않습니다. -
LIVE_REPLAY
: 이 유형의 세션에서 MPEG - DASH 매니페스트는 지정된 시작 시간의 프래그먼트를 포함하여 시작한다는 점을 제외하면LIVE
모드 업데이트 방식과 비슷하게 업데이트됩니다. 프래그먼트가 인제스트될 때 추가되는 대신 다음 프래그먼트의 지속 시간이 경과함에 따라 프래그먼트가 추가됩니다. 예를 들어 세션의 프래그먼트 길이가 2초인 경우 2초마다 매니페스트에 새 프래그먼트가 추가됩니다. 이 모드는 이벤트가 감지된 시점부터 재생을 시작하고 세션 생성 시점에 아직 인제스트되지 않은 미디어를 계속 라이브 스트리밍할 수 있는 데 유용합니다. 이 모드는 모드에서 1,000개의 프래그먼트 한도에 제한되지 않고 이전에 보관된 미디어를 스트리밍하는 데에도 유용합니다.ON_DEMAND
-
ON_DEMAND
: 이 유형의 세션의 경우 MPEG - DASH 매니페스트에는 세션의 모든 프래그먼트가 지정된 수까지 포함됩니다.MaxManifestFragmentResults
매니페스트는 각 세션마다 한 번만 검색해야 합니다. 미디어 플레이어에서 이러한 유형의 세션을 재생하면 일반적으로 사용자 인터페이스에는 표시할 재생 창의 위치를 선택할 수 있는 스크러버 컨트롤이 표시됩니다.
모든 재생 모드에서 동일한 시작 타임스탬프를 가진 프래그먼트가 여러 개 있는 경우 프래그먼트 번호가 더 큰 프래그먼트 (즉, 최신 프래그먼트) 는 - 매니페스트에 포함됩니다.
FragmentSelectorType
PRODUCER_TIMESTAMP
MPEG DASH 다른 프래그먼트는 포함되지 않습니다. 타임스탬프는 다르지만 지속 시간이 겹치는 프래그먼트는 여전히 - 매니페스트에 포함됩니다. MPEG DASH 이로 인해 미디어 플레이어에서 예상치 못한 동작이 발생할 수 있습니다.기본값은
LIVE
입니다.타입: 문자열
유효 값:
LIVE | LIVE_REPLAY | ON_DEMAND
필수 여부: 아니요
-
- StreamARN
-
MPEG- DASH 매니페스트를 URL 검색할 스트림의 Amazon 리소스 이름 (ARN).
또는 를 지정해야 합니다.
StreamName
StreamARN
유형: 문자열
길이 제약: 최소 길이 1. 최대 길이는 1024입니다.
패턴:
arn:[a-z\d-]+:kinesisvideo:[a-z0-9-]+:[0-9]+:[a-z]+/[a-zA-Z0-9_.-]+/[0-9]+
Required: No
- StreamName
-
MPEG- DASH URL 매니페스트를 검색할 스트림의 이름.
또는 를 지정해야 합니다.
StreamName
StreamARN
유형: 문자열
길이 제약 조건: 최소 길이는 1입니다. 최대 길이는 256입니다.
Pattern:
[a-zA-Z0-9_.-]+
필수 여부: 아니요
응답 구문
HTTP/1.1 200
Content-type: application/json
{
"DASHStreamingSessionURL": "string"
}
Response Elements
작업이 성공하면 서비스는 HTTP 200개의 응답을 다시 보냅니다.
서비스는 다음 데이터를 JSON 형식으로 반환합니다.
- DASHStreamingSessionURL
-
미디어 플레이어가 MPEG - DASH 매니페스트를 검색하는 데 사용할 수 있는 URL (세션 토큰 포함).
유형: 문자열
Errors
모든 작업에 공통되는 오류에 대한 내용은 일반적인 오류 섹션을 참조하십시오.
- ClientLimitExceededException
-
한도를 초과했기 때문에 Kinesis Video Streams가 요청 병목 현상을 일으켰습니다. 나중에 전화를 걸어 보세요. 한도에 대한 자세한 내용은 Kinesis Video Streams 할당량을 참조하십시오.
HTTP상태 코드: 400
- InvalidArgumentException
-
지정된 매개변수가 제한을 초과하거나, 지원되지 않거나, 사용할 수 없습니다.
HTTP상태 코드: 400
- InvalidCodecPrivateDataException
-
비디오 스트림의 트랙 중 하나 이상에 있는 코덱 개인 데이터는 이 작업에 유효하지 않습니다.
HTTP상태 코드: 400
- MissingCodecPrivateDataException
-
비디오 스트림의 트랙 중 하나 이상에서 코덱 개인 데이터를 찾을 수 없습니다.
HTTP상태 코드: 400
- NoDataRetentionException
-
GetImages
데이터를 보관하지 않는 (즉, a가 0인) 스트림에DataRetentionInHours
대해 요청되었습니다.HTTP상태 코드: 400
- NotAuthorizedException
-
상태 코드: 403, 호출자가 지정된 스트림에서 작업을 수행할 권한이 없거나 토큰이 만료되었습니다.
HTTP상태 코드: 401
- ResourceNotFoundException
-
GetImages
Kinesis Video Streams에서 지정한 스트림을 찾을 수 없는 경우 이 오류가 발생합니다.GetHLSStreamingSessionURL
요청된 시간 범위 내에LIVE_REPLAY
프래그먼트가 없는 스트림에 대해 aON_DEMAND
또는 f가 있는 세션이 요청되거나 지난 30초 내에LIVE
프래그먼트가 없는 스트림에 대해 a가 있는 세션이 요청되면 이GetDASHStreamingSessionURL
오류가 발생합니다.PlaybackMode
PlaybackMode
HTTP상태 코드: 404
- UnsupportedStreamMediaTypeException
-
재생 세션의 첫 번째 프래그먼트에 있는 IDs 트랙의 코덱으로는 미디어 유형 (예: h.264, h.265 비디오 AAC 또는 G.711 오디오) 을 확인할 수 없습니다. 트랙 1의 코덱 ID는 다음과 같아야
V_MPEG/ISO/AVC
하고, 선택적으로 트랙 2의 코덱 ID는 다음과 같아야 합니다.A_AAC
HTTP상태 코드: 400
참고
언어별 사용 방법에 대한 자세한 내용은 AWS SDKs 다음을 참조하십시오. API