동적 패키지기를 사용하여 매니페스트 필터링
경고
Azure Media Services는 2024년 6월 30일에 사용 중지됩니다. 자세한 내용은 AMS 사용 중지 가이드참조하세요.
적응 비트 전송률 스트리밍 콘텐츠를 디바이스에 제공하는 경우 특정 디바이스 기능 또는 사용 가능한 네트워크 대역폭을 대상으로 여러 버전의 매니페스트를 게시해야 하는 경우가 있습니다. 동적 패키지 사용하면 특정 코덱, 해상도, 비트 전송률 및 오디오 트랙 조합을 즉석에서 필터링할 수 있는 필터를 지정할 수 있습니다. 필터링을 통해 여러 복사본을 만들 필요가 없습니다. 대상 디바이스(iOS, Android, SmartTV 또는 브라우저)에 구성된 특정 필터 집합과 네트워크 기능(높은 대역폭, 모바일 또는 낮은 대역폭 시나리오)을 사용하여 새 URL을 게시하기만 하면 됩니다. 이 경우 클라이언트는 사용 가능한 자산 필터 또는계정 필터를 지정하여 쿼리 문자열을 통해 콘텐츠 스트리밍을 조작하고 필터를 사용하여 스트림의 특정 섹션을 스트리밍할 수 있습니다.
일부 배달 시나리오에서는 고객이 특정 트랙에 액세스할 수 없도록 해야 합니다. 예를 들어 HD 트랙이 포함된 매니페스트를 특정 구독자 계층에 게시하지 않으려는 경우도 있습니다. 또는 ABR(특정 적응 비트 전송률) 트랙을 제거하여 추가 트랙의 이점을 얻지 못하는 특정 디바이스에 대한 배달 비용을 줄이려는 경우도 있습니다. 이 경우 미리 만든 필터 목록을 생성 시 스트리밍 로케이터 연결할 수 있습니다. 그러면 스트리밍 로케이터정의되므로 클라이언트는 콘텐츠가 스트리밍되는 방식을 조작할 수 없습니다.
스트리밍 로케이터 + 클라이언트가 URL에 지정하는 추가 디바이스별 필터에
스트림에 다른 필터를 지정하는 이 기능은 대상 디바이스에 대한 여러 사용 사례 시나리오를 대상으로 하는 강력한 동적 매니페스트 조작 솔루션을 제공합니다. 이 항목에서는 동적 매니페스트 관련된 개념을 설명하고 이 기능을 사용할 수 있는 시나리오의 예를 제공합니다.
메모
동적 매니페스트는 해당 자산에 대한 자산 및 기본 매니페스트를 변경하지 않습니다.
매니페스트 개요
Azure Media Services는 HLS, MPEG DASH 및 부드러운 스트리밍 프로토콜을 지원합니다. 동적 패키징일부로 스트리밍 클라이언트 매니페스트(HLS 마스터 재생 목록, DASH 미디어 프레젠테이션 설명 [MPD] 및 부드러운 스트리밍)는 URL의 형식 선택기를 기반으로 동적으로 생성됩니다. 자세한 내용은 Common 주문형 워크플로배달 프로토콜을 참조하세요.
매니페스트 파일 가져오기 및 검사
동적으로 만든 매니페스트에 포함해야 하는 스트림 트랙(라이브 또는 주문형 비디오 [VOD])에 따라 필터 트랙 속성 조건 목록을 지정합니다. 트랙의 속성을 가져와서 검사하려면 먼저 부드러운 스트리밍 매니페스트를 로드해야 합니다.
비디오 스트림의 비트 전송률 모니터링
Azure Media Player 데모 페이지 사용하여 비디오 스트림의 비트 전송률을 모니터링할 수 있습니다. 데모 페이지에는 진단 탭에 진단 정보가 표시됩니다.
예: 쿼리 문자열에 필터가 있는 URL
ABR 스트리밍 프로토콜(HLS, MPEG-DASH 및 부드러운 스트리밍)에 필터를 적용할 수 있습니다. 다음 표에서는 필터가 있는 URL의 몇 가지 예를 보여 줍니다.
프로토콜 | 본보기 |
---|---|
HLS | https://amsv3account-usw22.streaming.media.azure.net/fecebb23-46f6-490d-8b70-203e86b0df58/bigbuckbunny.ism/manifest(format=m3u8-aapl,filter=myAccountFilter) |
MPEG DASH | https://amsv3account-usw22.streaming.media.azure.net/fecebb23-46f6-490d-8b70-203e86b0df58/bigbuckbunny.ism/manifest(format=mpd-time-csf,filter=myAssetFilter) |
부드러운 스트리밍 | https://amsv3account-usw22.streaming.media.azure.net/fecebb23-46f6-490d-8b70-203e86b0df58/bigbuckbunny.ism/manifest(filter=myAssetFilter) |
변환 필터링
자산을 여러 인코딩 프로필(H.264 Baseline, H.264 High, AACL, AACH, Dolby Digital Plus) 및 여러 품질 비트 전송률로 인코딩하도록 선택할 수 있습니다. 그러나 모든 클라이언트 디바이스가 모든 자산의 프로필 및 비트 전송률을 지원하지는 않습니다. 예를 들어 이전 Android 디바이스는 H.264 Baseline+AACL만 지원합니다. 이점을 얻을 수 없는 디바이스에 더 높은 비트 전송률을 보내면 대역폭 및 디바이스 계산이 낭비됩니다. 이러한 디바이스는 지정된 모든 정보를 디코딩해야 하며, 표시를 위해 축소해야 합니다.
동적 매니페스트를 사용하면 디바이스 프로필(예: 모바일, 콘솔 또는 HD/SD)을 만들고 각 프로필의 일부가 되려는 트랙과 품질을 포함할 수 있습니다. 이를 변환 필터링이라고합니다. 다음 다이어그램은 예제를 보여줍니다.
다음 다이어그램의 맨 위에는 필터가 없는 자산에 대한 HLS 매니페스트가 표시됩니다. (7개의 변환을 모두 포함합니다.) 왼쪽 아래의 다이어그램에는 "ott"라는 필터가 적용된 HLS 매니페스트가 표시됩니다. "ott" 필터는 1Mbps 미만의 모든 비트 전송률 제거를 지정하므로 응답에서 하위 두 품질 수준이 제거되었습니다. 오른쪽 아래의 다이어그램에는 "mobile"이라는 필터가 적용된 HLS 매니페스트가 표시됩니다. "모바일" 필터는 해상도가 720p보다 큰 변환 제거를 지정하므로 두 개의 1080p 변환이 제거되었습니다.
언어 트랙 제거
자산에는 영어, 스페인어, 프랑스어 등과 같은 여러 오디오 언어가 포함될 수 있습니다. 일반적으로 플레이어 SDK는 사용자 선택당 기본 오디오 트랙 선택 및 사용 가능한 오디오 트랙을 관리합니다.
이러한 플레이어 SDK 개발은 디바이스별 플레이어 프레임워크 간에 서로 다른 구현이 필요하기 때문에 어려운 일입니다. 또한 일부 플랫폼에서 플레이어 API는 제한되며 사용자가 기본 오디오 트랙을 선택하거나 변경할 수 없는 오디오 선택 기능을 포함하지 않습니다. 자산 필터를 사용하면 원하는 오디오 언어만 포함하는 필터를 만들어 동작을 제어할 수 있습니다.
자산의 시작 부분 잘라내기
대부분의 라이브 스트리밍 이벤트에서 연산자는 실제 이벤트 전에 일부 테스트를 실행합니다. 예를 들어 이벤트가 시작되기 전에 다음과 같은 슬레이트를 포함할 수 있습니다. "프로그램이 일시적으로 시작됩니다."
프로그램을 보관하는 경우 테스트 및 슬레이트 데이터도 보관되어 프레젠테이션에 포함됩니다. 그러나 이 정보는 클라이언트에 표시되지 않아야 합니다. 동적 매니페스트를 사용하면 시작 시간 필터를 만들고 매니페스트에서 원치 않는 데이터를 제거할 수 있습니다.
라이브 보관 파일에서 하위 클립(보기) 만들기
많은 라이브 이벤트는 장기 실행되며 라이브 보관에는 여러 이벤트가 포함될 수 있습니다. 라이브 이벤트가 종료된 후 브로드캐스터는 라이브 아카이브를 논리적 프로그램 시작 및 중지 시퀀스로 분리할 수 있습니다.
라이브 보관 파일을 사후 처리하지 않고 별도의 자산을 만들지 않고 이러한 가상 프로그램을 별도로 게시할 수 있습니다(CDN에서 캐시된 기존 조각의 이점을 얻지 못). 이러한 가상 프로그램의 예로는 축구 또는 농구 경기의 분기, 야구 이닝 또는 스포츠 프로그램의 개별 이벤트가 있습니다.
동적 매니페스트를 사용하면 시작/종료 시간을 사용하여 필터를 만들고 라이브 보관 파일의 맨 위에 가상 보기를 만들 수 있습니다.
필터링된 자산은 다음과 같습니다.
스키 필터 다이어그램
프레젠테이션 창 조정(DVR)
현재 Azure Media Services는 1분에서 25시간 사이에 기간을 구성할 수 있는 순환 보관을 제공합니다. 매니페스트 필터링을 사용하여 미디어를 삭제하지 않고 보관 파일 맨 위에 롤링 DVR 창을 만들 수 있습니다. 브로드캐스터가 라이브 에지와 함께 이동하는 제한된 DVR 창을 제공하는 동시에 더 큰 보관 창을 유지하려는 많은 시나리오가 있습니다. 브로드캐스터는 DVR 창 외부에 있는 데이터를 사용하여 클립을 강조 표시하거나 다른 디바이스에 다른 DVR 창을 제공할 수 있습니다. 예를 들어 대부분의 모바일 디바이스는 큰 DVR 창을 처리하지 않습니다(모바일 디바이스의 경우 2분 DVR 창, 데스크톱 클라이언트의 경우 1시간이 있을 수 있습니다).
LiveBackoff 조정(라이브 위치)
매니페스트 필터링을 사용하여 라이브 프로그램의 라이브 가장자리에서 몇 초를 제거할 수 있습니다. 필터링을 통해 브로드캐스터는 미리 보기 게시 지점에서 프레젠테이션을 시청하고 시청자가 스트림을 받기 전에 광고 삽입 지점을 만들 수 있습니다(30초 뒤로). 그러면 브로드캐스터는 광고 기회 전에 정보를 수신하고 처리할 수 있도록 이러한 광고를 클라이언트 프레임워크에 푸시할 수 있습니다.
광고 지원 외에도 라이브 백오프 설정을 사용하여 시청자의 위치를 조정하여 클라이언트가 드리프트하고 라이브 에지에 도달할 때 서버에서 조각을 가져올 수 있습니다. 이렇게 하면 클라이언트에 HTTP 404 또는 412 오류가 발생하지 않습니다.
라이브 백오프 필터 다이어그램
단일 필터에서 여러 규칙 결합
여러 필터링 규칙을 단일 필터로 결합할 수 있습니다. 예를 들어 라이브 보관 파일에서 슬레이트를 제거하고 사용 가능한 비트 전송률을 필터링하는 "범위 규칙"을 정의할 수 있습니다. 여러 필터링 규칙을 적용하는 경우 최종 결과는 모든 규칙의 교집합입니다.
여러 규칙 필터 다이어그램
여러 필터 결합(필터 컴퍼지션)
여러 필터를 단일 URL로 결합할 수도 있습니다. 다음 시나리오에서는 필터를 결합하려는 이유를 보여 줍니다.
- 비디오 품질을 제한하려면 Android 또는 iPad와 같은 모바일 디바이스에 대한 비디오 품질을 필터링해야 합니다. 원치 않는 품질을 제거하려면 디바이스 프로필에 적합한 계정 필터를 만듭니다. 추가 연결 없이 동일한 Media Services 계정의 모든 자산에 대한 계정 필터를 사용할 수 있습니다.
- 또한 자산의 시작 및 종료 시간을 트리밍하려고 합니다. 트리밍을 수행하려면 자산 필터를 만들고 시작/종료 시간을 설정합니다.
- 이러한 필터를 모두 결합하려고 합니다. 조합이 없으면 트리밍 필터에 품질 필터링을 추가해야 하므로 필터 사용이 더 어려워집니다.
필터를 결합하려면 필터 이름을 세미콜론으로 구분된 형식의 매니페스트/재생 목록 URL로 설정합니다. 품질을 필터링하는 MyMobileDevice라는 필터가 있고 특정 시작 시간을 설정하는 MyStartTime 이름이 있다고 가정해 보겠습니다. 최대 3개의 필터를 결합할 수 있습니다.
고려 사항 및 제한 사항
forceEndTimestamp, presentationWindowDuration및 liveBackoffDuration 값은 VOD 필터에 대해 설정하면 안 됩니다. 라이브 필터 시나리오에만 사용됩니다.
동적 매니페스트는 GOP 경계(키 프레임)에서 작동하므로 트리밍은 GOP 정확도를 가집니다.
계정 및 자산 필터에 대해 동일한 필터 이름을 사용할 수 있습니다. 자산 필터는 우선 순위가 높으며 계정 필터를 재정의합니다.
필터를 업데이트하는 경우 스트리밍 엔드포인트가 규칙을 새로 고치는 데 최대 2분이 걸릴 수 있습니다. 필터를 사용하여 콘텐츠를 제공하고 프록시 및 CDN 캐시에 콘텐츠를 캐시한 경우 이러한 필터를 업데이트하면 플레이어 오류가 발생할 수 있습니다. 필터를 업데이트한 후 캐시를 지우는 것이 좋습니다. 이 옵션을 사용할 수 없는 경우 다른 필터를 사용하는 것이 좋습니다.
고객은 매니페스트를 수동으로 다운로드하고 정확한 시작 타임스탬프를 구문 분석해야 합니다.
- 자산에서 트랙의 속성을 확인하려면 매니페스트 파일가져와서 검사해야
. - 자산 필터 타임스탬프를 설정하는 수식은 다음과 같습니다.
startTimestamp = 매니페스트> 시작 시간 <+ 예상 필터 시작 시간(초> * 날짜 표시줄 <)
- 자산에서 트랙의 속성을 확인하려면 매니페스트 파일가져와서 검사해야
도움말 및 지원 받기
다음 방법 중 하나로 Media Services에 질문하거나 업데이트를 따를 수 있습니다.
- Q & A
- 스택 오버플로
. azure-media-services
질문에 태그를 추가합니다. - @MSFTAzureMedia 또는 @AzureSupport 사용하여 지원을 요청합니다.
- Azure Portal을 통해 지원 티켓을 엽니다.