스트림 매개변수 재정의는 선택사항입니다. HLS 또는 DASH 재생목록이 요청되었을 때 플레이어나 애플리케이션에서 스트림 생성 매개변수의 기본값을 재정의하거나 변형의 선택항목 또는 기본 순서를 재정의하기를 원할 경우 사용할 수 있습니다. 이러한 매개변수는 IMA SDK, SSB(서버 측 비커닝), DAI API 구현 시 플레이어나 앱에서 스트림 변형 순서 매개변수를 전달할 수 있습니다.
변형 선택항목 및 순서 재정의
기본 재생목록 순서는 게시자가 결정합니다. 순서 매개변수가 지정되지 않으면 재생목록은 게시자가 반환한 것과 같은 원래 순서로 반환됩니다.
스트림을 생성할 때 지정된 변형 선택항목 및 순서 매개변수를 재정의할 수 있습니다. 이렇게 하면 마스터 재생목록 요청에 대한 응답에 어떤 변형이 포함되어야 하는지와 그 순서를 지정할 수 있습니다. 콘텐츠를 소비하는 사용자에 따라 특정 변형이 다른 변형에 비해 우선적으로 사용되기를 원할 때 유용합니다.
변형의 하위집합 및 순서는 스트림이 사용되는 동안 그대로 유지됩니다. 매개변수는 IMA SDK를 사용할 때 adTagParameters 구조의 일부인 DAI API 매개변수로 수용되거나 SSB를 사용할 때 추가 HTTP GET
매개변수로 수용됩니다.
매개변수 | 스트리밍 프로토콜 | 설명 | 예 |
---|---|---|---|
dai-aor |
HLS, DASH | 반환할 오디오 변형의 대역폭 범위입니다. 더 높은 대역폭을 모두 선택하려면 startBandwidth 만 지정하세요. 더 낮은 대역폭을 모두 선택하려면 :endBandwidth (콜론(:)으로 시작함)만 지정하세요. |
dai-aor=60000 |
dai-dlid |
HLS, DASH |
VOD 콘텐츠의 CDN 구성을 만들 때 기본 CDN 구성 및 추가 CDN 게재 설정을 정의합니다. 이렇게 하면 두 개 이상의 CDN을 설정하고 키-값을 사용하여 세션 시작 시 게재할 CDN을 동적으로 선택할 수 있습니다. CDN 구성을 설정하고 저장하고 나면 Ad Manager에서는 각각의 이름을 지정합니다. 이 이름은 요청에 이름이 전달되지 않으면 Ad Manager에서는 기본 CDN을 사용합니다. |
( |
dai-excl |
HLS, DASH | 재생목록에서 제외할 변환입니다. subtitles , codec , audio-lang , subtitle-lang , iframe , resolution 을 지원합니다. 단일 값 또는 여러 값이 쉼표로 구분된 목록을 사용하여 해상도, 오디오 코덱, 동영상 코덱, 오디오 또는 자막 언어를 제외할 수 있습니다. Codec 접두사는 '*' 접미사도 지원되며, 이는 제공된 접두사를 포함하는 codec 이 있는 모든 변환을 제외합니다. |
단일 코덱 여러 코덱 접두사 코덱 단일 언어 오디오 단일 언어 자막 여러 선택항목 해상도 |
dai-os |
HLS | 마스터 재생목록 상단에 배치할 동영상 변형 대역폭입니다. 값이 startBandwidth 에 가장 가까운 변형이 선택됩니다. 두 값의 거리가 같으면 더 낮은 값이 선택됩니다. 이 매개변수는 제공되고 dai-aor 는 제공되지 않는 경우 모든 오디오 전용 변형이 제외됩니다. |
dai-os=1700000 |
dai-ot |
HLS |
|
dai-ot=bw dai-ot=bw_res |
dai-ov |
HLS |
반환될 미디어 재생목록의 순서를 지정하는 쉼표로 구분된 값입니다. 순서 값이 동일한 변형이 여러 개 존재하는 경우(예: 대역폭은 같지만 해상도가 다른 두 개의 변형이 있는 경우) 그러한 변형들은 원래 순서로 유지됩니다. |
|
dai-sr |
HLS, DASH |
반환될 동영상 변형의 대역폭 범위입니다. 더 높은 대역폭을 모두 선택하려면 대역폭 적용은 동영상 콘텐츠에만 적용됩니다.
|
dai-sr=1300000:2500000 |
기타 재정의 매개변수
매개변수 | 스트리밍 프로토콜 | 설명 | 예 |
---|---|---|---|
dai-ah |
HLS, DASH | 실시간 스트림에 광고 동적 삽입 방지 적용 여부를 지정합니다. 광고 동적 삽입 방지 길이는 실시간 스트림 구성에 지정되어야 합니다. | 광고 동적 삽입 방지 사용 설정:dai-ah=1 |
dai-apto (베타) |
HLS, DASH |
VOD 및 라이브 스트림 생성에 대한 광고 모음 결정 제한 시간(밀리초)입니다. 이 값은 스트림 생성 시 발생하는 중간 광고 시점 결정이나 과거 광고 시점 결정에 사용됩니다(스트림 생성 후 모든 향후 광고 결정에 사용되지는 않음). 그러나 과거 광고 시점의 경우 이벤트 유형 재생목록 또는 dai-dpb 매개변수를 사용하는 경우에만 사용할 수 있습니다. 0보다 크고 10,000 이하인 값으로 설정할 수 있습니다.
매우 낮거나 높은 값을 설정하면 광고 유효노출이나 사용자 경험에 영향을 미칠 수 있습니다. |
dai-apto=4000 |
dai-dpb |
HLS, DASH |
비SSB 선형 스트림에 대해 과거 광고 시점 결정을 사용할지 여부를 지정합니다(SSB 스트림의 경우 매개변수가 무시됨). 사용 설정하면 과거 광고 시점은 중간 광고 시점 결정으로 결정됩니다. 이는 사용자가 사용자가 되감기를 하지 않는 한 과거 시점은 조회되지 않으며 이로 인해 코드 제공 횟수가 늘어날 수 있습니다. |
과거 광고 시점 결정 사용 설정:dai-dpb=true HSL 이벤트 유형 재생목록에 대한 과거 광고 시점 결정 사용 안함: dai-dpb=false |
dai-dvr |
HLS, DASH | 사용자가 뒤로 스크롤하여 재생을 원활하게 유지할 수 있는, 실시간 콘텐츠와 광고의 DVR 길이(초)입니다.
이 값의 현재 기본값은 100초 또는 실시간 스트림 설정에 지정된 값입니다. 하지만 실시간 스트림마다 새로운 최대값을 지정할 수 있습니다. SSB의 경우 최대 100초, SDK 또는 API를 사용하면 최대 1800초까지 지정할 수 있습니다. DVR 길이를 더 늘이려면 계정 관리자에게 문의하세요. 가이드 및 사용법반환되는 재생목록의 실제 DVR 길이는 기본 세그먼트의 길이에 따라 약간 더 길거나 짧을 수 있습니다. 또한 변형에 따라서도 조금씩 다를 수 있습니다. 실제 길이의 최댓값은 이벤트에 지정된 DVR 길이 값보다 크지 않아야 합니다. 이 경우 값이 자동으로 제한됩니다. SSB 스트림의 DVR 길이는 SDK 또는 Public API 스트림보다 낮은 값으로 제한됩니다. Google은 호환 가능한 매니페스트를 반환하기 위해 최선을 다하겠지만 너무 작거나 큰 값을 지정하면 재생에 문제가 발생할 수 있습니다. 원하는 DVR 길이로 재생을 철저히 테스트하여 모든 것이 제대로 작동하는지 확인해야 합니다. 기기마다 서로 다른 길이를 사용하지 마세요. 한 기기에는 30초 길이를 지정하고 다른 기기에는 31초나 35초를 지정하는 것은 성능 측면에서 적합하지 않습니다. 대신 길이 버킷을 사용하세요(예: 특정 기기 조합에 대해 35초, 또 다른 조합에는 10분 등). 이렇게 하면 더욱 효율적으로 리소스를 할당하고 실적을 낼 수 있습니다. |
dai-dvr=60 |
dai-emsgv |
HLS |
이벤트 메시지 버전은 호출자가 CMAF(Common Media Application Format) 콘텐츠의 'emsg' 버전을 지정할 수 있는 스트림 생성 매개변수입니다. HLS 표준을 사용하려면 'emsg' 버전 1이 필요합니다. 이 설정은 Roku와 같이 표준 버전 1을 지원하지 않고 버전 0이 필요한 플랫폼에 유용합니다.
|
dai-emsgv=1 |
dai-pre (베타) |
HLS, DASH | 프리롤을 사용 설정한 라이브 스트림이 겹치는 경우 미드롤 대신 프리롤을 표시할지 여부를 지정합니다. 기본 동작은 프리롤 대신 겹치는 미드롤을 표시합니다. | dai-pre=1 |
매개변수 재정의 예
요청
https://dai.google.com/linear/hls/event/<asset_key>/master.m3u8?dai-ot=bw&dai-ov=2025837,1406061
응답
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2025837,RESOLUTION=960x540,CODECS="mp4a.40.2,avc1.4d401f"
https://dai.google.com/linear/hls/event/<asset_key>/encoder/<encoder_id>/session/<session_id>/bandwidth/2025837.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1406061,RESOLUTION=640x360,CODECS="mp4a.40.2,avc1.4d401f"
https://dai.google.com/linear/hls/event/<asset_key>/encoder/<encoder_id>/session/<session_id>/bandwidth/1406061.m3u8
요청
https://dai.google.com/linear/hls/event/<asset_key>/master.m3u8?dai-ot=bw&dai-ov=audio,1406061
응답
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=64000,RESOLUTION=480x270,CODECS="mp4a.40.2"
https://dai.google.com/linear/hls/event/<asset_key>/encoder/<encoder_id>/session/<session_id>/bandwidth/audio.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1406061,RESOLUTION=640x360,CODECS="mp4a.40.2,avc1.4d401f"
https://dai.google.com/linear/hls/event/<asset_key>/encoder/<encoder_id>/session/<session_id>/bandwidth/1406061.m3u8
요청
https://dai.google.com/linear/hls/event/<asset_key>/master.m3u8?dai-ot=bw_res&dai-ov=1400000:640x360,audio
응답
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1406061,RESOLUTION=640x360,CODECS="mp4a.40.2,avc1.4d401f"
https://dai.google.com/linear/hls/event/<asset_key>/encoder/<encoder_id>/session/<session_id>/bandwidth/1406061.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=64000,RESOLUTION=480x270,CODECS="mp4a.40.2"
https://dai.google.com/linear/hls/event/<asset_key>/encoder/<encoder_id>/session/<session_id>/bandwidth/audio.m3u8
요청
https://dai.google.com/linear/hls/event/<asset_key>/master.m3u8?dai-sr=1300000:2500000&dai-aor=60000
응답
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1406061,RESOLUTION=640x360,CODECS="mp4a.40.2,avc1.4d401f"
https://dai.google.com/linear/hls/event/<asset_key>/encoder/<encoder_id>/session/<session_id>/bandwidth/1406061.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2025837,RESOLUTION=960x540,CODECS="mp4a.40.2,avc1.4d401f"
https://dai.google.com/linear/hls/event/<asset_key>/encoder/<encoder_id>/session/<session_id>/bandwidth/2025837.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=64000,RESOLUTION=480x270,CODECS="mp4a.40.2"
https://dai.google.com/linear/hls/event/<asset_key>/encoder/<encoder_id>/session/<session_id>/bandwidth/audio.m3u8
요청
https://dai.google.com/linear/hls/event/<asset_key>/master.m3u8?dai-os=1700000
응답
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1406061,RESOLUTION=640x360,CODECS="mp4a.40.2,avc1.4d401f"
https://dai.google.com/linear/hls/event/<asset_key>/encoder/<encoder_id>/session/<session_id>/bandwidth/1406061.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2025837,RESOLUTION=960x540,CODECS="mp4a.40.2,avc1.4d401f"
https://dai.google.com/linear/hls/event/<asset_key>/encoder/<encoder_id>/session/<session_id>/bandwidth/2025837.m3u8
자막이 있는 원본 매니페스트
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subs",LANGUAGE="en",NAME="English",AUTOSELECT=YES,URI="tt-en.m3u8"
#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subs",LANGUAGE="de",NAME="Deutsch",AUTOSELECT=YES,URI="tt-de.m3u8"
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="stereo",LANGUAGE="en",NAME="English",DEFAULT=YES,AUTOSELECT=YES,URI="audio.m3u8"
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=889549,RESOLUTION=640x360,CODECS="mp4a.40.2,avc1.4d401f" SUBTITLES="subs"
https://dai.google.com/linear/hls/event/<asset_key>/encoder/<encoder_id>/session/<session_id>/bandwidth/889549.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1406061,RESOLUTION=640x360,CODECS="mp4a.40.2,avc1.4d401f" SUBTITLES="subs"
https://dai.google.com/linear/hls/event/<asset_key>/encoder/<encoder_id>/session/<session_id>/bandwidth/2025837.m3u8
요청
https://dai.google.com/linear/hls/event/<asset_key>/master.m3u8?dai-excl=subtitles
응답
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="stereo",LANGUAGE="en",NAME="English",DEFAULT=YES,AUTOSELECT=YES,URI="audio.m3u8"
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=889549,RESOLUTION=640x360,CODECS="mp4a.40.2,avc1.4d401f" SUBTITLES="subs"
https://dai.google.com/linear/hls/event/<asset_key>/encoder/<encoder_id>/session/<session_id>/bandwidth/889549.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1406061,RESOLUTION=640x360,CODECS="mp4a.40.2,avc1.4d401f" SUBTITLES="subs"
https://dai.google.com/linear/hls/event/<asset_key>/encoder/<encoder_id>/session/<session_id>/bandwidth/2025837.m3u8
ac-3, eac-3이 있는 원본 매니페스트
#EXTM3U
#EXT-X-STREAM-INF:BANDWIDTH=6107776,RESOLUTION=1920x1080,CODECS="avc1.640028,ec-3",AUDIO="AUDIO-EAC3"
https://truman.com/ssai/hls/event/<event_code>/encoder/<encoder_id>/session/<session_id>/bandwidth/6107776.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=2212301,RESOLUTION=960x540,CODECS="avc1.640028,ec-3",AUDIO="AUDIO-EAC3"
https://truman.com/ssai/hls/event/<event_code>/encoder/<encoder_id>/session/<session_id>/bandwidth/2212301.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=6295776,RESOLUTION=1920x1080,CODECS="ac-3,avc1.640028",AUDIO="AUDIO-AC3"
https://truman.com/ssai/hls/event/<event_code>/encoder/<encoder_id>/session/<session_id>/bandwidth/6295776.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=2400301,RESOLUTION=960x540,CODECS="ac-3,avc1.640028",AUDIO="AUDIO-AC3"
https://truman.com/ssai/hls/event/<event_code>/encoder/<encoder_id>/session/<session_id>/bandwidth/2400301.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=6045381,RESOLUTION=1920x1080,CODECS="avc1.640028,mp4a.40.2",AUDIO="AUDIO-AAC"
https://truman.com/ssai/hls/event/<event_code>/encoder/<encoder_id>/session/<session_id>/bandwidth/6045381.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=2149906,RESOLUTION=960x540,CODECS="avc1.640028,mp4a.40.2",AUDIO="AUDIO-AAC"
https://truman.com/ssai/hls/event/<event_code>/encoder/<encoder_id>/session/<session_id>/bandwidth/2149906.m3u8
#EXT-X-MEDIA:TYPE=AUDIO,URI="audio-eac3.m3u8",GROUP-ID="AUDIO-EAC3",LANGUAGE="en",NAME="ENGLISH",AUTOSELECT=YES
#EXT-X-MEDIA:TYPE=AUDIO,URI="audio-ac3.m3u8",GROUP-ID="AUDIO-AC3",LANGUAGE="en",NAME="ENGLISH",AUTOSELECT=YES
#EXT-X-MEDIA:TYPE=AUDIO,URI="audio-aac.m3u8",GROUP-ID="AUDIO-AAC",LANGUAGE="en",NAME="ENGLISH",AUTOSELECT=YES
코덱 1개 제외
요청
http://truman.com/ssai/event/<event_code>/master.m3u8?dai-excl=codec:ec-3
응답
#EXTM3U
#EXT-X-STREAM-INF:BANDWIDTH=6295776,RESOLUTION=1920x1080,CODECS="ac-3,avc1.640028",AUDIO="AUDIO-AC3"
https://truman.com/ssai/hls/event/<event_code>/encoder/<encoder_id>/session/<session_id>/bandwidth/6295776.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=2400301,RESOLUTION=960x540,CODECS="ac-3,avc1.640028",AUDIO="AUDIO-AC3"
https://truman.com/ssai/hls/event/<event_code>/encoder/<encoder_id>/session/<session_id>/bandwidth/2400301.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=6045381,RESOLUTION=1920x1080,CODECS="avc1.640028,mp4a.40.2",AUDIO="AUDIO-AAC"
https://truman.com/ssai/hls/event/<event_code>/encoder/<encoder_id>/session/<session_id>/bandwidth/6045381.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=2149906,RESOLUTION=960x540,CODECS="avc1.640028,mp4a.40.2",AUDIO="AUDIO-AAC"
https://truman.com/ssai/hls/event/<event_code>/encoder/<encoder_id>/session/<session_id>/bandwidth/2149906.m3u8
#EXT-X-MEDIA:TYPE=AUDIO,URI="audio-ac3.m3u8",GROUP-ID="AUDIO-AC3",LANGUAGE="en",NAME="ENGLISH",AUTOSELECT=YES
#EXT-X-MEDIA:TYPE=AUDIO,URI="audio-aac.m3u8",GROUP-ID="AUDIO-AAC",LANGUAGE="en",NAME="ENGLISH",AUTOSELECT=YES
여러 코덱 제외
요청
http://truman.com/ssai/event/<event_code>/master.m3u8?dai-excl=codec:ec-3,codec:ac-3
응답
#EXTM3U
#EXT-X-STREAM-INF:BANDWIDTH=6045381,RESOLUTION=1920x1080,CODECS="avc1.640028,mp4a.40.2",AUDIO="AUDIO-AAC"
https://truman.com/ssai/hls/event/<event_code>/encoder/<encoder_id>/session/<session_id>/bandwidth/6045381.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=2149906,RESOLUTION=960x540,CODECS="avc1.640028,mp4a.40.2",AUDIO="AUDIO-AAC"
https://truman.com/ssai/hls/event/<event_code>/encoder/<encoder_id>/session/<session_id>/bandwidth/2149906.m3u8
#EXT-X-MEDIA:TYPE=AUDIO,URI="audio-aac.m3u8",GROUP-ID="AUDIO-AAC",LANGUAGE="en",NAME="ENGLISH",AUTOSELECT=YES